31 references to ClosureKind
Microsoft.CodeAnalysis.CSharp (31)
Lowering\ClosureConversion\ClosureConversion.cs (18)
428ClosureKind closureKind; 439closureKind = ClosureKind.General; 446closureKind = ClosureKind.ThisOnly; 460closureKind = ClosureKind.Singleton; 468closureKind = ClosureKind.Static; 1029ClosureKind closureKind, 1069if (closureKind == ClosureKind.Singleton) 1074else if (closureKind == ClosureKind.Static) 1435ClosureKind closureKind; 1453private DebugId GetLambdaId(SyntaxNode syntax, ClosureKind closureKind, int closureOrdinal, ImmutableArray<DebugId> structClosureIds, RuntimeRudeEdit? closureRudeEdit) 1486Debug.Assert(closureKind == ClosureKind.Singleton); 1527out ClosureKind closureKind, 1584if (closureKind == ClosureKind.Static || closureKind == ClosureKind.Singleton) 1647ClosureKind closureKind; 1686var shouldCacheForStaticMethod = closureKind == ClosureKind.Singleton && 1719(closureKind == ClosureKind.General) ? -1 : topLevelMethodId.Ordinal, 1724var cacheField = new SynthesizedLambdaCacheFieldSymbol(translatedLambdaContainer, cacheVariableType, cacheVariableName, _topLevelMethod, isReadOnly: false, isStatic: closureKind == ClosureKind.Singleton);
Lowering\ClosureConversion\SynthesizedClosureMethod.cs (13)
28ClosureKind closureKind, 57case ClosureKind.Singleton: // all type parameters on method (except the top level method's) 58case ClosureKind.General: // only lambda's type parameters on method (rest on class) 66case ClosureKind.ThisOnly: // all type parameters on method 67case ClosureKind.Static: 156private static DeclarationModifiers MakeDeclarationModifiers(ClosureKind closureKind, MethodSymbol originalMethod) 158var mods = closureKind == ClosureKind.ThisOnly ? DeclarationModifiers.Private : DeclarationModifiers.Internal; 160if (closureKind == ClosureKind.Static) 183private static string MakeName(string topLevelMethodName, string localFunctionName, DebugId topLevelMethodId, ClosureKind closureKind, DebugId lambdaId) 188(closureKind == ClosureKind.General) ? -1 : topLevelMethodId.Ordinal, 194private static string MakeName(string topLevelMethodName, DebugId topLevelMethodId, ClosureKind closureKind, DebugId lambdaId) 201(closureKind == ClosureKind.General) ? -1 : topLevelMethodId.Ordinal, 239public ClosureKind ClosureKind { get; }