Skip to content

feat: refactor proxy emit to use AST architecture#341

Merged
liuhaoyang merged 2 commits intomasterfrom
feat/refactor_emit_ast
Apr 12, 2026
Merged

feat: refactor proxy emit to use AST architecture#341
liuhaoyang merged 2 commits intomasterfrom
feat/refactor_emit_ast

Conversation

@liuhaoyang
Copy link
Copy Markdown
Member

  • Add ProxyBuilder/ directory with AST nodes, builders, and IL emit visitor
    • Nodes: ProxyTypeNode, MethodNode, ConstructorNode, PropertyNode, etc.
    • Builders: ClassProxyAstBuilder, InterfaceProxyAstBuilder, InterfaceImplAstBuilder
    • Visitors: ILEmitVisitor for IL generation from AST
  • Delete old Utils/ProxyGeneratorUtils.cs (1304 lines, replaced by AST)
  • Update ProxyTypeGenerator to use new ProxyTypeCompiler
  • Add tests:
    • AsyncExceptionInterfaceProxyTests - async exception proxy parity
    • ProxyMetadataParityTests - metadata equivalence validation
    • OpenGenericMethodTests - generic method tests enhanced
  • Add benchmarks: ProxyEmitBenchmarks for performance comparison
  • Update AspectActivator for compatibility

- Add ProxyBuilder/ directory with AST nodes, builders, and IL emit visitor
  - Nodes: ProxyTypeNode, MethodNode, ConstructorNode, PropertyNode, etc.
  - Builders: ClassProxyAstBuilder, InterfaceProxyAstBuilder, InterfaceImplAstBuilder
  - Visitors: ILEmitVisitor for IL generation from AST
- Delete old Utils/ProxyGeneratorUtils.cs (1304 lines, replaced by AST)
- Update ProxyTypeGenerator to use new ProxyTypeCompiler
- Add tests:
  - AsyncExceptionInterfaceProxyTests - async exception proxy parity
  - ProxyMetadataParityTests - metadata equivalence validation
  - OpenGenericMethodTests - generic method tests enhanced
- Add benchmarks: ProxyEmitBenchmarks for performance comparison
- Update AspectActivator for compatibility
@liuhaoyang liuhaoyang merged commit bff678b into master Apr 12, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant