Introducing ExtensionIRNode and an implementation of templates based on the new feature set. Now TemplateIRNode is-a ExtensionIRNode. It's implemented using just extensibility and isn't part of the standard razor codegen. I'm adding it to the RazorEngine so that it's still there by default. I've also included a pattern for visitors to special case ExtensionIRNode-derived classes that they know about. This requires a little bit of boilerplate but makes it easy to traverse just the nodes you care about while keeping the set of nodes open. For now the general codegen feature still hasn't had a refactor, but this opens things up for us to start finishing things like MVC's @inject directive. |
||
|---|---|---|
| .. | ||
| DefaultRazorIRBuilderTest.cs | ||
| ExtensionIRNodeTest.cs | ||
| RazorIRAssert.cs | ||
| RazorIRBuilderExtensionsTest.cs | ||
| RazorIRBuilderTest.cs | ||
| RazorIRNodeWalkerTest.cs | ||