container.Register<Car>();
container.Register<IJuice, Juice>();
var container = new Container(f =>
{
	f.For<IFoo>().Use<Foo>();
});
class LandAnimal {
	public void Move() => Run(); }
class Dog : LandAnimal {
	public new void Move() => Run(); }
class Works : LandAnimal {
	public override void Move() => Run(); }
[Required]
[RequiredAttribute()]
[Range(1, 10)]

----------------------------------------------------

[
	"container",
	["punctuation", "."],
	["generic-method", [
		["function", "Register"],
		["generic", [
			["punctuation", "<"],
			"Car",
			["punctuation", ">"]
		]]
	]],
	["punctuation", "("],
	["punctuation", ")"],
	["punctuation", ";"],
	"\r\ncontainer",
	["punctuation", "."],
	["generic-method", [
		["function", "Register"],
		["generic", [
			["punctuation", "<"],
			"IJuice",
			["punctuation", ","],
			" Juice",
			["punctuation", ">"]
		]]
	]],
	["punctuation", "("],
	["punctuation", ")"],
	["punctuation", ";"],
	["class-name", [
		["keyword", "var"]
	]],
	" container ",
	["operator", "="],
	["keyword", "new"],
	["constructor-invocation", [
		"Container"
	]],
	["punctuation", "("],
	"f ",
	["operator", "=>"],
	["punctuation", "{"],
	"\r\n\tf",
	["punctuation", "."],
	["generic-method", [
		["function", "For"],
		["generic", [
			["punctuation", "<"],
			"IFoo",
			["punctuation", ">"]
		]]
	]],
	["punctuation", "("],
	["punctuation", ")"],
	["punctuation", "."],
	["generic-method", [
		["function", "Use"],
		["generic", [
			["punctuation", "<"],
			"Foo",
			["punctuation", ">"]
		]]
	]],
	["punctuation", "("],
	["punctuation", ")"],
	["punctuation", ";"],
	["punctuation", "}"],
	["punctuation", ")"],
	["punctuation", ";"],
	["keyword", "class"],
	["class-name", [
		"LandAnimal"
	]],
	["punctuation", "{"],
	["keyword", "public"],
	["return-type", [
		["keyword", "void"]
	]],
	["function", "Move"],
	["punctuation", "("],
	["punctuation", ")"],
	["operator", "=>"],
	["function", "Run"],
	["punctuation", "("],
	["punctuation", ")"],
	["punctuation", ";"],
	["punctuation", "}"],
	["keyword", "class"],
	["class-name", [
		"Dog"
	]],
	["punctuation", ":"],
	["type-list", [
		["class-name", [
			"LandAnimal"
		]]
	]],
	["punctuation", "{"],
	["keyword", "public"],
	["keyword", "new"],
	["return-type", [
		["keyword", "void"]
	]],
	["function", "Move"],
	["punctuation", "("],
	["punctuation", ")"],
	["operator", "=>"],
	["function", "Run"],
	["punctuation", "("],
	["punctuation", ")"],
	["punctuation", ";"],
	["punctuation", "}"],
	["keyword", "class"],
	["class-name", [
		"Works"
	]],
	["punctuation", ":"],
	["type-list", [
		["class-name", [
			"LandAnimal"
		]]
	]],
	["punctuation", "{"],
	["keyword", "public"],
	["keyword", "override"],
	["return-type", [
		["keyword", "void"]
	]],
	["function", "Move"],
	["punctuation", "("],
	["punctuation", ")"],
	["operator", "=>"],
	["function", "Run"],
	["punctuation", "("],
	["punctuation", ")"],
	["punctuation", ";"],
	["punctuation", "}"],
	["punctuation", "["],
	["attribute", [
		["class-name", [
			"Required"
		]]
	]],
	["punctuation", "]"],
	["punctuation", "["],
	["attribute", [
		["class-name", [
			"RequiredAttribute"
		]],
		["attribute-arguments", [
			["punctuation", "("],
			["punctuation", ")"]
		]]
	]],
	["punctuation", "]"],
	["punctuation", "["],
	["attribute", [
		["class-name", [
			"Range"
		]],
		["attribute-arguments", [
			["punctuation", "("],
			["number", "1"],
			["punctuation", ","],
			["number", "10"],
			["punctuation", ")"]
		]]
	]],
	["punctuation", "]"]
]

----------------------------------------------------

Checks for various cases of class names. See #1371
