示例#1
0
        internal void Add(RecursiveMethodInfo value)
        {
            var key  = value.MethodSymbol.Name;
            var list = GetListImpl(key, true);

            list.Add(value);
        }
 internal CalculatorMethodGenerator(GeneratorExecutionContext context, RecursiveCalculatorClassInfo calculatorClassInfo, RecursiveMethodInfo methodInfo)
 {
     _context             = context;
     _calculatorClassInfo = calculatorClassInfo;
     _methodInfo          = methodInfo;
 }
        internal static string GenerateSimpleSafeRec(GeneratorExecutionContext context, RecursiveMethodInfo methodInfo)
        {
            var classSyntax = (ClassDeclarationSyntax)methodInfo.MethodSyntax.Parent;
            var classSymbol = methodInfo.MethodSymbol.ContainingType;
            var recursionId = methodInfo.MethodSymbol.Name;
            var classInfo   = new RecursiveCalculatorClassInfo(classSyntax, classSymbol, isMultiSite: false, recursionId,
                                                               methodInfo.GenericParams, methodInfo.ConstraintClauses, methodInfo.MethodParamsStructName);

            return(new CalculatorClassGenerator(context, classInfo, new List <RecursiveMethodInfo>()
            {
                methodInfo
            }).GenerateAll());
        }