12 types derived from MethodSymbol
Microsoft.CodeAnalysis.CSharp (12)
Symbols\ErrorMethodSymbol.cs (1)
14internal sealed class ErrorMethodSymbol : MethodSymbol
Symbols\FunctionPointers\FunctionPointerMethodSymbol.cs (1)
18internal sealed class FunctionPointerMethodSymbol : MethodSymbol
Symbols\Metadata\PE\PEMethodSymbol.cs (1)
26internal sealed class PEMethodSymbol : MethodSymbol
Symbols\ReducedExtensionMethodSymbol.cs (1)
22internal sealed class ReducedExtensionMethodSymbol : MethodSymbol
Symbols\SignatureOnlyMethodSymbol.cs (1)
19internal sealed class SignatureOnlyMethodSymbol : MethodSymbol
Symbols\Source\SourceMethodSymbol.cs (1)
20internal abstract partial class SourceMethodSymbol : MethodSymbol
Symbols\Synthesized\SynthesizedEntryPointSymbol.cs (1)
20internal abstract class SynthesizedEntryPointSymbol : MethodSymbol
Symbols\Synthesized\SynthesizedGlobalMethodSymbol.cs (1)
21internal abstract class SynthesizedGlobalMethodSymbol : MethodSymbol, ISynthesizedGlobalMethodSymbol
Symbols\Synthesized\SynthesizedIntrinsicOperatorSymbol.cs (1)
16internal sealed class SynthesizedIntrinsicOperatorSymbol : MethodSymbol
Symbols\Synthesized\SynthesizedMethodSymbol.cs (1)
17internal abstract class SynthesizedMethodSymbol : MethodSymbol
Symbols\Synthesized\SynthesizedStaticConstructor.cs (1)
12internal sealed class SynthesizedStaticConstructor : MethodSymbol
Symbols\Wrapped\WrappedMethodSymbol.cs (1)
21internal abstract class WrappedMethodSymbol : MethodSymbol
3334 references to MethodSymbol
Microsoft.CodeAnalysis.CSharp (3211)
Binder\Binder.cs (5)
449return ((MethodSymbol)containingMember).IsScriptInitializer; 490internal virtual MethodSymbol? ParamsCollectionConstructorInProgress => null; 653symbol = ((MethodSymbol)symbol).ConstructedFrom; 752internal static void ReportDiagnosticsIfUnmanagedCallersOnly(BindingDiagnosticBag diagnostics, MethodSymbol symbol, SyntaxNodeOrToken syntax, bool isDelegateConversion) 896return new BoundBlock(statement.Syntax, locals, ImmutableArray<MethodSymbol>.CastUp(localFunctions), hasUnsafeModifier: false, instrumentation: null,
Binder\Binder.ValueChecks.cs (45)
35/// This is the primary <see cref="MethodSymbol" /> used in ref safety analysis. 42internal MethodSymbol? Method { get; } 49internal MethodSymbol? SetMethod { get; } 56private MethodInfo(Symbol symbol, MethodSymbol? method, MethodSymbol? setMethod) 63internal static MethodInfo Create(MethodSymbol method) 90var method = replace(Method); 91var setMethod = replace(SetMethod); 99static MethodSymbol? replace(MethodSymbol? method) 106if (method.OriginalDefinition.TryGetCorrespondingExtensionImplementationMethod() is MethodSymbol implementationMethod) 416var accessorForDefaultArguments = useSetAccessor 862if (!isValueType || (RequiresAssignableVariable(valueKind) && (this.ContainingMemberOrLambda as MethodSymbol)?.IsEffectivelyReadOnly == true)) 911var getItemOrSliceHelper = (MethodSymbol)Compilation.GetWellKnownTypeMember(elementAccess.GetItemOrSliceHelper); 1178if (RequiresAssignableVariable(valueKind) && !backingField.ContainingType.IsReferenceType && (this.ContainingMemberOrLambda as MethodSymbol)?.IsEffectivelyReadOnly == true) 1459MethodSymbol containingMethod = (MethodSymbol)containing; 1481if (!(ContainingMemberOrLambda is MethodSymbol method)) 1665MethodSymbol methodSymbol, 1757var setMethod = propertySymbol.GetOwnOrInheritedSetMethod(); 1826var getMethod = propertySymbol.GetOwnOrInheritedGetMethod(); 1875bool reportUseSite(MethodSymbol accessor) 1917if (!(containingMember is MethodSymbol method)) 2388var method = methodInfo.Method; 2498static EscapeArgument getReceiverCore(MethodSymbol? method, BoundExpression receiver) 2600case MethodSymbol method: 3099Debug.Assert(underlyingParameter.ContainingSymbol is MethodSymbol); 3485var thisParam = ((MethodSymbol)_symbol).ThisParameter; 3528var methodSymbol = call.Method; 3611var methodSymbol = call.Method; 3811var thisParam = ((MethodSymbol)_symbol).ThisParameter; 3845var methodSymbol = call.Method; 3928var methodSymbol = call.Method; 4155var thisParam = ((MethodSymbol)_symbol).ThisParameter; 4365var constructorSymbol = objectCreation.Constructor; 4462var operatorMethod = conversion.Conversion.Method; 4653var constructMethod = expr.CollectionBuilderMethod; 4861var thisParam = ((MethodSymbol)_symbol).ThisParameter; 4966var methodSymbol = call.Method; 5054var methodSymbol = call.Method; 5121var constructorSymbol = objectCreation.Constructor; 5255var operatorMethod = conversion.Conversion.Method; 5615ImmutableArray<MethodSymbol>.Empty); 5655ImmutableArray<MethodSymbol>.Empty);
Binder\Binder_Attributes.cs (7)
187MethodSymbol? attributeConstructor = null; 214binder.CheckAndCoerceArguments<MethodSymbol>(node, memberResolutionResult, analyzedArguments.ConstructorArguments, diagnostics, receiver: null, invokedAsExtensionMethod: false, out argsToParamsOpt); 285var attributeConstructor = boundAttribute.Constructor; 534var setMethod = propertySymbol.GetOwnOrInheritedSetMethod(); 639var getMethod = propertySymbol.GetMethod; 640var setMethod = propertySymbol.SetMethod; 697MethodSymbol attributeConstructor,
Binder\Binder_Await.cs (9)
59out MethodSymbol? getResult, 107var containingMethod = this.ContainingMemberOrLambda as MethodSymbol; 170var method = (MethodSymbol)containingMemberOrLambda; 257out MethodSymbol? getResult, 348var getAwaiterMethod = call.Method; 435private bool GetGetResultMethod(BoundExpression awaiterExpression, SyntaxNode node, TypeSymbol awaitedExpressionType, BindingDiagnosticBag diagnostics, out MethodSymbol? getResultMethod, [NotNullWhen(true)] out BoundExpression? getAwaiterGetResultCall) 477private static bool HasOptionalParameters(MethodSymbol method)
Binder\Binder_Constraints.cs (1)
465MethodSymbol method => (TypeSymbol)method.ContainingSymbol,
Binder\Binder_Conversions.cs (51)
413if (conversion.Method is MethodSymbol method && method.IsStatic) 529MethodSymbol? castUpMethod = TryFindCastUpMethod(sourceForCastUp, destination.OriginalDefinition); 556static void reportUseSiteOrMissing(MethodSymbol? method, object containingType, string methodName, SyntaxNode syntax, BindingDiagnosticBag diagnostics) 574internal static MethodSymbol? TryFindImplicitOperatorFromArray(TypeSymbol type) 584internal static MethodSymbol? TryFindImplicitOperatorFromSpan(TypeSymbol spanType, TypeSymbol readonlySpanType) 594private static MethodSymbol? TryFindImplicitOperator<TArg>(TypeSymbol type, TArg arg, 595Func<TArg, MethodSymbol, bool> predicate) 624internal static MethodSymbol? TryFindCastUpMethod(TypeSymbol source, TypeSymbol destination) 652internal static MethodSymbol? TryFindAsSpanCharMethod(CSharpCompilation compilation, TypeSymbol readOnlySpanType) 658MethodSymbol? result = null; 686private static MethodSymbol? TryFindSingleMethod<TArg>(TypeSymbol type, string name, TArg arg, Func<TArg, MethodSymbol, bool> predicate) 689MethodSymbol? result = null; 692if (member is MethodSymbol method && predicate(arg, method)) 820var collectionTypeKind = conversion.GetCollectionExpressionTypeKind(out var elementType, out MethodSymbol? constructor, out bool isExpanded); 837MethodSymbol? collectionBuilderMethod = null; 886HasParamsCollectionTypeInProgress(namedType, out NamedTypeSymbol? inProgress, out MethodSymbol? inProgressConstructor)) 1032internal MethodSymbol? GetAndValidateCollectionBuilderMethod( 1038MethodSymbol? collectionBuilderMethod; 1076internal BoundExpression BindCollectionExpressionConstructor(SyntaxNode syntax, TypeSymbol targetType, MethodSymbol? constructor, BindingDiagnosticBag diagnostics) 1106internal bool HasCollectionExpressionApplicableConstructor(SyntaxNode syntax, TypeSymbol targetType, out MethodSymbol? constructor, out bool isExpanded, BindingDiagnosticBag diagnostics, bool isParamsModifierValidation = false) 1142out MemberResolutionResult<MethodSymbol> memberResolutionResult, 1176MemberResolutionResult<MethodSymbol> memberResolutionResult, 1183var method = memberResolutionResult.Member; 1217out MethodSymbol? constructor) 1238internal bool HasCollectionExpressionApplicableAddMethod(SyntaxNode syntax, TypeSymbol targetType, out ImmutableArray<MethodSymbol> addMethods, BindingDiagnosticBag diagnostics) 1280out ImmutableArray<MethodSymbol> addMethods) 1298out ImmutableArray<MethodSymbol> addMethods) 1339out ImmutableArray<MethodSymbol> addMethods) 1354out ImmutableArray<MethodSymbol> addMethods) 1440resolution.MethodGroup, diagnostics: diagnostics, out var addMethod); 1455static ImmutableArray<MethodSymbol> filterOutBadGenericMethods( 1457ImmutableArray<MemberResolutionResult<MethodSymbol>> finalApplicableCandidates, ref CompoundUseSiteInfo<AssemblySymbol> useSiteInfo) 1460var resultBuilder = ArrayBuilder<MethodSymbol>.GetInstance(finalApplicableCandidates.Length); 1465var member = candidate.Member; 1477MethodSymbol? constructed = null; 1563OverloadResolutionResult<MethodSymbol> result, 1567out MethodSymbol? addMethod) 1602var method = methodResult.Member; 1844private MethodSymbol? GetCollectionBuilderMethod( 1868if (candidate is not MethodSymbol { IsStatic: true } method) 1894MethodSymbol methodWithTargetTypeParameters; // builder method substituted with type parameters from target type 2273private static void CheckParameterModifierMismatchMethodConversion(SyntaxNode syntax, MethodSymbol lambdaOrMethod, TypeSymbol targetType, bool invokedAsExtensionMethod, BindingDiagnosticBag diagnostics) 2275MethodSymbol? delegateMethod; 2590private bool MemberGroupFinalValidation(BoundExpression? receiverOpt, MethodSymbol methodSymbol, SyntaxNode node, BindingDiagnosticBag diagnostics, bool invokedAsExtensionMethod) 2669Debug.Assert(memberSymbol is not MethodSymbol { MethodKind: not MethodKind.Constructor } || 2674if (receiverOpt != null || memberSymbol is not MethodSymbol { MethodKind: MethodKind.Constructor }) 2821internal bool MethodIsCompatibleWithDelegateOrFunctionPointer(BoundExpression? receiverOpt, bool isExtensionMethod, MethodSymbol method, TypeSymbol delegateType, Location errorLocation, BindingDiagnosticBag diagnostics) 2827MethodSymbol delegateOrFuncPtrMethod = delegateType switch 2983internal static ParameterSymbol? GetReceiverParameter(MethodSymbol method) 3016MethodSymbol selectedMethod = conversion.Method;
Binder\Binder_Crefs.cs (9)
322symbol.Kind != SymbolKind.Method || TypeSymbol.Equals(((MethodSymbol)symbol).ReturnType, returnType, TypeCompareKind.ConsiderEverything2), returnType); 461ImmutableArray<MethodSymbol> instanceConstructors = constructorType.InstanceConstructors; 580MethodSymbol signature = ((FunctionPointerTypeSymbol)type).Signature; 668if (((MethodSymbol)s).Arity == 0) 686s.Kind != SymbolKind.Method || ((MethodSymbol)s).Arity == 0); 794MethodSymbol candidateMethod = (MethodSymbol)candidate; 818explicitInterfaceImplementations: ImmutableArray<MethodSymbol>.Empty); 936symbol = ((MethodSymbol)symbol).Construct(typeArgumentsWithAnnotations.ToImmutableAndFree());
Binder\Binder_Deconstruct.cs (1)
684var deconstructMethod = ((BoundCall)result).Method;
Binder\Binder_Expressions.cs (101)
1319MethodSymbol method = this.ContainingMember() as MethodSymbol; 1460case MethodSymbol { AssociatedSymbol: SourcePropertySymbol property }: 1467if (contextualAttributeBinder is { AttributeTarget: MethodSymbol { AssociatedSymbol: SourcePropertySymbol property } }) 1513ContainingMember() is MethodSymbol { MethodKind: MethodKind.PropertyGet or MethodKind.PropertySet, AssociatedSymbol: PropertySymbol { IsIndexer: false } }) 1974var containingMethod = this.ContainingMemberOrLambda as MethodSymbol; 2119(this.ContainingMember() is MethodSymbol { MethodKind: MethodKind.Constructor } containingMember && (object)containingMember != primaryCtor)) && // We are in a non-primary instance constructor 2161bool capture = (this.ContainingMember() is MethodSymbol containingMethod && (object)primaryCtor != containingMethod); 2182this.ContainingMemberOrLambda is MethodSymbol { MethodKind: MethodKind.AnonymousFunction or MethodKind.LocalFunction } && 2638MethodSymbol symbolOpt = GetWellKnownTypeMember(WellKnownMember.System_Index__ctor, diagnostics, syntax: node) as MethodSymbol; 2648MethodSymbol symbolOpt = null; 2673symbolOpt = (MethodSymbol)GetWellKnownTypeMember( 2682symbolOpt = (MethodSymbol)GetWellKnownTypeMember( 2803ImmutableArray<MethodSymbol> originalUserDefinedConversions = conversion.OriginalUserDefinedConversions; 3295&& ((MethodSymbol)containingSymbol).IsAsync 4775MethodSymbol constructor, 4799MethodSymbol constructor, 4935MemberResolutionResult<MethodSymbol> memberResolutionResult; 4936ImmutableArray<MethodSymbol> candidateConstructors; 4961MethodSymbol constructor, 4969MemberResolutionResult<MethodSymbol> memberResolutionResult, 4970ImmutableArray<MethodSymbol> candidateConstructors, 4980this.CheckAndCoerceArguments<MethodSymbol>(nonNullSyntax, memberResolutionResult, analyzedArguments, diagnostics, receiver: null, invokedAsExtensionMethod: false, out argsToParamsOpt); 4989MethodSymbol resultMember = memberResolutionResult.Member; 5106static void validateRecordCopyConstructor(MethodSymbol constructor, NamedTypeSymbol baseType, MethodSymbol resultMember, Location errorLocation, BindingDiagnosticBag diagnostics) 5157internal static bool IsUserDefinedRecordCopyConstructor(MethodSymbol constructor) 6133private static ImmutableSegmentedDictionary<string, Symbol> GetMembersRequiringInitialization(MethodSymbol constructor) 6145MethodSymbol constructor, 6480applicableMethods: ImmutableArray<MethodSymbol>.Empty, 6604internal ImmutableArray<MethodSymbol> FilterInaccessibleConstructors(ImmutableArray<MethodSymbol> constructors, bool allowProtectedConstructorsOfBaseType, ref CompoundUseSiteInfo<AssemblySymbol> useSiteInfo) 6606ArrayBuilder<MethodSymbol> builder = null; 6610MethodSymbol constructor = constructors[i]; 6616builder = ArrayBuilder<MethodSymbol>.GetInstance(); 6629private bool IsConstructorAccessible(MethodSymbol constructor, ref CompoundUseSiteInfo<AssemblySymbol> useSiteInfo, bool allowProtectedConstructorsOfBaseType = false) 6699OverloadResolutionResult<MethodSymbol> overloadResolutionResult = OverloadResolutionResult<MethodSymbol>.GetInstance(); 6700ImmutableArray<MethodSymbol> accessibleConstructors = GetAccessibleConstructorsForOverloadResolution(type, ref useSiteInfo); 6749out MemberResolutionResult<MethodSymbol> memberResolutionResult, 6750out ImmutableArray<MethodSymbol> candidateConstructors, 6769MemberResolutionResult<MethodSymbol> memberResolutionResult, 6770ImmutableArray<MethodSymbol> candidateConstructors, 6789this.CheckAndCoerceArguments<MethodSymbol>(node, memberResolutionResult, analyzedArguments, diagnostics, receiver: null, invokedAsExtensionMethod: false, out argToParams); 6796var method = memberResolutionResult.Member; 6853MemberResolutionResult<MethodSymbol> memberResolutionResult, 6854ImmutableArray<MethodSymbol> candidateConstructors, 6870this.CheckAndCoerceArguments<MethodSymbol>(node, memberResolutionResult, analyzedArguments, diagnostics, receiver: null, invokedAsExtensionMethod: false, argsToParamsOpt: out _); 7153out MemberResolutionResult<MethodSymbol> memberResolutionResult, 7154out ImmutableArray<MethodSymbol> candidateConstructors, 7160ImmutableArray<MethodSymbol> allInstanceConstructors; 7164OverloadResolutionResult<MethodSymbol> result = OverloadResolutionResult<MethodSymbol>.GetInstance(); 7185OverloadResolutionResult<MethodSymbol> inaccessibleResult = OverloadResolutionResult<MethodSymbol>.GetInstance(); 7203default(MemberResolutionResult<MethodSymbol>); // Invalid results are not interesting - we have enough info in candidateConstructors. 7274private ImmutableArray<MethodSymbol> GetAccessibleConstructorsForOverloadResolution(NamedTypeSymbol type, ref CompoundUseSiteInfo<AssemblySymbol> useSiteInfo) 7276ImmutableArray<MethodSymbol> allInstanceConstructors; 7280private ImmutableArray<MethodSymbol> GetAccessibleConstructorsForOverloadResolution(NamedTypeSymbol type, bool allowProtectedConstructorsOfBaseType, out ImmutableArray<MethodSymbol> allInstanceConstructors, ref CompoundUseSiteInfo<AssemblySymbol> useSiteInfo) 8144lookupResult.Symbols.All(s => s.Kind == SymbolKind.Method) ? lookupResult.Symbols.SelectAsArray(s_toMethodSymbolFunc) : ImmutableArray<MethodSymbol>.Empty, 8283var builder = ArrayBuilder<MethodSymbol>.GetInstance(); 8286var m = s as MethodSymbol; 8717MethodSymbol method = methodGroup.Methods[i]; 8758var overloadResolutionResult = OverloadResolutionResult<MethodSymbol>.GetInstance(); 9625else if (convertedIndex is BoundObjectCreationExpression { Constructor: MethodSymbol constructor, Arguments: { Length: 2 } arguments, ArgsToParamsOpt: { IsDefaultOrEmpty: true }, InitializerExpressionOpt: null } && 10437var substring = (MethodSymbol)GetSpecialTypeMember(SpecialMember.System_String__Substring, diagnostics, syntax); 10468candidate is MethodSymbol method && 10485void makeCall(SyntaxNode syntax, BoundExpression receiver, MethodSymbol method, 10510internal static bool MethodHasValidSliceSignature(MethodSymbol method) 10577property.GetOwnOrInheritedGetMethod()?.OriginalDefinition is MethodSymbol getMethod && 10764var method = node.LookupSymbolOpt as MethodSymbol; 10802var result = OverloadResolutionResult<MethodSymbol>.GetInstance(); 10828var method = GetUniqueSignatureFromMethodGroup(node, out bool useParams); 10845private MethodSymbol? GetUniqueSignatureFromMethodGroup_CSharp10(BoundMethodGroup node, out bool useParams) 10847MethodSymbol? method = null; 10848var methods = ArrayBuilder<MethodSymbol>.GetInstance(capacity: node.Methods.Length); 10849foreach (var m in node.Methods) 10957static bool isCandidateUnique(ref MethodSymbol? method, MethodSymbol candidate) 10981private MethodSymbol? GetUniqueSignatureFromMethodGroup(BoundMethodGroup node, out bool useParams) 10989MethodSymbol? foundMethod = null; 10996var methods = ArrayBuilder<MethodSymbol>.GetInstance(capacity: node.Methods.Length); 10997foreach (var memberMethod in node.Methods) 11021var substituted = typeArguments.IsDefaultOrEmpty ? memberMethod : memberMethod.Construct(typeArguments); 11069var methods = ArrayBuilder<MethodSymbol>.GetInstance(capacity: singleLookupResults.Count); 11074bool memberCountsAsStatic = extensionMember is MethodSymbol { IsExtensionMethod: true } ? false : extensionMember.IsStatic; 11088if (extensionMember is MethodSymbol method) 11090var substituted = (MethodSymbol?)extensionMember.GetReducedAndFilteredSymbol(typeArguments, receiver.Type, Compilation, checkFullyInferred: true); 11131static bool isCandidateUnique(ref MethodSymbol? foundMethod, MethodSymbol candidate) 11146bool satisfiesConstraintChecks(MethodSymbol method) 11173MethodSymbol methodSymbol, 11293MethodSymbol invoke = possibleDelegateType.DelegateInvokeMethod(); 11424return symbol is MethodSymbol method &&
Binder\Binder_Invocation.cs (35)
41private static ImmutableArray<MethodSymbol> GetOriginalMethods(OverloadResolutionResult<MethodSymbol> overloadResolutionResult) 51return ImmutableArray<MethodSymbol>.Empty; 54var builder = ArrayBuilder<MethodSymbol>.GetInstance(); 349result = BindDynamicInvocation(node, boundExpression, analyzedArguments, ImmutableArray<MethodSymbol>.Empty, diagnostics, queryClause); 396ImmutableArray<MethodSymbol> applicableMethods, 635var overloadResolutionResult = OverloadResolutionResult<MethodSymbol>.GetInstance(); 666private static bool HasApplicableConditionalMethod(ImmutableArray<MemberResolutionResult<MethodSymbol>> finalApplicableCandidates) 742ImmutableArray<MethodSymbol> originalMethods; 862private void ReportDynamicInvocationWarnings(SyntaxNode syntax, BoundMethodGroup methodGroup, BindingDiagnosticBag diagnostics, ImmutableArray<MemberResolutionResult<MethodSymbol>> finalApplicableCandidates) 902MemberResolutionResult<MethodSymbol> methodResolutionResult, 903MethodSymbol singleCandidate) 958MemberResolutionResult<MethodSymbol> methodResolutionResult) 960MethodSymbol singleCandidate = methodResolutionResult.LeastOverriddenMember; 967var resultWithSingleCandidate = OverloadResolutionResult<MethodSymbol>.GetInstance(); 1015(typeArgumentsOpt.IsDefault || ((MethodSymbol)(object)result.Member).CheckConstraints(new ConstraintsHelper.CheckConstraintsArgs(this.Compilation, this.Conversions, includeNullability: false, syntax.Location, candidateDiagnostics)))) 1119OverloadResolutionResult<MethodSymbol> result, 1203var method = methodResult.Member; 1380var method = property.GetMethod ?? property.SetMethod; 1391internal ThreeState ReceiverIsSubjectToCloning(BoundExpression? receiver, MethodSymbol method) 1450if (GetWellKnownTypeMember(Compilation, WellKnownMember.System_Runtime_InteropServices_UnknownWrapper__ctor, diagnostics, syntax: syntax) is MethodSymbol methodSymbol) 1459if (GetWellKnownTypeMember(Compilation, WellKnownMember.System_Runtime_InteropServices_DispatchWrapper__ctor, diagnostics, syntax: syntax) is MethodSymbol methodSymbol) 1836internal bool CheckImplicitThisCopyInReadOnlyMember(BoundExpression receiver, MethodSymbol method, BindingDiagnosticBag diagnostics) 1842ContainingMemberOrLambda is MethodSymbol containingMethod && 1972ImmutableArray<MethodSymbol> methods, 1979MethodSymbol method; 1983var constructedMethods = ArrayBuilder<MethodSymbol>.GetInstance(); 1984foreach (var m in methods) 1986MethodSymbol constructedMethod; 2026private static bool IsUnboundGeneric(MethodSymbol method) 2046private ImmutableArray<BoundExpression> BuildArgumentsForErrorRecovery(AnalyzedArguments analyzedArguments, ImmutableArray<MethodSymbol> methods) 2049foreach (var m in methods) 2255MethodSymbol method = new ErrorMethodSymbol(methodContainer, returnType, string.Empty); 2260var originalMethods = (expr.Kind == BoundKind.MethodGroup) ? ((BoundMethodGroup)expr).Methods : ImmutableArray<MethodSymbol>.Empty; 2477BuildArgumentsForErrorRecovery(analyzedArguments, StaticCast<MethodSymbol>.From(methods)),
Binder\Binder_Lookup.cs (11)
202PooledHashSet<MethodSymbol>? implementationsToShadow = null; 219if (candidate is MethodSymbol { IsStatic: false } shadows && 222implementationsToShadow ??= PooledHashSet<MethodSymbol>.GetInstance(); 232var extensionMethods = ArrayBuilder<MethodSymbol>.GetInstance(); 535var methods = ArrayBuilder<MethodSymbol>.GetInstance(); 827ArrayBuilder<MethodSymbol> methods, 1488else if ((options & LookupOptions.MustBeOperator) != 0 && unwrappedSymbol is not MethodSymbol { MethodKind: MethodKind.UserDefinedOperator }) 1634MethodSymbol method1; 1635MethodSymbol method2; 1885MethodSymbol method = (MethodSymbol)symbol;
Binder\Binder_Operators.cs (50)
134ImmutableArray<MethodSymbol> originalUserDefinedOperators; 293ArrayBuilder<MethodSymbol>? methods = LookupUserDefinedInstanceOperators( 309var overloadResolutionResult = OverloadResolutionResult<MethodSymbol>.GetInstance(); 331var method = overloadResolutionResult.ValidResult.Member; 351originalUserDefinedOperatorsOpt: ImmutableArray<MethodSymbol>.Empty, 358ImmutableArray<MethodSymbol> methodsArray = methods.ToImmutableAndFree(); 429MethodSymbol method = isAddition ? eventSymbol.AddMethod : eventSymbol.RemoveMethod; 533MethodSymbol userDefinedOperator = null; 723ImmutableArray<MethodSymbol> originalUserDefinedOperators; 844out LookupResultKind resultKind, out ImmutableArray<MethodSymbol> originalUserDefinedOperators, 1109ImmutableArray<MethodSymbol> originalUserDefinedOperators; 1135MethodSymbol trueOperator = null, falseOperator = null; 1215private bool IsValidDynamicCondition(BoundExpression left, bool isNegative, BindingDiagnosticBag diagnostics, out MethodSymbol userDefinedOperator) 1294out MethodSymbol trueOperator, 1295out MethodSymbol falseOperator) 1349MethodSymbol definition; 1457private bool HasApplicableBooleanOperator(NamedTypeSymbol containingType, string name, TypeSymbol argumentType, ref CompoundUseSiteInfo<AssemblySymbol> useSiteInfo, out MethodSymbol @operator) 1459var operators = ArrayBuilder<MethodSymbol>.GetInstance(); 1510out ImmutableArray<MethodSymbol> originalUserDefinedOperators) 1515originalUserDefinedOperators = default(ImmutableArray<MethodSymbol>); 1528var builder = ArrayBuilder<MethodSymbol>.GetInstance(); 1531MethodSymbol method = analysisResult.Signature.Method; 1554originalUserDefinedOperators = ImmutableArray<MethodSymbol>.Empty; 1568private void ReportObsoleteAndFeatureAvailabilityDiagnostics(MethodSymbol operatorMethod, CSharpSyntaxNode node, BindingDiagnosticBag diagnostics) 1610out ImmutableArray<MethodSymbol> originalUserDefinedOperators) 1621var builder = ArrayBuilder<MethodSymbol>.GetInstance(); 1624MethodSymbol method = analysisResult.Signature.Method; 1663originalUserDefinedOperators = ImmutableArray<MethodSymbol>.Empty; 2501originalUserDefinedOperatorsOpt: default(ImmutableArray<MethodSymbol>), 2514ImmutableArray<MethodSymbol> originalUserDefinedOperators; 2604ArrayBuilder<MethodSymbol>? methods = LookupUserDefinedInstanceOperators( 2626var overloadResolutionResult = OverloadResolutionResult<MethodSymbol>.GetInstance(); 2646var method = overloadResolutionResult.ValidResult.Member; 2662ImmutableArray<MethodSymbol>.Empty, 2669ImmutableArray<MethodSymbol> methodsArray = methods.ToImmutableAndFree(); 2708private ArrayBuilder<MethodSymbol>? LookupUserDefinedInstanceOperators(TypeSymbol lookupInType, string? checkedName, string ordinaryName, int parameterCount, ref CompoundUseSiteInfo<AssemblySymbol> useSiteInfo) 2713ArrayBuilder<MethodSymbol>? methods = null; 2721methods = ArrayBuilder<MethodSymbol>.GetInstance(lookupResult.Symbols.Count); 2734methods = ArrayBuilder<MethodSymbol>.GetInstance(lookupResult.Symbols.Count); 2739var existing = new HashSet<MethodSymbol>(PairedOperatorComparer.Instance); 2746foreach (MethodSymbol method in lookupResult.Symbols) 2760static void appendViableMethods(LookupResult lookupResult, int parameterCount, ArrayBuilder<MethodSymbol> methods) 2762foreach (MethodSymbol method in lookupResult.Symbols) 2771static bool isViable(MethodSymbol method, int parameterCount) 2781private class PairedOperatorComparer : IEqualityComparer<MethodSymbol> 2787public bool Equals(MethodSymbol x, MethodSymbol y) 2800public int GetHashCode([DisallowNull] MethodSymbol method) 2821private bool CheckConstraintLanguageVersionAndRuntimeSupportForOperator(SyntaxNode node, MethodSymbol? methodOpt, bool isUnsignedRightShift, TypeSymbol? constrainedToTypeOpt, BindingDiagnosticBag diagnostics) 3209ImmutableArray<MethodSymbol> originalUserDefinedOperators;
Binder\Binder_Patterns.cs (16)
976MethodSymbol? deconstructMethod = null; 1005ShouldUseITupleForRecursivePattern(node, declType, diagnostics, out var iTupleType, out var iTupleGetLength, out var iTupleGetItem)) 1048private MethodSymbol? BindDeconstructSubpatterns( 1057var deconstructMethod = deconstruct.ExpressionSymbol as MethodSymbol; 1200[NotNullWhen(true)] out MethodSymbol? iTupleGetLength, 1201[NotNullWhen(true)] out MethodSymbol? iTupleGetItem) 1238[NotNullWhen(true)] out MethodSymbol? iTupleGetLength, 1239[NotNullWhen(true)] out MethodSymbol? iTupleGetItem) 1269iTupleGetLength = (MethodSymbol?)Compilation.GetWellKnownTypeMember(WellKnownMember.System_Runtime_CompilerServices_ITuple__get_Length); 1270iTupleGetItem = (MethodSymbol?)Compilation.GetWellKnownTypeMember(WellKnownMember.System_Runtime_CompilerServices_ITuple__get_Item); 1376MethodSymbol? deconstructMethod = null; 1401ShouldUseITuple(node, strippedInputType, diagnostics, out var iTupleType, out var iTupleGetLength, out var iTupleGetItem)) 1414deconstructMethod = deconstruct.ExpressionSymbol as MethodSymbol;
Binder\Binder_Statements.cs (39)
219var method = (MethodSymbol)this.ContainingMemberOrLambda; 482new SourceLabelSymbol((MethodSymbol)ContainingMemberOrLambda, node.Identifier); 639private bool ImplicitReturnIsOkay(MethodSymbol method) 750/// Checks for a Dispose method on <paramref name="expr"/> and returns its <see cref="MethodSymbol"/> if found. 755/// <returns>The <see cref="MethodSymbol"/> of the Dispose method if one is found, otherwise null.</returns> 756internal MethodSymbol TryFindDisposePatternMethod(BoundExpression expr, SyntaxNode syntaxNode, bool hasAwait, BindingDiagnosticBag diagnostics, out bool isExpanded) 766out var disposeMethod, 1243MethodSymbol fixedPatternMethod = null; 1320private MethodSymbol GetFixedPatternMethodOpt(BoundExpression initializer, BindingDiagnosticBag additionalDiagnostics) 1329var result = PerformPatternMethodLookup(initializer, methodName, initializer.Syntax, additionalDiagnostics, out var patternMethodSymbol, out bool isExpanded); 1357MethodSymbol patternMethodOpt, 1809return (member as MethodSymbol)?.MethodKind == (isStatic ? 1914ImmutableArray<MethodSymbol>.CastUp(GetDeclaredLocalFunctionsForScope(node)), 2286ImmutableArray<MethodSymbol> originalUserDefinedConversions = conversion.OriginalUserDefinedConversions; 2722var best = this.UnaryOperatorOverloadResolution(UnaryOperatorKind.True, expr, node, diagnostics, out LookupResultKind resultKind, out ImmutableArray<MethodSymbol> originalUserDefinedOperators); 2948protected static bool IsInAsyncMethod(MethodSymbol method) 2955return IsInAsyncMethod(this.ContainingMemberOrLambda as MethodSymbol); 2961return symbol?.Kind == SymbolKind.Method && ((MethodSymbol)symbol).IsAsyncEffectivelyReturningTask(this.Compilation); 2967return symbol?.Kind == SymbolKind.Method && ((MethodSymbol)symbol).IsAsyncEffectivelyReturningGenericTask(this.Compilation); 2975var method = (MethodSymbol)symbol; 2984var symbol = this.ContainingMemberOrLambda as MethodSymbol; 3541var inferringLambda = this.ContainingMemberOrLambda is MethodSymbol method && (object)method.ReturnType == LambdaSymbol.ReturnTypeIsBeingInferred; 3724BoundExpression initializerInvocation = GetBinder(initializer).BindConstructorInitializer(initializer.ArgumentList, (MethodSymbol)this.ContainingMember(), diagnostics); 3745if (isInstanceConstructor(out MethodSymbol constructorSymbol) && 3776bool isInstanceConstructor(out MethodSymbol constructorSymbol) 3778if (this.ContainingMember() is MethodSymbol { IsStatic: false } method) 3790BoundExpression initializerInvocation = GetBinder(initializer).BindConstructorInitializer(initializer.ArgumentList, (MethodSymbol)this.ContainingMember(), diagnostics); 3802initializerInvocation = BindImplicitConstructorInitializer((MethodSymbol)this.ContainingMember(), diagnostics, Compilation); 3810var constructorInitializer = new BoundExpressionStatement(ctorSyntax, initializerInvocation) { WasCompilerGenerated = ((MethodSymbol)ContainingMember()).IsImplicitlyDeclared }; 3823MethodSymbol constructor, BindingDiagnosticBag diagnostics, CSharpCompilation compilation) 3930internal static BoundCall? GenerateBaseParameterlessConstructorInitializer(MethodSymbol constructor, BindingDiagnosticBag diagnostics) 3933MethodSymbol? baseConstructor = null; 3937foreach (MethodSymbol ctor in baseType.InstanceConstructors) 3999MethodSymbol? baseConstructor = SynthesizedRecordCopyCtor.FindCopyConstructor(baseType, containingType, ref useSiteInfo); 4113SyntaxNode syntaxNode, BindingDiagnosticBag diagnostics, out MethodSymbol result, out bool isExpanded) 4177var patternMethodSymbol = call.Method;
Binder\Binder_Symbols.cs (4)
1554var method = (MethodSymbol)symbol; 1573private static readonly Func<Symbol, MethodSymbol> s_toMethodSymbolFunc = s => (MethodSymbol)s;
Binder\Binder_TupleOperators.cs (1)
159ImmutableArray<MethodSymbol> originalUserDefinedOperators;
Binder\Binder_WithExpression.cs (1)
29MethodSymbol? cloneMethod = null;
Binder\BinderFactory.BinderFactoryVisitor.cs (6)
282MethodSymbol accessor = null; 347MethodSymbol method = GetMethodSymbol(parent, resultBinder); 418var accessor = propertySymbol.GetMethod; 1242MethodSymbol method = GetMethodSymbol(baseMethodDeclSyntax, outerBinder); 1308MethodSymbol invokeMethod = delegateType.DelegateInvokeMethod; 1355MethodSymbol method = GetMethodSymbol(methodDeclSyntax, outerBinder);
Binder\DecisionDagBuilder.cs (1)
532MethodSymbol method = recursive.DeconstructMethod;
Binder\EmbeddedStatementBinder.cs (2)
56var containingMethod = (MethodSymbol)this.ContainingMemberOrLambda;
Binder\ExecutableCodeBinder.cs (1)
103public static void ValidateIteratorMethod(CSharpCompilation compilation, MethodSymbol iterator, BindingDiagnosticBag diagnostics)
Binder\ForEachEnumeratorInfo.cs (3)
29public readonly MethodSymbol CurrentPropertyGetter; 57MethodSymbol currentPropertyGetter, 105public MethodSymbol CurrentPropertyGetter;
Binder\ForEachLoopBinder.cs (35)
89(MethodSymbol)this.ContainingMemberOrLambda, 234MethodSymbol getEnumeratorMethod = builder.GetEnumeratorInfo?.Method; 492ImmutableArray<MethodSymbol> originalUserDefinedConversions = elementConversionClassification.OriginalUserDefinedConversions; 719MethodSymbol nullableValueGetter = (MethodSymbol)GetSpecialTypeMember(SpecialMember.System_Nullable_T_get_Value, diagnostics, exprSyntax); 1061MethodSymbol getEnumeratorMethod = builder.GetEnumeratorInfo.Method; 1104MethodSymbol getEnumeratorMethod; 1109getEnumeratorMethod = (MethodSymbol)GetWellKnownTypeMember(Compilation, WellKnownMember.System_Collections_Generic_IAsyncEnumerable_T__GetAsyncEnumerator, 1125getEnumeratorMethod = (MethodSymbol)GetSpecialTypeMember(SpecialMember.System_Collections_Generic_IEnumerable_T__GetEnumerator, diagnostics, errorLocationSyntax); 1128MethodSymbol moveNextMethod = null; 1131MethodSymbol specificGetEnumeratorMethod = getEnumeratorMethod.AsMember(collectionType); 1142MethodSymbol currentPropertyGetter; 1147MethodSymbol moveNextAsync = (MethodSymbol)GetWellKnownTypeMember(WellKnownMember.System_Collections_Generic_IAsyncEnumerator_T__MoveNextAsync, 1155currentPropertyGetter = (MethodSymbol)GetWellKnownTypeMember(Compilation, WellKnownMember.System_Collections_Generic_IAsyncEnumerator_T__get_Current, diagnostics, errorLocationSyntax.Location, isOptional: false); 1159currentPropertyGetter = (MethodSymbol)GetSpecialTypeMember(SpecialMember.System_Collections_Generic_IEnumerator_T__get_Current, diagnostics, errorLocationSyntax); 1171moveNextMethod = (MethodSymbol)GetSpecialTypeMember(SpecialMember.System_Collections_IEnumerator__MoveNext, diagnostics, errorLocationSyntax); 1186builder.CurrentPropertyGetter = (MethodSymbol)GetSpecialTypeMember(SpecialMember.System_Collections_IEnumerator__get_Current, diagnostics, errorLocationSyntax); 1223MethodSymbol patternDisposeMethod = TryFindDisposePatternMethod(receiver, syntax, isAsync, patternDiagnostics, out bool expanded); 1326builder.CurrentPropertyGetter = (MethodSymbol)GetSpecialTypeMember(SpecialMember.System_Collections_IEnumerator__get_Current, diagnostics, syntax); 1403ArrayBuilder<MethodSymbol> candidateMethods = ArrayBuilder<MethodSymbol>.GetInstance(); 1418MethodSymbol method = (MethodSymbol)member; 1429candidateMethods.Add((MethodSymbol)member); 1444private MethodArgumentInfo PerformForEachPatternOverloadResolution(SyntaxNode syntax, SyntaxNode collectionSyntax, TypeSymbol patternType, ArrayBuilder<MethodSymbol> candidateMethods, bool warningsOnly, BindingDiagnosticBag diagnostics, bool isAsync) 1448var overloadResolutionResult = OverloadResolutionResult<MethodSymbol>.GetInstance(); 1463MethodSymbol result = null; 1546var result = overloadResolutionResult.ValidResult.Member; 1643MethodSymbol getEnumeratorMethod = builder.GetEnumeratorInfo.Method; 1702MethodSymbol currentPropertyGetterCandidate = ((PropertySymbol)lookupSymbol).GetOwnOrInheritedGetMethod(); 1745private bool IsInvalidMoveNextMethod(MethodSymbol moveNextMethodCandidate, bool isAsync) 1945var resolvedMember = (MethodSymbol)GetSpecialTypeMember(member, diagnostics, syntax); 1953private MethodArgumentInfo BindDefaultArguments(MethodSymbol method, BoundExpression extensionReceiverOpt, bool expanded, SyntaxNode syntax, BindingDiagnosticBag diagnostics)
Binder\InContainerBinder.cs (1)
76ArrayBuilder<MethodSymbol> methods,
Binder\InMethodBinder.cs (5)
25private readonly MethodSymbol _methodSymbol; 30/// This map is used by <see cref="MethodCompiler.BindMethodBody(MethodSymbol, TypeCompilationState, BindingDiagnosticBag, bool, BoundNode?, bool, out ImportChain?, out bool, out bool, out MethodBodySemanticModel.InitialState)"/> 40public InMethodBinder(MethodSymbol owner, Binder enclosing) 272if (((MethodSymbol)newSymbol).MethodKind == MethodKind.LocalFunction) 308if (((MethodSymbol)newSymbol).MethodKind == MethodKind.LocalFunction)
Binder\InSubmissionClassBinder.cs (1)
35ArrayBuilder<MethodSymbol> methods,
Binder\LocalBinderFactory.cs (4)
296=> target.Kind == SymbolKind.Method ? new WithMethodTypeParametersBinder((MethodSymbol)target, enclosing) : null; 311MethodSymbol methodSymbol => methodSymbol.Parameters, 328case MethodSymbol method: 342case MethodSymbol method:
Binder\LocalScopeBinder.cs (3)
355var containingMethod = (MethodSymbol)this.ContainingMemberOrLambda; 362internal static void BuildLabels(MethodSymbol containingMethod, StatementSyntax statement, ref ArrayBuilder<LabelSymbol> labels)
Binder\LockBinder.cs (7)
14using LockTypeInfo = (MethodSymbol EnterScopeMethod, TypeSymbol ScopeType, MethodSymbol ScopeDisposeMethod); 79var enterScopeMethod = TryFindPublicVoidParameterlessMethod(lockType, WellKnownMemberNames.EnterScopeMethodName); 94var disposeMethod = TryFindPublicVoidParameterlessMethod(scopeType, WellKnownMemberNames.DisposeMethodName); 110private static MethodSymbol? TryFindPublicVoidParameterlessMethod(TypeSymbol type, string name) 113MethodSymbol? result = null; 116if (member is MethodSymbol
Binder\MethodArgumentInfo.cs (3)
17public readonly MethodSymbol Method; 23MethodSymbol method, 34public static MethodArgumentInfo CreateParameterlessMethod(MethodSymbol method)
Binder\MethodGroupResolution.cs (2)
23public readonly OverloadResolutionResult<MethodSymbol> OverloadResolutionResult; 41OverloadResolutionResult<MethodSymbol> overloadResolutionResult,
Binder\ParamsCollectionTypeInProgressBinder.cs (3)
17private readonly MethodSymbol? _constructorInProgress; 19internal ParamsCollectionTypeInProgressBinder(NamedTypeSymbol inProgress, Binder next, MethodSymbol? constructorInProgress = null) 30internal override MethodSymbol? ParamsCollectionConstructorInProgress => _constructorInProgress;
Binder\PatternExplainer.cs (1)
541var method = e.DeconstructMethod;
Binder\RefSafetyAnalysis.cs (8)
18internal static void Analyze(CSharpCompilation compilation, MethodSymbol symbol, BoundNode node, BindingDiagnosticBag diagnostics) 58private readonly MethodSymbol _symbol; 73MethodSymbol symbol, 320var lambda = node.Symbol; 640static ParameterSymbol? tryGetReceiverParameter(MethodSymbol method) 722var method = node.Method; 820var constructor = node.Constructor; 1003var deconstructMethod = invocation.Method;
Binder\Semantics\AccessCheck.cs (1)
196case SymbolKind.Method when ((MethodSymbol)symbol).MethodKind == MethodKind.LocalFunction:
Binder\Semantics\Conversions\Conversion.cs (12)
42MethodSymbol? conversionMethod) 54internal readonly MethodSymbol? _conversionMethod; 111MethodSymbol? constructor, bool constructorUsedInExpandedForm, 125internal readonly MethodSymbol? Constructor; 131MethodSymbol? constructor, bool constructorUsedInExpandedForm, 163internal Conversion(ConversionKind kind, MethodSymbol conversionMethod, bool isExtensionMethod) 188internal Conversion SetConversionMethod(MethodSymbol conversionMethod) 479internal MethodSymbol? Method 547internal CollectionExpressionTypeKind GetCollectionExpressionTypeKind(out TypeSymbol? elementType, out MethodSymbol? constructor, out bool isExpanded) 1104internal ImmutableArray<MethodSymbol> OriginalUserDefinedConversions 1116var builder = ArrayBuilder<MethodSymbol>.GetInstance(); 1124return ImmutableArray<MethodSymbol>.Empty;
Binder\Semantics\Conversions\Conversions.cs (9)
188MethodSymbol? constructor = null; 251private static MethodGroupResolution ResolveDelegateOrFunctionPointerMethodGroup(Binder binder, BoundMethodGroup source, MethodSymbol delegateInvokeMethodOpt, bool isFunctionPointer, in CallingConventionInfo callingConventionInfo, ref CompoundUseSiteInfo<AssemblySymbol> useSiteInfo) 278private static (MethodSymbol, bool isFunctionPointer, CallingConventionInfo callingConventionInfo) GetDelegateInvokeOrFunctionPointerMethodIfAvailable(TypeSymbol type) 291MethodSymbol methodSymbol = delegateType.DelegateInvokeMethod; 329var method = result.BestResult.Member; 398var result = OverloadResolutionResult<MethodSymbol>.GetInstance(); 399var delegateInvokeMethod = delegateType.DelegateInvokeMethod; 446private static Conversion ToConversion(OverloadResolutionResult<MethodSymbol> result, MethodGroup methodGroup, int parameterCount) 469MethodSymbol method = result.BestResult.Member;
Binder\Semantics\Conversions\ConversionsBase.cs (1)
1478var invokeMethod = delegateType.DelegateInvokeMethod;
Binder\Semantics\Conversions\UserDefinedConversionAnalysis.cs (4)
24public readonly MethodSymbol Operator; 32MethodSymbol op, 50MethodSymbol op, 69MethodSymbol op,
Binder\Semantics\Conversions\UserDefinedExplicitConversions.cs (4)
220var operators = ArrayBuilder<MethodSymbol>.GetInstance(); 236var operators2 = ArrayBuilder<MethodSymbol>.GetInstance(); 239foreach (MethodSymbol op2 in operators2) 263foreach (MethodSymbol op in operators)
Binder\Semantics\Conversions\UserDefinedImplicitConversions.cs (2)
289var operators = ArrayBuilder<MethodSymbol>.GetInstance(); 292foreach (MethodSymbol op in operators)
Binder\Semantics\Operators\BinaryOperatorAnalysisResult.cs (4)
14internal readonly struct BinaryOperatorAnalysisResult : IMemberResolutionResultWithPriority<MethodSymbol> 39bool IMemberResolutionResultWithPriority<MethodSymbol>.IsApplicable => IsValid; 40MethodSymbol IMemberResolutionResultWithPriority<MethodSymbol>.MemberWithPriority => Signature.Method;
Binder\Semantics\Operators\BinaryOperatorOverloadResolution.cs (4)
961var typeOperators = ArrayBuilder<MethodSymbol>.GetInstance(); 964foreach (MethodSymbol op in typeOperators) 986MethodSymbol op = operators[i].Method; 1078RemoveLowerPriorityMembers<BinaryOperatorAnalysisResult, MethodSymbol>(candidates);
Binder\Semantics\Operators\BinaryOperatorSignature.cs (2)
21public readonly MethodSymbol Method; 43public BinaryOperatorSignature(BinaryOperatorKind kind, TypeSymbol leftType, TypeSymbol rightType, TypeSymbol returnType, MethodSymbol method, TypeSymbol constrainedToTypeOpt)
Binder\Semantics\Operators\UnaryOperatorAnalysisResult.cs (4)
11internal readonly struct UnaryOperatorAnalysisResult : IMemberResolutionResultWithPriority<MethodSymbol> 34bool IMemberResolutionResultWithPriority<MethodSymbol>.IsApplicable => IsValid; 35MethodSymbol IMemberResolutionResultWithPriority<MethodSymbol>.MemberWithPriority => Signature.Method;
Binder\Semantics\Operators\UnaryOperatorOverloadResolution.cs (4)
78RemoveLowerPriorityMembers<UnaryOperatorAnalysisResult, MethodSymbol>(candidates); 517var typeOperators = ArrayBuilder<MethodSymbol>.GetInstance(); 520foreach (MethodSymbol op in typeOperators) 556MethodSymbol op = operators[i].Method;
Binder\Semantics\Operators\UnaryOperatorSignature.cs (2)
17public readonly MethodSymbol Method; 32public UnaryOperatorSignature(UnaryOperatorKind kind, TypeSymbol operandType, TypeSymbol returnType, MethodSymbol method, TypeSymbol constrainedToTypeOpt)
Binder\Semantics\OverloadResolution\MethodGroup.cs (5)
18internal ArrayBuilder<MethodSymbol> Methods { get; } 26this.Methods = new ArrayBuilder<MethodSymbol>(); 32MethodSymbol method, 52if (member is MethodSymbol method) 67ImmutableArray<MethodSymbol> methods,
Binder\Semantics\OverloadResolution\MethodTypeInference.cs (7)
99internal abstract TypeWithAnnotations GetMethodGroupResultType(BoundMethodGroup group, MethodSymbol method); 108internal override TypeWithAnnotations GetMethodGroupResultType(BoundMethodGroup group, MethodSymbol method) 1083MethodSymbol method = delegateOrFunctionPointerType switch 1622var delegateInvokeMethod = target.Type.GetDelegateType()?.DelegateInvokeMethod(); 3242MethodSymbol method, 3257MethodSymbol method, 3275var constructedFromMethod = method.ConstructedFrom;
Binder\Semantics\OverloadResolution\OverloadResolution.cs (39)
101public void ObjectCreationOverloadResolution(ImmutableArray<MethodSymbol> constructors, AnalyzedArguments arguments, OverloadResolutionResult<MethodSymbol> result, bool dynamicResolution, bool isEarlyAttributeBinding, ref CompoundUseSiteInfo<AssemblySymbol> useSiteInfo) 138ArrayBuilder<MethodSymbol> methods, 142OverloadResolutionResult<MethodSymbol> result, 226internal bool FilterMethodsForUniqueSignature(ArrayBuilder<MethodSymbol> methods, out bool useParams) 235var result = OverloadResolutionResult<MethodSymbol>.GetInstance(); 249unreducedMethods = ArrayBuilder<MethodSymbol>.GetInstance(methods.Count); 295var applicableMethods = ArrayBuilder<MethodSymbol>.GetInstance(methods.Count); 544case MethodSymbol method: 614if (member is MethodSymbol { IsExtensionMethod: true }) 665if (typeof(TMember) != typeof(MethodSymbol)) 686var member = (MethodSymbol)(Symbol)result.Member; 806if (member is MethodSymbol method) 858Debug.Assert(typeof(TMember) == typeof(MethodSymbol)); 868var method = (MethodSymbol)(Symbol)result.Member; 930private void AddConstructorToCandidateSet(MethodSymbol constructor, ArrayBuilder<MemberResolutionResult<MethodSymbol>> results, 939results.Add(new MemberResolutionResult<MethodSymbol>(constructor, constructor, MemberAnalysisResult.UnsupportedMetadata(), hasTypeArgumentInferredFromFunctionType: false)); 961results.Add(new MemberResolutionResult<MethodSymbol>(constructor, constructor, result, hasTypeArgumentInferredFromFunctionType: false)); 966MethodSymbol constructor, 1009MethodSymbol constructor, 1462return ((MethodSymbol)member).HidesBaseMethodsByName; 1738ArrayBuilder<MemberResolutionResult<MethodSymbol>> results, 1739ImmutableArray<MethodSymbol> constructors, 1752foreach (MethodSymbol constructor in constructors) 1768RemoveLowerPriorityMembers<MemberResolutionResult<MethodSymbol>, MethodSymbol>(results); 3271MethodSymbol invoke; 3558MethodSymbol invoke1 = d1.DelegateInvokeMethod; 3559MethodSymbol invoke2 = d2.DelegateInvokeMethod; 3686MethodSymbol invoke1 = d1.DelegateInvokeMethod; 3687MethodSymbol invoke2 = d2.DelegateInvokeMethod; 4378if (member is MethodSymbol method) 4453(MethodSymbol)(Symbol)member, 4604(ignoreOpenTypes && parameters.ParameterTypes[argumentPosition].Type.ContainsTypeParameter(parameterContainer: (MethodSymbol)candidate)))); 4702if (ignoreOpenTypes && parameterType.ContainsTypeParameter(parameterContainer: (MethodSymbol)candidate)) 4755return (TMember)(Symbol)(member as MethodSymbol).ConstructedFrom;
Binder\Semantics\OverloadResolution\OverloadResolutionResult.cs (8)
512Debug.Assert(firstSupported.Member is MethodSymbol { MethodKind: MethodKind.Constructor }); 521Debug.Assert(firstSupported.Member is MethodSymbol { Name: "Add" }); 595private static void ReportWrongCallingConvention(Location location, BindingDiagnosticBag diagnostics, ImmutableArray<Symbol> symbols, MemberResolutionResult<TMember> firstSupported, MethodSymbol target) 710var method = (MethodSymbol)(Symbol)mismatch.Member; 904Debug.Assert(((MethodSymbol)(object)badMember).IsVararg); 1045MethodSymbol method = (MethodSymbol)(Symbol)result.Member;
Binder\SwitchBinder.cs (1)
236labels.Add(new SourceLabelSymbol((MethodSymbol)this.ContainingMemberOrLambda, labelSyntax, boundLabelConstantOpt));
Binder\SwitchBinder_Patterns.cs (1)
65innerLocalFunctions: ImmutableArray<MethodSymbol>.CastUp(functions),
Binder\UsingStatementBinder.cs (1)
200MethodSymbol disposeMethod = originalBinder.TryFindDisposePatternMethod(receiver, syntax, hasAwait, patternDiagnostics, out bool expanded);
Binder\WithMethodTypeParametersBinder.cs (2)
19private readonly MethodSymbol _methodSymbol; 22internal WithMethodTypeParametersBinder(MethodSymbol methodSymbol, Binder next)
Binder\WithPrimaryConstructorParametersBinder.cs (1)
18private MethodSymbol? _lazyPrimaryCtorWithParameters = ErrorMethodSymbol.UnknownMethod;
Binder\WithUsingNamespacesAndTypesBinder.cs (2)
75ArrayBuilder<MethodSymbol> methods, 198if (!symbol.IsStatic || ((MethodSymbol)symbol).IsExtensionMethod) // Tracked by https://github.com/dotnet/roslyn/issues/76130: Test this code path with new extensions
BoundTree\BoundBinaryOperator.UncommonData.cs (7)
33public static UncommonData? CreateIfNeeded(ConstantValue? constantValue, MethodSymbol? method, TypeSymbol? constrainedToType, ImmutableArray<MethodSymbol> originalUserDefinedOperatorsOpt) 44public readonly MethodSymbol? Method; 52public readonly ImmutableArray<MethodSymbol> OriginalUserDefinedOperatorsOpt; 54private UncommonData(ConstantValue? constantValue, MethodSymbol? method, TypeSymbol? constrainedToType, ImmutableArray<MethodSymbol> originalUserDefinedOperatorsOpt, bool isUnconvertedInterpolatedStringAddition, InterpolatedStringHandlerData? interpolatedStringHandlerData) 65public UncommonData WithUpdatedMethod(MethodSymbol? method)
BoundTree\BoundDynamicObjectCreationExpression.cs (1)
12public override MethodSymbol? Constructor => null;
BoundTree\BoundExpression.cs (5)
408internal MethodSymbol? Method => Data?.Method; 416internal ImmutableArray<MethodSymbol> OriginalUserDefinedOperatorsOpt => Data?.OriginalUserDefinedOperatorsOpt ?? default(ImmutableArray<MethodSymbol>); 463public MethodSymbol? SymbolOpt 537MethodSymbol constructor,
BoundTree\BoundMethodGroup.cs (1)
18ImmutableArray<MethodSymbol> methods,
BoundTree\BoundNewT.cs (1)
12public override MethodSymbol? Constructor => null;
BoundTree\BoundNodeExtensions.cs (1)
60MethodSymbol method = call!.Method;
BoundTree\BoundNoPiaObjectCreationExpression.cs (1)
12public override MethodSymbol? Constructor => null;
BoundTree\BoundObjectCreationExpression.cs (6)
12public BoundObjectCreationExpression(SyntaxNode syntax, MethodSymbol constructor, ImmutableArray<BoundExpression> arguments, ImmutableArray<string?> argumentNamesOpt, 15: this(syntax, constructor, ImmutableArray<MethodSymbol>.Empty, arguments, argumentNamesOpt, argumentRefKindsOpt, expanded, argsToParamsOpt, defaultArguments, constantValueOpt, initializerExpressionOpt, wasTargetTyped: false, type, hasErrors) 18public BoundObjectCreationExpression Update(MethodSymbol constructor, ImmutableArray<BoundExpression> arguments, ImmutableArray<string?> argumentNamesOpt, ImmutableArray<RefKind> argumentRefKindsOpt, bool expanded, 21return this.Update(constructor, ImmutableArray<MethodSymbol>.Empty, arguments, argumentNamesOpt, argumentRefKindsOpt, expanded, argsToParamsOpt, defaultArguments, constantValueOpt, initializerExpressionOpt, this.WasTargetTyped, type); 24public BoundObjectCreationExpression Update(MethodSymbol constructor, ImmutableArray<MethodSymbol> constructorsGroup, ImmutableArray<BoundExpression> arguments,
BoundTree\BoundObjectCreationExpressionBase.cs (1)
12public abstract MethodSymbol? Constructor { get; }
BoundTree\BoundTreeRewriter.cs (5)
110public virtual MethodSymbol? VisitMethodSymbol(MethodSymbol? symbol) => symbol; 143return VisitMethodSymbol((MethodSymbol)symbol); 198protected virtual ImmutableArray<MethodSymbol> VisitDeclaredLocalFunctions(ImmutableArray<MethodSymbol> localFunctions) => localFunctions;
BoundTree\Constructors.cs (21)
90MethodSymbol method, 108MethodSymbol method, 124MethodSymbol method, 130ImmutableArray<MethodSymbol> originalMethods, 163public BoundCall Update(BoundExpression? receiverOpt, ThreeState initialBindingReceiverIsSubjectToCloning, MethodSymbol method, ImmutableArray<BoundExpression> arguments) 168public static BoundCall Synthesized(SyntaxNode syntax, BoundExpression? receiverOpt, ThreeState initialBindingReceiverIsSubjectToCloning, MethodSymbol method) 173public static BoundCall Synthesized(SyntaxNode syntax, BoundExpression? receiverOpt, ThreeState initialBindingReceiverIsSubjectToCloning, MethodSymbol method, BoundExpression arg0) 178public static BoundCall Synthesized(SyntaxNode syntax, BoundExpression? receiverOpt, ThreeState initialBindingReceiverIsSubjectToCloning, MethodSymbol method, BoundExpression arg0, BoundExpression arg1) 183public static BoundCall Synthesized(SyntaxNode syntax, BoundExpression? receiverOpt, ThreeState initialBindingReceiverIsSubjectToCloning, MethodSymbol method, ImmutableArray<BoundExpression> arguments, ImmutableArray<RefKind> argumentRefKindsOpt = default) 230static ImmutableArray<RefKind> getArgumentRefKinds(MethodSymbol method) 253public BoundObjectCreationExpression(SyntaxNode syntax, MethodSymbol constructor, params BoundExpression[] arguments) 257public BoundObjectCreationExpression(SyntaxNode syntax, MethodSymbol constructor, ImmutableArray<BoundExpression> arguments) 406MethodSymbol? methodOpt, 409ImmutableArray<MethodSymbol> originalUserDefinedOperatorsOpt, 427MethodSymbol? methodOpt, 440MethodSymbol? methodOpt, 585: this(syntax, locals, ImmutableArray<MethodSymbol>.Empty, hasUnsafeModifier: false, instrumentation: null, statements, hasErrors) 676MethodSymbol? methodOpt, 688MethodSymbol? methodOpt, 701MethodSymbol? methodOpt, 714public BoundIncrementOperator Update(UnaryOperatorKind operatorKind, BoundExpression operand, MethodSymbol? methodOpt, TypeSymbol? constrainedToTypeOpt, BoundValuePlaceholder? operandPlaceholder, BoundExpression? operandConversion, BoundValuePlaceholder? resultPlaceholder, BoundExpression? resultConversion, LookupResultKind resultKind, TypeSymbol type)
BoundTree\TupleBinaryOperatorInfo.cs (2)
48internal readonly MethodSymbol? MethodSymbolOpt; // User-defined comparison operator, if applicable 60MethodSymbol? methodSymbolOpt,
BoundTree\UnboundLambda.cs (9)
23MethodSymbol Symbol { get; } 31MethodSymbol IBoundLambdaOrFunction.Symbol { get { return Symbol; } } 78MethodSymbol IBoundLambdaOrFunction.Symbol { get { return Symbol; } } 654private static MethodSymbol? DelegateInvokeMethod(NamedTypeSymbol? delegateType) 659private static TypeWithAnnotations DelegateReturnTypeWithAnnotations(MethodSymbol? invokeMethod, out RefKind refKind) 799var invokeMethod = DelegateInvokeMethod(delegateType); 920var invokeMethod = DelegateInvokeMethod(delegateType); 1121MethodSymbol? invoke = DelegateInvokeMethod(delegateType); 1228var invokeMethod = DelegateInvokeMethod(delegateType);
CodeGen\CodeGenerator.cs (3)
22private readonly MethodSymbol _method; 84MethodSymbol method, 349private void EmitSymbolToken(MethodSymbol method, SyntaxNode syntaxNode, BoundArgListOperator optArgList, bool encodeAsRawDefinitionToken = false)
CodeGen\CodeGenerator_HasHome.cs (4)
75if (!IsAnyReadOnly(addressKind) && containingSymbol is MethodSymbol { ContainingSymbol: NamedTypeSymbol, IsEffectivelyReadOnly: true }) 252return containingSymbol is MethodSymbol { MethodKind: MethodKind.StaticConstructor } or FieldSymbol { IsStatic: true }; 256return (containingSymbol is MethodSymbol { MethodKind: MethodKind.Constructor } or FieldSymbol { IsStatic: false } or MethodSymbol { IsInitOnly: true }) &&
CodeGen\EmitArrayInitializer.cs (8)
462var rosPointerCtor = (MethodSymbol?)Binder.GetWellKnownTypeMember(_module.Compilation, WellKnownMember.System_ReadOnlySpan_T__ctor_Pointer, _diagnostics, syntax: wrappedExpression.Syntax, isOptional: true); 608MethodSymbol? createSpan = (MethodSymbol?)Binder.GetWellKnownTypeMember(_module.Compilation, WellKnownMember.System_Runtime_CompilerServices_RuntimeHelpers__CreateSpanRuntimeFieldHandle, _diagnostics, syntax: wrappedExpression.Syntax, isOptional: true); 632if (!tryGetReadOnlySpanArrayCtor(wrappedExpression.Syntax, out var rosArrayCtor)) 696if (!tryGetReadOnlySpanArrayCtor(arrayCreation.Syntax, out var rosArrayCtor)) 775bool tryGetReadOnlySpanArrayCtor(SyntaxNode syntax, [NotNullWhen(true)] out MethodSymbol? rosArrayCtor) 777rosArrayCtor = (MethodSymbol?)Binder.GetWellKnownTypeMember(_module.Compilation, WellKnownMember.System_ReadOnlySpan_T__ctor_Array, _diagnostics, syntax: syntax, isOptional: true);
CodeGen\EmitConversion.cs (5)
311private void EmitDelegateCreation(BoundExpression node, BoundExpression receiver, bool isExtensionMethod, MethodSymbol method, TypeSymbol delegateType, bool used) 373var ctor = DelegateConstructor(node.Syntax, delegateType); 377private MethodSymbol DelegateConstructor(SyntaxNode syntax, TypeSymbol delegateType) 381var m = possibleCtor as MethodSymbol;
CodeGen\EmitExpression.cs (25)
519var hasValueOpt = expression.HasValueMethodOpt; 693var getTypeMethod = expression.GetTypeFromHandle; 801var meth = expression.MethodOpt ?? receiver.Type.DelegateInvokeMethod(); 1637var method = call.Method; 1657var method = call.Method; 1825var method = call.Method; 1942var method = call.Method; 1950MethodSymbol actualMethodTargetedByTheCall = method; 2182private bool IsReadOnlyCall(MethodSymbol method, NamedTypeSymbol methodContainingType) 2193var originalMethod = method.OriginalDefinition; 2235private static int GetCallStackBehavior(MethodSymbol method, ImmutableArray<BoundExpression> arguments) 2297internal static bool MayUseCallForStructMethod(MethodSymbol method) 2306var overriddenMethod = method.OverriddenMethod; 2423MethodSymbol constructor = expression.Constructor; 2478private bool ConstructorNotSideEffecting(MethodSymbol constructor) 2480var originalDef = constructor.OriginalDefinition; 2630var ctor = objCreation.Constructor; 2706var constructor = objCreation.Constructor; 3510var getTypeMethod = boundTypeOf.GetTypeFromHandle; 3543var symbol = node.Method.PartialDefinitionPart ?? node.Method; 3620var throwMethod = (MethodSymbol)_module.Compilation.GetWellKnownTypeMember(WellKnownMember.System_Threading_CancellationToken__ThrowIfCancellationRequested); 3676MethodSymbol getMethod = node.GetMethodFromHandle; 3703MethodSymbol getField = node.GetFieldFromHandle; 4043private void EmitCallCleanup(SyntaxNode syntax, UseKind useKind, MethodSymbol method)
CodeGen\EmitStackAllocInitializer.cs (3)
70if (Binder.GetWellKnownTypeMember(_module.Compilation, WellKnownMember.System_Runtime_CompilerServices_RuntimeHelpers__CreateSpanRuntimeFieldHandle, _diagnostics, syntax: syntaxNode, isOptional: true) is MethodSymbol createSpanHelper && 71Binder.GetWellKnownTypeMember(_module.Compilation, WellKnownMember.System_ReadOnlySpan_T__get_Item, _diagnostics, syntax: syntaxNode, isOptional: true) is MethodSymbol spanGetItemDefinition) 76var spanGetItem = spanGetItemDefinition.AsMember(readOnlySpan);
CodeGen\EmitStatement.cs (18)
1539var sequenceEqualsTMethod = (MethodSymbol)Binder.GetWellKnownTypeMember(_module.Compilation, 1545var sequenceEqualsCharMethod = sequenceEqualsTMethod.Construct(Binder.GetSpecialType(_module.Compilation, SpecialType.System_Char, syntaxNode, _diagnostics)); 1548var asSpanMethod = (MethodSymbol)Binder.GetWellKnownTypeMember(_module.Compilation, WellKnownMember.System_MemoryExtensions__AsSpan_String, _diagnostics, syntax: syntaxNode); 1554var stringEqualityMethod = _module.Compilation.GetSpecialTypeMember(SpecialMember.System_String__op_Equality) as MethodSymbol; 1635var spanTLengthMethod = (MethodSymbol)Binder.GetWellKnownTypeMember(_module.Compilation, 1640var spanCharLengthMethod = spanTLengthMethod.AsMember((NamedTypeSymbol)keyType); 1645var stringLengthMethod = _module.Compilation.GetSpecialTypeMember(SpecialMember.System_String__Length) as MethodSymbol; 1659var spanTIndexerMethod = (MethodSymbol)Binder.GetWellKnownTypeMember(_module.Compilation, 1665var spanCharLengthMethod = spanTIndexerMethod.AsMember((NamedTypeSymbol)keyType); 1671var stringCharsIndexer = _module.Compilation.GetSpecialTypeMember(SpecialMember.System_String__Chars) as MethodSymbol; 1701Debug.Assert(stringEqualityMethodRef == _module.Translate((MethodSymbol)_module.Compilation.GetSpecialTypeMember(SpecialMember.System_String__op_Equality), (CSharpSyntaxNode)syntaxNode, assertDiagnostics));
CodeGen\Optimizer.cs (2)
1156MethodSymbol method = node.Method; 1317var constructor = node.Constructor;
CommandLine\CSharpCompiler.cs (1)
250var method = comp.GetEntryPoint(cancellationToken);
Compilation\CSharpCompilation.cs (28)
270internal bool IsNullableAnalysisEnabledIn(MethodSymbol method) 527var methodSymbol = (debugEntryPoint as Symbols.PublicModel.MethodSymbol)?.UnderlyingMethodSymbol; 1860internal new MethodSymbol? GetEntryPoint(CancellationToken cancellationToken) 1899var entryPointMethod = FindEntryPoint(simpleProgramEntryPointSymbol, cancellationToken, out diagnostics); 1919private MethodSymbol? FindEntryPoint(MethodSymbol? simpleProgramEntryPointSymbol, CancellationToken cancellationToken, out ReadOnlyBindingDiagnostic<AssemblySymbol> sealedDiagnostics) 1923var entryPointCandidates = ArrayBuilder<MethodSymbol>.GetInstance(); 1991var taskEntryPoints = ArrayBuilder<(bool IsValid, MethodSymbol Candidate, BindingDiagnosticBag SpecificDiagnostics)>.GetInstance(); 1998bool checkValid(MethodSymbol candidate, bool isCandidate, BindingDiagnosticBag specificDiagnostics) 2016var viableEntryPoints = ArrayBuilder<MethodSymbol>.GetInstance(); 2103MethodSymbol? entryPoint = null; 2157ArrayBuilder<MethodSymbol> entryPointCandidates, IEnumerable<Symbol> members) 2161if (member is MethodSymbol method && 2169internal bool ReturnsAwaitableToVoidOrInt(MethodSymbol method, BindingDiagnosticBag diagnostics) 2207internal (bool IsCandidate, bool IsTaskLike) HasEntryPointSignature(MethodSymbol method, BindingDiagnosticBag bag) 2261public readonly MethodSymbol? MethodSymbol; 2266public EntryPoint(MethodSymbol? methodSymbol, ReadOnlyBindingDiagnostic<AssemblySymbol> diagnostics) 2420private ConcurrentSet<MethodSymbol>? _moduleInitializerMethods; 2422internal void AddModuleInitializerMethod(MethodSymbol method) 2450private ConcurrentDictionary<(ImmutableArray<byte> ContentHash, int Position), OneOrMany<(Location AttributeLocation, MethodSymbol Interceptor)>>? _interceptions; 2452internal void AddInterception(ImmutableArray<byte> contentHash, int position, Location attributeLocation, MethodSymbol interceptor) 2458() => new ConcurrentDictionary<(ImmutableArray<byte> ContentHash, int Position), OneOrMany<(Location AttributeLocation, MethodSymbol Interceptor)>>(comparer: InterceptorKeyComparer.Instance)); 2479internal (Location AttributeLocation, MethodSymbol Interceptor)? TryGetInterceptor(SimpleNameSyntax? node) 3078if (symbol.Kind == SymbolKind.Method && symbol.IsImplicitlyDeclared && ((MethodSymbol)symbol).MethodKind == MethodKind.Constructor) 3510var entryPoint = MethodCompiler.GetEntryPoint( 3662foreach ((_, OneOrMany<(Location, MethodSymbol)> interceptionsOfAGivenLocation) in _interceptions) 3688foreach (MethodSymbol method in _moduleInitializerMethods.OrderBy<MethodSymbol>(LexicalOrderSymbolComparer.Instance))
Compilation\CSharpSemanticModel.cs (32)
1668if (symbol is MethodSymbol { IsExtensionMethod: true } extensionMethod) 1792case MethodSymbol { MethodKind: MethodKind.LambdaMethod }: 3508var methodSymbol = eventAssignment.IsAddition ? eventSymbol.AddMethod : eventSymbol.RemoveMethod; 3539var symbol = conversion.SymbolOpt; 3637memberGroup = dynamicInvocation.ApplicableMethods.Cast<MethodSymbol, Symbol>(); 3645memberGroup = collectionInit.ApplicableMethods.Cast<MethodSymbol, Symbol>(); 3665memberGroup = objectCreation.ApplicableMethods.Cast<MethodSymbol, Symbol>(); 3684memberGroup = boundObjectCreation.ConstructorsGroup.Cast<MethodSymbol, Symbol>(); 3745return new ThisParameterSymbol(containingMember as MethodSymbol, typeOfThis); 3759thisParam = new ThisParameterSymbol(containingMember as MethodSymbol, containingType); 3766thisParam = new ThisParameterSymbol(containingMember as MethodSymbol, containingType); 3794thisParam = new ThisParameterSymbol(containingMember as MethodSymbol, typeOfThis); 3948private static void GetSymbolsAndResultKind(BoundExpression node, Symbol symbolOpt, ImmutableArray<MethodSymbol> originalCandidates, out OneOrMany<Symbol> symbols, out LookupResultKind resultKind) 3979MethodSymbol constructor = null; 4025MethodSymbol constructorOpt, 4042ImmutableArray<MethodSymbol> candidateConstructors; 4063candidateConstructors = ImmutableArray<MethodSymbol>.Empty; 4078memberGroup = candidateConstructors.Cast<MethodSymbol, Symbol>(); 4204private static ImmutableArray<MethodSymbol> FilterOverriddenOrHiddenMethods(ImmutableArray<MethodSymbol> methods) 4213foreach (MethodSymbol method in methods) 4306MethodSymbol method = null; 4335symbols = OneOrMany.Create(dynamicInvocation.ApplicableMethods.Cast<MethodSymbol, Symbol>()); 4583ImmutableArray<MethodSymbol> nonHiddenMethods = FilterOverriddenOrHiddenMethods(node.Methods); 4586foreach (var method in nonHiddenMethods) 4645if (singleLookupResult.Symbol is not (MethodSymbol or PropertySymbol)) 4772foreach (var method in FilterOverriddenOrHiddenMethods(methods)) 4787var method = call.Method; 4794MethodSymbol reduced = method.ReduceExtensionMethod(receiver.Type, Compilation); 4804var method = delegateCreation.MethodOpt; 4809MethodSymbol reduced = method.ReduceExtensionMethod(receiverOpt.Type, Compilation); 5201if (node.GetInterceptableNameSyntax() is { } nameSyntax && Compilation.TryGetInterceptor(nameSyntax) is (_, MethodSymbol interceptor))
Compilation\MemberSemanticModel.cs (6)
852var localFunction = GetDeclaredSymbol((LocalFunctionStatementSyntax)paramList.Parent, cancellationToken).GetSymbol<MethodSymbol>(); 971MethodSymbol disposeMethod = null; 981? (MethodSymbol)Compilation.GetWellKnownTypeMember(WellKnownMember.System_IAsyncDisposable__DisposeAsync) 982: (MethodSymbol)Compilation.GetSpecialTypeMember(SpecialMember.System_IDisposable__Dispose); 2342Debug.Assert(symbol is LocalSymbol or ParameterSymbol or MethodSymbol { MethodKind: MethodKind.LambdaMethod });
Compilation\MemberSemanticModel.SpeculativeMemberSemanticModel.cs (2)
52return NullableWalker.AnalyzeAndRewrite(Compilation, MemberSymbol as MethodSymbol, boundRoot, binder, initialState: null, diagnostics, createSnapshots: false, out snapshotManager, ref remappedSymbols); 57NullableWalker.AnalyzeWithoutRewrite(Compilation, MemberSymbol as MethodSymbol, boundRoot, binder, diagnostics, createSnapshots);
Compilation\MethodBodySemanticModel.cs (15)
44MethodSymbol owner, 61internal static MethodBodySemanticModel Create(SyntaxTreeSemanticModel containingSemanticModel, MethodSymbol owner, InitialState initialState) 113MethodSymbol owner, 125MethodSymbol owner, 138internal static SpeculativeSemanticModelWithMemberModel CreateSpeculative(SyntaxTreeSemanticModel parentSemanticModel, MethodSymbol owner, ArrowExpressionClauseSyntax syntax, Binder rootBinder, int position) 146internal static SpeculativeSemanticModelWithMemberModel CreateSpeculative(SyntaxTreeSemanticModel parentSemanticModel, MethodSymbol owner, ConstructorInitializerSyntax syntax, Binder rootBinder, int position) 154internal static SpeculativeSemanticModelWithMemberModel CreateSpeculative(SyntaxTreeSemanticModel parentSemanticModel, MethodSymbol owner, PrimaryConstructorBaseTypeSyntax syntax, Binder rootBinder, int position) 169var methodSymbol = (MethodSymbol)this.MemberSymbol; 213var methodSymbol = (MethodSymbol)this.MemberSymbol; 231var methodSymbol = (MethodSymbol)this.MemberSymbol; 241if (MemberSymbol is MethodSymbol methodSymbol && methodSymbol.MethodKind == MethodKind.Constructor && 306return Compilation.IsNullableAnalysisEnabledIn((MethodSymbol)MemberSymbol);
Compilation\SpeculativeSemanticModelWithMemberModel.cs (1)
103MethodSymbol owner,
Compilation\SyntaxTreeSemanticModel.cs (7)
1538return ((MethodSymbol)GetDeclaredMemberSymbol(declarationSyntax)).GetPublicSymbol(); 1620return (this.GetDeclaredMember(container, declarationSyntax.Span, isKnownToBeANamespace: false) as MethodSymbol).GetPublicSymbol(); 1643return (this.GetDeclaredMember(container, declarationSyntax.Span, isKnownToBeANamespace: false) as MethodSymbol).GetPublicSymbol(); 2079MethodSymbol method; 2149var delegateInvoke = delegateType.DelegateInvokeMethod; 2222case MethodSymbol methodSymbol: 2442Debug.Assert(symbol is LocalSymbol or ParameterSymbol or MethodSymbol { MethodKind: MethodKind.LambdaMethod });
Compiler\AnonymousTypeMethodBodySynthesizer.cs (3)
197MethodSymbol equalityComparer_GetHashCode = manager.System_Collections_Generic_EqualityComparer_T__GetHashCode; 198MethodSymbol equalityComparer_get_Default = manager.System_Collections_Generic_EqualityComparer_T__get_Default; 282var formatMethod = manager.System_String__Format_IFormatProvider;
Compiler\ClsComplianceChecker.cs (17)
275foreach (MethodSymbol constructor in attributeType.InstanceConstructors) 303public override void VisitMethod(MethodSymbol symbol) 340private void CheckForAttributeOnAccessor(MethodSymbol symbol) 476MethodSymbol method = type.DelegateInvokeMethod; 483MethodSymbol method = (MethodSymbol)symbol; 591CheckForAttributeWithArrayArgumentInternal(((MethodSymbol)symbol).GetReturnTypeAttributes()); 683Symbol associated = ((MethodSymbol)container).AssociatedSymbol; 702private void CheckForMeaninglessOnReturn(MethodSymbol method) 733MethodSymbol method = (MethodSymbol)symbol; 1126MethodSymbol method = (MethodSymbol)symbol; 1332var mX = (MethodSymbol)x; 1336var mY = (MethodSymbol)y;
Compiler\DocumentationCommentCompiler.cs (3)
240public override void VisitMethod(MethodSymbol symbol) 244MethodSymbol underlyingMethod = implementation.UnderlyingMethod; 655MethodSymbol delegateInvoke = ((NamedTypeSymbol)symbol).DelegateInvokeMethod;
Compiler\DocumentationCommentCompiler.IncludeElementExpander.cs (3)
563parameters = ((MethodSymbol)memberSymbol).Parameters; 599MethodSymbol methodSymbol = (MethodSymbol)currentSymbol;
Compiler\MethodBodySynthesizer.cs (18)
24MethodSymbol constructor, 86MethodSymbol submissionConstructor, 236MethodSymbol accessor = isAddMethod ? eventSymbol.AddMethod : eventSymbol.RemoveMethod; 245MethodSymbol getOrCreateMethod = (MethodSymbol)Binder.GetWellKnownTypeMember( 263MethodSymbol processHandlerMethod = (MethodSymbol)Binder.GetWellKnownTypeMember( 349MethodSymbol accessor = isAddMethod ? eventSymbol.AddMethod : eventSymbol.RemoveMethod; 355MethodSymbol updateMethod = (MethodSymbol)compilation.GetSpecialTypeMember(updateMethodId); 392MethodSymbol compareExchangeMethod = (MethodSymbol)compilation.GetWellKnownTypeMember(WellKnownMember.System_Threading_Interlocked__CompareExchange_T); 528internal static BoundBlock ConstructDestructorBody(MethodSymbol method, BoundBlock block) 538MethodSymbol baseTypeFinalize = GetBaseTypeFinalizeMethod(method); 593private static MethodSymbol GetBaseTypeFinalizeMethod(MethodSymbol method) 602MethodSymbol baseTypeMethod = (MethodSymbol)member;
Compiler\MethodBodySynthesizer.Lowered.cs (11)
243F.CurrentFunction = (MethodSymbol)this.OriginalDefinition; 247MethodSymbol methodToInvoke = 281F.CurrentFunction = (MethodSymbol)this.OriginalDefinition; 324MethodSymbol methodBeingWrapped = this.BaseMethod; 354MethodSymbol system_Collections_Generic_EqualityComparer_T__GetHashCode, 355MethodSymbol system_Collections_Generic_EqualityComparer_T__get_Default, 378MethodSymbol system_Collections_Generic_EqualityComparer_T__GetHashCode, 379MethodSymbol system_Collections_Generic_EqualityComparer_T__get_Default, 413var equalityComparer_get_Default = F.WellKnownMethod( 415var equalityComparer_Equals = F.WellKnownMethod( 455internal static BoundBlock ConstructSingleInvocationMethodBody(SyntheticBoundNodeFactory F, MethodSymbol methodToInvoke, bool useBaseReference)
Compiler\MethodCompiler.cs (25)
136MethodSymbol? entryPoint = null; 226internal static MethodSymbol GetEntryPoint(CSharpCompilation compilation, PEModuleBuilder moduleBeingBuilt, bool hasDeclarationErrors, bool emitMethodBodies, BindingDiagnosticBag diagnostics, CancellationToken cancellationToken) 234var entryPoint = entryPointAndDiagnostics.MethodSymbol; 519MethodSymbol method = (MethodSymbol)member; 601foreach (var method in AnonymousTypeManager.GetAnonymousTypeHiddenMethods(containingType)) 617MethodSymbol method = new SynthesizedStaticConstructor(sourceTypeSymbol); 672internal static MethodSymbol GetMethodToCompile(MethodSymbol method) 690var method = (MethodSymbol)definition.GetInternalSymbol(); 709foreach (var method in additionalType.GetMethodsToEmit()) 885public override object VisitMethod(MethodSymbol symbol, TypeCompilationState arg) 906MethodSymbol methodSymbol, 1395private void EmitSkeletonMethodInExtension(MethodSymbol methodSymbol) 1445private static MethodSymbol GetSymbolForEmittedBody(MethodSymbol methodSymbol) 1452MethodSymbol method, 1593MethodSymbol method, 1634MethodSymbol kickoffMethod; 1717MethodSymbol methodBodyParentSymbol = GetSymbolForEmittedBody(method); 1827internal static BoundBlock? BindSynthesizedMethodBody(MethodSymbol method, TypeCompilationState compilationState, BindingDiagnosticBag diagnostics) 1844MethodSymbol method, 2443private static BoundStatement BindImplicitConstructorInitializerIfAny(MethodSymbol method, TypeCompilationState compilationState, BindingDiagnosticBag diagnostics) 2467private static void ReportCtorInitializerCycles(MethodSymbol method, BoundExpression initializerInvocation, TypeCompilationState compilationState, BindingDiagnosticBag diagnostics)
Compiler\ModuleCompilationState.cs (1)
11internal sealed class ModuleCompilationState : ModuleCompilationState<NamedTypeSymbol, MethodSymbol>
Compiler\SynthesizedMetadataCompiler.cs (1)
117public override void VisitMethod(MethodSymbol symbol)
Compiler\TypeCompilationState.cs (19)
29public readonly MethodSymbol Method; 33internal MethodWithBody(MethodSymbol method, BoundStatement body, ImportChain? importChain) 52private Dictionary<MethodSymbol, MethodSymbol>? _wrappers; 80private SmallDictionary<MethodSymbol, MethodSymbol>? _constructorInitializers; 133public void AddSynthesizedMethod(MethodSymbol method, BoundStatement body) 150public void AddMethodWrapper(MethodSymbol method, MethodSymbol wrapper, BoundStatement body) 156_wrappers = new Dictionary<MethodSymbol, MethodSymbol>(); 175public MethodSymbol? GetMethodWrapper(MethodSymbol method) 177MethodSymbol? wrapper = null; 202internal void ReportCtorInitializerCycles(MethodSymbol method1, MethodSymbol method2, SyntaxNode syntax, BindingDiagnosticBag diagnostics) 217_constructorInitializers = new SmallDictionary<MethodSymbol, MethodSymbol>(); 222MethodSymbol? next = method2;
DocumentationComments\DocumentationCommentIDVisitor.cs (1)
37public override object VisitMethod(MethodSymbol symbol, StringBuilder builder)
DocumentationComments\DocumentationCommentIDVisitor.PartVisitor.cs (1)
99public override object VisitMethod(MethodSymbol symbol, StringBuilder builder)
Emitter\EditAndContinue\CSharpSymbolMatcher.cs (6)
179public override Symbol? VisitMethod(MethodSymbol symbol) 451SymbolKind.Method => ((MethodSymbol)otherContainer).TypeParameters, 598private bool AreMethodsEqual(MethodSymbol method, MethodSymbol other) 614private static MethodSymbol SubstituteTypeParameters(MethodSymbol method)
Emitter\EditAndContinue\EmitHelpers.cs (3)
43if (!GetPredefinedHotReloadExceptionTypeConstructor(compilation, diagnostics, out var predefinedHotReloadExceptionConstructor)) 158private static bool GetPredefinedHotReloadExceptionTypeConstructor(CSharpCompilation compilation, DiagnosticBag diagnostics, out MethodSymbol? constructor) 160constructor = compilation.GetWellKnownTypeMember(WellKnownMember.System_Runtime_CompilerServices_HotReloadException__ctorStringInt32) as MethodSymbol;
Emitter\EditAndContinue\PEDeltaAssemblyBuilder.cs (5)
27private readonly MethodSymbol? _predefinedHotReloadExceptionConstructor; 55MethodSymbol? predefinedHotReloadExceptionConstructor) 248internal override VariableSlotAllocator? TryCreateVariableSlotAllocator(MethodSymbol method, MethodSymbol topLevelMethod, DiagnosticBag diagnostics) 253internal override MethodInstrumentation GetMethodBodyInstrumentations(MethodSymbol method)
Emitter\Model\GenericMethodInstanceReference.cs (1)
20public GenericMethodInstanceReference(MethodSymbol underlyingMethod)
Emitter\Model\MethodReference.cs (2)
17protected readonly MethodSymbol UnderlyingMethod; 19public MethodReference(MethodSymbol underlyingMethod)
Emitter\Model\MethodSymbolAdapter.cs (5)
272(MethodSymbol)AdaptedMethodSymbol.OriginalDefinition, 278MethodSymbol methodSymbol = AdaptedMethodSymbol.ConstructedFrom; 288return ((MethodSymbol)AdaptedMethodSymbol.OriginalDefinition).GetCciAdapter(); 702internal MethodSymbolAdapter(MethodSymbol underlyingMethodSymbol) 714internal MethodSymbol AdaptedMethodSymbol { get; }
Emitter\Model\NamedTypeSymbolAdapter.cs (14)
328var method = (MethodSymbol)member; 336foreach (var implemented in method.ExplicitInterfaceImplementations) 369MethodSymbol objectMethod = objectMember as MethodSymbol; 388foreach ((MethodSymbol body, MethodSymbol implemented) in container.GetSynthesizedExplicitImplementations(cancellationToken: default).MethodImpls) 407var method = m.GetInternalSymbol() as MethodSymbol; 412foreach (var implemented in method.ExplicitInterfaceImplementations) 628foreach (var method in AdaptedNamedTypeSymbol.GetMethodsToEmit()) 1023internal virtual IEnumerable<MethodSymbol> GetMethodsToEmit() 1031var method = (MethodSymbol)m;
Emitter\Model\PEModuleBuilder.cs (29)
26internal abstract class PEModuleBuilder : PEModuleBuilder<CSharpCompilation, SourceModuleSymbol, AssemblySymbol, TypeSymbol, NamedTypeSymbol, MethodSymbol, SyntaxNode, NoPia.EmbeddedTypesManager, ModuleCompilationState> 391var method = (MethodSymbol)member; 500internal virtual VariableSlotAllocator TryCreateVariableSlotAllocator(MethodSymbol method, MethodSymbol topLevelMethod, DiagnosticBag diagnostics) 505internal virtual MethodInstrumentation GetMethodBodyInstrumentations(MethodSymbol method) 841return ((MethodSymbol)Compilation.GetWellKnownTypeMember(WellKnownMember.System_Runtime_CompilerServices_RuntimeHelpers__InitializeArrayArrayRuntimeFieldHandle))?.GetCciAdapter(); 1203internal sealed override Cci.IMethodReference Translate(MethodSymbol symbol, DiagnosticBag diagnostics, bool needDeclaration) 1209MethodSymbol methodSymbol, 1243MethodSymbol methodSymbol, 1303else if (methodSymbol is NativeIntegerMethodSymbol { UnderlyingMethod: MethodSymbol underlyingMethod }) 1319MethodSymbol methodSymbol, 1431return container.Kind == SymbolKind.Method && ((MethodSymbol)container).IsGenericMethod || 1820internal MethodSymbol EnsureThrowSwitchExpressionExceptionExists(SyntaxNode syntaxNode, SyntheticBoundNodeFactory factory, DiagnosticBag diagnostics) 1833private MethodSymbol EnsurePrivateImplClassMethodExists<TArg>(SyntaxNode syntaxNode, string methodName, Func<SynthesizedPrivateImplementationDetailsType, TArg, MethodSymbol> createMethodSymbol, TArg arg, DiagnosticBag diagnostics) 1840return (MethodSymbol)methodAdapter.GetInternalSymbol()!; 1843MethodSymbol methodSymbol = createMethodSymbol(privateImplClass, arg); 1848return (MethodSymbol)privateImplClass.PrivateImplementationDetails.GetMethod(methodName)!.GetInternalSymbol()!; 1867internal MethodSymbol EnsureThrowSwitchExpressionExceptionParameterlessExists(SyntaxNode syntaxNode, SyntheticBoundNodeFactory factory, DiagnosticBag diagnostics) 1887internal MethodSymbol EnsureThrowInvalidOperationExceptionExists(SyntaxNode syntaxNode, SyntheticBoundNodeFactory factory, DiagnosticBag diagnostics) 1904internal MethodSymbol EnsureInlineArrayAsSpanExists(SyntaxNode syntaxNode, NamedTypeSymbol spanType, NamedTypeSymbol intType, DiagnosticBag diagnostics) 1932var attributeConstructor = (MethodSymbol)factory.SpecialMember(SpecialMember.System_Runtime_CompilerServices_InlineArrayAttribute__ctor); 1973internal MethodSymbol EnsureInlineArrayAsReadOnlySpanExists(SyntaxNode syntaxNode, NamedTypeSymbol spanType, NamedTypeSymbol intType, DiagnosticBag diagnostics) 1990internal MethodSymbol EnsureInlineArrayElementRefExists(SyntaxNode syntaxNode, NamedTypeSymbol intType, DiagnosticBag diagnostics) 2006internal MethodSymbol EnsureInlineArrayElementRefReadOnlyExists(SyntaxNode syntaxNode, NamedTypeSymbol intType, DiagnosticBag diagnostics) 2022internal MethodSymbol EnsureInlineArrayFirstElementRefExists(SyntaxNode syntaxNode, DiagnosticBag diagnostics) 2035internal MethodSymbol EnsureInlineArrayFirstElementRefReadOnlyExists(SyntaxNode syntaxNode, DiagnosticBag diagnostics)
Emitter\Model\PropertySymbolAdapter.cs (2)
72MethodSymbol getMethod = AdaptedPropertySymbol.GetMethod; 127MethodSymbol setMethod = AdaptedPropertySymbol.SetMethod;
Emitter\Model\SpecializedGenericMethodInstanceReference.cs (1)
24public SpecializedGenericMethodInstanceReference(MethodSymbol underlyingMethod)
Emitter\Model\SpecializedMethodReference.cs (1)
21public SpecializedMethodReference(MethodSymbol underlyingMethod)
Emitter\Model\TypeParameterSymbolAdapter.cs (2)
222return ((MethodSymbol)AdaptedTypeParameterSymbol.ContainingSymbol).GetCciAdapter(); 347return ((MethodSymbol)AdaptedTypeParameterSymbol.ContainingSymbol).GetCciAdapter();
Emitter\NoPia\EmbeddedEvent.cs (1)
135TypeManager.EmbedMethodIfNeedTo(((MethodSymbol)m).GetCciAdapter(), syntaxNodeOpt, diagnostics);
Emitter\NoPia\EmbeddedType.cs (2)
49foreach (MethodSymbol m in UnderlyingNamedType.AdaptedNamedTypeSymbol.GetMethodsToEmit()) 304TypeManager.EmbedMethod(this, ((MethodSymbol)s).GetCciAdapter(), syntaxNodeOpt, diagnostics);
Emitter\NoPia\EmbeddedTypesManager.cs (9)
41private readonly MethodSymbol[] _lazyWellKnownTypeMethods; 46_lazyWellKnownTypeMethods = new MethodSymbol[(int)WellKnownMember.Count]; 81public MethodSymbol GetWellKnownMethod(WellKnownMember method, SyntaxNode syntaxNodeOpt, DiagnosticBag diagnostics) 89private MethodSymbol LazyGetWellKnownTypeMethod(ref MethodSymbol lazyMethod, WellKnownMember member, SyntaxNode syntaxNodeOpt, DiagnosticBag diagnostics) 94var symbol = (MethodSymbol)Binder.GetWellKnownTypeMember(ModuleBeingBuilt.Compilation, 125var ctor = GetWellKnownMethod(constructor, syntaxNodeOpt, diagnostics); 415foreach (MethodSymbol m in namedType.GetMethodsToEmit())
Errors\LazyUnmanagedCallersOnlyMethodCalledDiagnosticInfo.cs (2)
13private readonly MethodSymbol _method; 16internal LazyUnmanagedCallersOnlyMethodCalledDiagnosticInfo(MethodSymbol method, bool isDelegateConversion)
FlowAnalysis\AbstractFlowPass.cs (25)
469var method = _symbol as MethodSymbol; 483(_symbol as MethodSymbol)?.TryGetThisParameter(out thisParameter); 495var method = _symbol as MethodSymbol; 1418private void VisitReceiverBeforeCall(BoundExpression receiverOpt, MethodSymbol method) 1426private void VisitReceiverAfterCall(BoundExpression receiverOpt, MethodSymbol method) 1481var method = GetReadMethod(node.Indexer); 1515protected virtual void VisitArguments(ImmutableArray<BoundExpression> arguments, ImmutableArray<RefKind> refKindsOpt, MethodSymbol method, ImmutableArray<int> argsToParamsOpt, bool expanded) 1543private void VisitArgumentsAfterCall(ImmutableArray<BoundExpression> arguments, ImmutableArray<RefKind> refKindsOpt, MethodSymbol? method, ImmutableArray<int> argsToParamsOpt, bool expanded) 1577protected virtual void WriteArgument(BoundExpression arg, RefKind refKind, MethodSymbol method) 1641static bool ignoreReceiver(MethodSymbol method) 2120protected virtual void PropertySetter(BoundExpression node, BoundExpression receiver, MethodSymbol setter, BoundExpression value = null) 2147var method = GetWriteMethod(property); 2202var readMethod = GetReadMethod(property); 2221var writeMethod = GetWriteMethod(property); 2281var method = GetReadMethod(property); 2817var readMethod = GetReadMethod(property); 2818var writeMethod = GetWriteMethod(property); 3021var method = conversion.Method; 3598MethodSymbol method = null; 3699private static MethodSymbol GetReadMethod(PropertySymbol property) => 3702private static MethodSymbol GetWriteMethod(PropertySymbol property) => 3726var readMethod = property.GetOwnOrInheritedGetMethod(); 3784var writeMethod = symbol.GetOwnOrInheritedSetMethod();
FlowAnalysis\AbstractFlowPass_LocalFunctions.cs (1)
73var localFuncSymbol = localFunc.Symbol;
FlowAnalysis\AlwaysAssignedWalker.cs (1)
73protected override void WriteArgument(BoundExpression arg, RefKind refKind, MethodSymbol method)
FlowAnalysis\CSharpDataFlowAnalysis.cs (3)
255IEnumerable<MethodSymbol> usedLocalFunctions; 267usedLocalFunctions = Enumerable.Empty<MethodSymbol>(); 395private static ImmutableArray<IMethodSymbol> Normalize(IEnumerable<MethodSymbol> data)
FlowAnalysis\DefiniteAssignment.cs (19)
102&& CurrentSymbol is MethodSymbol { MethodKind: MethodKind.Constructor, ContainingType.TypeKind: TypeKind.Struct }; 157protected MethodSymbol? topLevelMethod; 186this.topLevelMethod = member as MethodSymbol; 205this.topLevelMethod = member as MethodSymbol; 340case MethodSymbol { IsStatic: false, ContainingSymbol: SourceMemberContainerTypeSymbol { PrimaryConstructor: { } primaryConstructor } } and 409if (CurrentSymbol is MethodSymbol currentMethod && currentMethod.IsAsync && !currentMethod.IsImplicitlyDeclared) 551MethodSymbol member, 740protected IEnumerable<MethodSymbol> GetUsedLocalFunctions() => _usedLocalFunctions.ToArray(); 1258Debug.Assert(CurrentSymbol is MethodSymbol { MethodKind: MethodKind.Constructor, ContainingType.TypeKind: TypeKind.Struct }); 1311if (CurrentSymbol is not MethodSymbol { MethodKind: MethodKind.Constructor, ContainingType.TypeKind: TypeKind.Struct }) 1809if ((object)current != CurrentSymbol && current is MethodSymbol method) 1861if (current is not MethodSymbol && parameter.RefKind == RefKind.Out) 1891if (parameter.RefKind == RefKind.Out && !(this.CurrentSymbol is MethodSymbol currentMethod && currentMethod.IsAsync)) // out parameters not allowed in async 2344private void ReportUnusedVariables(ImmutableArray<MethodSymbol> locals) 2346foreach (var symbol in locals) 2352private void ReportIfUnused(MethodSymbol symbol) 2382if (localSymbol.IsFixed && this.CurrentSymbol is MethodSymbol currentMethod && 2424foreach (var method in node.Methods) 2579protected override void WriteArgument(BoundExpression arg, RefKind refKind, MethodSymbol method)
FlowAnalysis\DefiniteAssignment.LocalFunctions.cs (1)
163((MethodSymbol)symbol).MethodKind == MethodKind.LocalFunction)
FlowAnalysis\DefiniteAssignment.VariableIdentifier.cs (1)
36SymbolKind.Method when symbol is MethodSymbol m && m.MethodKind == MethodKind.LocalFunction => true,
FlowAnalysis\FlowAnalysisPass.cs (6)
32MethodSymbol method, 110private static BoundBlock PrependImplicitInitializations(BoundBlock body, MethodSymbol method, ImmutableArray<FieldSymbol> implicitlyInitializedFields, TypeCompilationState compilationState, BindingDiagnosticBag diagnostics) 165private static BoundBlock AppendImplicitReturn(BoundBlock body, MethodSymbol method, bool originalBodyNested) 176return body.Update(body.Locals, ImmutableArray<MethodSymbol>.Empty, body.HasUnsafeModifier, body.Instrumentation, builder.ToImmutableAndFree()); 187internal static BoundBlock AppendImplicitReturn(BoundBlock body, MethodSymbol method) 209MethodSymbol method,
FlowAnalysis\NullableWalker.cs (164)
205private MethodSymbol? _delegateInvokeMethod; 244private PooledDictionary<MethodSymbol, Variables>? _nestedFunctionVariables; 269private readonly MethodSymbol? _baseOrThisInitializer; 460MethodSymbol? delegateInvokeMethodOpt, 465MethodSymbol? baseOrThisInitializer, 615if ((_symbol as MethodSymbol)?.IsConstructor() != true || _useConstructorExitWarnings) 643var method = _symbol as MethodSymbol; 717void checkMemberStateOnConstructorExit(MethodSymbol constructor, Symbol member, LocalState state, int thisSlot, Location? exitLocation, ImmutableArray<string> membersWithStateEnforcedByRequiredMembers, bool forcePropertyAnalysis) 810if (_symbol is MethodSymbol method) 888var baseOrThisInitializer = GetBaseOrThisInitializer(); 1054private void EnforceMemberNotNullOnMember(SyntaxNode? syntaxOpt, LocalState state, MethodSymbol method, string memberName) 1088if (_symbol is MethodSymbol method) 1118if (_symbol is MethodSymbol method) 1166private void MakeMembersMaybeNull(MethodSymbol method, ImmutableArray<string> members) 1174void makeMemberMaybeNull(MethodSymbol method, string memberName) 1208containingSlot = GetReceiverSlotForMemberPostConditions(_symbol as MethodSymbol); 1224private MethodSymbol? GetBaseOrThisInitializer() 1231if (_symbol is not MethodSymbol method) 1279if (_symbol is not MethodSymbol method) 1397else if (CurrentSymbol is MethodSymbol { IsAsync: false }) 1409if (CurrentSymbol is MethodSymbol method && 1423MethodSymbol method, 1429MethodSymbol? baseOrThisInitializer, 1450MethodSymbol method, 1456MethodSymbol? baseOrThisInitializer, 1493if (symbol is MethodSymbol method 1509internal static VariableState? GetAfterInitializersState(CSharpCompilation compilation, MethodSymbol method, BoundNode nodeToAnalyze, BoundNode? constructorBody, BindingDiagnosticBag diagnostics) 1526MethodSymbol? baseOrThisInitializer = GetConstructorThisOrBaseSymbol(constructorBody); 1547private static MethodSymbol? GetConstructorThisOrBaseSymbol(BoundNode? constructorBody) 1776MethodSymbol? delegateInvokeMethodOpt, 1780var symbol = lambda.Symbol; 1821MethodSymbol? delegateInvokeMethodOpt, 1823MethodSymbol? baseOrThisInitializer, 2122var method = getTopLevelMethod(_symbol as MethodSymbol); 2201static MethodSymbol? getTopLevelMethod(MethodSymbol? method) 2210method = container as MethodSymbol; 2228var enclosingMemberMethod = _symbol as MethodSymbol; 2232enclosingMemberMethod = enclosingMemberMethod.ContainingSymbol as MethodSymbol; 2245if (this._symbol is MethodSymbol constructor 2780if (_symbol is not MethodSymbol method) 2935if (!(CurrentSymbol is MethodSymbol methodSymbol)) 3098if (CurrentSymbol is MethodSymbol method) 3133var method = CurrentSymbol as MethodSymbol; 3141var delegateOrMethod = _useDelegateInvokeReturnType ? _delegateInvokeMethod! : method; 3374private Variables GetOrCreateNestedFunctionVariables(Variables container, MethodSymbol lambdaOrLocalFunction) 3376_nestedFunctionVariables ??= PooledDictionary<MethodSymbol, Variables>.GetInstance(); 3388MethodSymbol lambdaOrFunctionSymbol, 3390MethodSymbol? delegateInvokeMethod, 3402var oldDelegateInvokeMethod = _delegateInvokeMethod; 3770var invokeMethod = n.DelegateInvokeMethod; 3955var createMethod = node.CollectionBuilderMethod; 3971var createMethod = node.CollectionBuilderMethod; 4015MethodSymbol? constructor = getConstructor(node, node.Type); 4018(_, ImmutableArray<VisitResult> argumentResults, _, ArgumentsCompletionDelegate<MethodSymbol>? argumentsCompletion) = 4027(int slot, NullableFlowState resultState, Func<TypeSymbol, MethodSymbol?, int>? initialStateInferenceCompletion) = 4044ArgumentsCompletionDelegate<MethodSymbol>? argumentsCompletion, 4045Func<TypeSymbol, MethodSymbol?, int>? initialStateInferenceCompletion, 4073ArgumentsCompletionDelegate<MethodSymbol> argumentsCompletion, 4074Func<TypeSymbol, MethodSymbol?, int> initialStateInferenceCompletion, 4086MethodSymbol? constructor = getConstructor(node, type); 4098static MethodSymbol? getConstructor(BoundObjectCreationExpressionBase node, TypeSymbol type) 4100var constructor = node.Constructor; 4104constructor = (MethodSymbol)AsMemberOfType(type, constructor); 4110(int slot, NullableFlowState resultState, Func<TypeSymbol, MethodSymbol?, int>? completion) inferInitialObjectState( 4111BoundExpression node, TypeSymbol type, MethodSymbol? constructor, 4181Func<TypeSymbol, MethodSymbol?, int> inferInitialObjectStateAsContinuation( 4187return (TypeSymbol type, MethodSymbol? constructor) => 4465MethodSymbol addMethod = addMethodAsMemberOfContainingType(node, containingType, ref argumentResults); 4468(MethodSymbol? reinferredMethod, 4471ArgumentsCompletionDelegate<MethodSymbol>? visitArgumentsCompletion) = 4498MethodSymbol? reinferredMethod, 4500ArgumentsCompletionDelegate<MethodSymbol>? visitArgumentsCompletion, 4525ArgumentsCompletionDelegate<MethodSymbol> visitArgumentsCompletion) 4529MethodSymbol addMethod = addMethodAsMemberOfContainingType(node, containingType, ref argumentResults); 4537static MethodSymbol addMethodAsMemberOfContainingType(BoundCollectionElementInitializer node, TypeSymbol containingType, ref ImmutableArray<VisitResult> argumentResults) 4539var method = node.AddMethod; 4563method = (MethodSymbol)AsMemberOfType(containingType, method); 4998private TypeWithState InferResultNullability(BinaryOperatorKind operatorKind, MethodSymbol? methodOpt, TypeSymbol resultType, TypeWithState leftType, TypeWithState rightType) 5237MethodSymbol? method, 5262var reinferredMethod = (MethodSymbol)AsMemberOfType(asMemberOfType, method); 6452MethodSymbol? method = node.Method; 6462method = (MethodSymbol)AsMemberOfType(receiverType.Type, method); 6500static ImmutableArray<ParameterSymbol> getParameters(ImmutableArray<ParameterSymbol> parameters, bool isNewExtension, MethodSymbol method) 6515MethodSymbol method, int argumentCount) 6539private static RefKind GetExtensionReceiverRefKind(MethodSymbol method) 6571private void LearnFromEqualsMethod(MethodSymbol method, BoundCall node, TypeWithState receiverType, ImmutableArray<VisitResult> results) 6609static bool anyOverriddenMethodHasExplicitImplementation(MethodSymbol method) 6611for (var overriddenMethod = method; overriddenMethod is object; overriddenMethod = overriddenMethod.OverriddenMethod) 6622static bool isWellKnownEqualityMethodOrImplementation(CSharpCompilation compilation, MethodSymbol method, TypeSymbol? receiverType, WellKnownMember wellKnownMember) 6624var wellKnownMethod = (MethodSymbol?)compilation.GetWellKnownTypeMember(wellKnownMember); 6633var constructedMethod = wellKnownMethod.AsMember(constructedType); 6658for (var overriddenMethod = method; overriddenMethod is object; overriddenMethod = overriddenMethod.OverriddenMethod) 6736private bool IsCompareExchangeMethod(MethodSymbol? method) 6808private void CheckCallReceiver(BoundExpression? receiverOpt, TypeWithState receiverType, MethodSymbol method) 6841private TypeWithState GetReturnTypeWithState(MethodSymbol method) 6984protected override void VisitArguments(ImmutableArray<BoundExpression> arguments, ImmutableArray<RefKind> refKindsOpt, MethodSymbol method, ImmutableArray<int> argsToParamsOpt, bool expanded) 6990private (MethodSymbol? method, ImmutableArray<VisitResult> results, bool returnNotNull) VisitArguments( 6994MethodSymbol? method, 7117if (member is MethodSymbol reinferredMethod) 7137var method = member as MethodSymbol; 7385private void ApplyMemberPostConditions(BoundExpression? receiverOpt, MethodSymbol? method) 7409private int GetReceiverSlotForMemberPostConditions(MethodSymbol? method) 7421MethodSymbol? current = method; 7422while (current.ContainingSymbol is MethodSymbol container) 7439private void ApplyMemberPostConditions(int receiverSlot, MethodSymbol method) 8225internal override TypeWithAnnotations GetMethodGroupResultType(BoundMethodGroup group, MethodSymbol method) 8231method = (MethodSymbol)AsMemberOfType(receiverType.Type, method); 8315private void CheckMethodConstraints(SyntaxNode syntax, MethodSymbol method) 8525if (((MethodSymbol)symbol).MethodKind == MethodKind.LocalFunction) 8598if (result is MethodSymbol resultMethod && resultMethod.IsGenericMethod) 8600result = resultMethod.Construct(((MethodSymbol)symbol).TypeArgumentsWithAnnotations); 8979private void ReportNullabilityMismatchWithTargetDelegate(Location location, TypeSymbol targetType, MethodSymbol targetInvokeMethod, MethodSymbol sourceInvokeMethod, bool invokedAsExtensionMethod) 8997void reportBadDelegateReturn(BindingDiagnosticBag bag, MethodSymbol targetInvokeMethod, MethodSymbol sourceInvokeMethod, bool topLevel, (TypeSymbol targetType, Location location) arg) 9004void reportBadDelegateParameter(BindingDiagnosticBag bag, MethodSymbol sourceInvokeMethod, MethodSymbol targetInvokeMethod, ParameterSymbol parameter, bool topLevel, (TypeSymbol targetType, Location location) arg) 9015MethodSymbol? targetInvokeMethod = delegateType.DelegateInvokeMethod; 9068void reportBadDelegateReturn(BindingDiagnosticBag bag, MethodSymbol targetInvokeMethod, MethodSymbol sourceInvokeMethod, bool topLevel, Location location) 9075void reportBadDelegateParameter(BindingDiagnosticBag bag, MethodSymbol sourceInvokeMethod, MethodSymbol targetInvokeMethod, ParameterSymbol parameterSymbol, bool topLevel, Location location) 9189var method = conversion.Method; 9206static (MethodSymbol invokeSignature, ImmutableArray<ParameterSymbol>) getDelegateOrFunctionPointerInfo(TypeSymbol targetType) 9721var method = conversion.Method; 10021var method = node.MethodOpt; 10151private MethodSymbol CheckMethodGroupReceiverNullability(BoundMethodGroup group, ImmutableArray<ParameterSymbol> parameters, MethodSymbol method, bool invokedAsExtensionMethod) 10161method = (MethodSymbol)AsMemberOfType(receiverType.Type, method); 10225var delegateInvokeMethod = delegateTypeOpt?.DelegateInvokeMethod; 10241private static void UseDelegateInvokeParameterAndReturnTypes(BoundLambda lambda, MethodSymbol? delegateInvokeMethod, out bool useDelegateInvokeParameterTypes, out bool useDelegateInvokeReturnType) 10529var deconstructMethod = invocation?.Method; 10545deconstructMethod = (MethodSymbol)AsMemberOfType(rightResult.Type, deconstructMethod); 10807MethodSymbol? incrementOperator = (node.OperatorKind.IsUserDefined() && node.MethodOpt?.ParameterCount == 1) ? node.MethodOpt : null; 10916var reinferredMethod = (MethodSymbol)AsMemberOfType(leftTypeWithState.Type, method); 11245var getMethod = ((PropertySymbol)member.OriginalDefinition).GetMethod; 11266var getValue = (MethodSymbol)compilation.GetSpecialTypeMember(SpecialMember.System_Nullable_T_get_Value); 11333MethodSymbol? reinferredGetEnumeratorMethod = null; 11446reinferredGetEnumeratorMethod = (MethodSymbol)AsMemberOfType(getEnumeratorType, enumeratorInfoOpt.GetEnumeratorInfo.Method); 11459var currentPropertyGetter = (MethodSymbol)AsMemberOfType(enumeratorReturnType.Type, enumeratorInfoOpt.CurrentPropertyGetter); 11468var moveNextAsyncMethod = (MethodSymbol)AsMemberOfType(reinferredGetEnumeratorMethod.ReturnType, enumeratorInfoOpt.MoveNextInfo.Method); 11484var disposeAsyncMethod = (MethodSymbol)AsMemberOfType(reinferredGetEnumeratorMethod.ReturnType, originalDisposeMethod); 11690node.MethodOpt is MethodSymbol method && 11699method = (MethodSymbol)AsMemberOfType(operandType.Type!.StrippedType(), method); 11795MethodSymbol? logicalOperator = null; 11796MethodSymbol? trueFalseOperator = null; 11879var getResult = awaitableInfo.GetResult; 11880var reinferredGetResult = _visitResult.RValueType.Type is NamedTypeSymbol taskAwaiterType 12432var method = (MethodSymbol)CurrentSymbol; 13084var variables = (symbol.ContainingSymbol is MethodSymbol containingMethod ? _variables.GetVariablesForMethodScope(containingMethod) : null) ??
FlowAnalysis\NullableWalker.Variables.cs (4)
214internal Variables CreateNestedMethodScope(MethodSymbol method) 217Debug.Assert(!(method.ContainingSymbol is MethodSymbol containingMethod) || 359if (symbol.ContainingSymbol is MethodSymbol method && 397internal Variables? GetVariablesForMethodScope(MethodSymbol method)
FlowAnalysis\NullableWalker_Patterns.cs (1)
447var method = e.DeconstructMethod;
FlowAnalysis\ReadWriteWalker.cs (3)
31out IEnumerable<MethodSymbol> usedLocalFunctions) 41usedLocalFunctions = Enumerable.Empty<MethodSymbol>(); 83if (current is MethodSymbol m)
Generated\BoundNodes.xml.Generated.cs (233)
1183public BoundUnaryOperator(SyntaxNode syntax, UnaryOperatorKind operatorKind, BoundExpression operand, ConstantValue? constantValueOpt, MethodSymbol? methodOpt, TypeSymbol? constrainedToTypeOpt, LookupResultKind resultKind, ImmutableArray<MethodSymbol> originalUserDefinedOperatorsOpt, TypeSymbol type, bool hasErrors = false) 1203public MethodSymbol? MethodOpt { get; } 1206public ImmutableArray<MethodSymbol> OriginalUserDefinedOperatorsOpt { get; } 1211public BoundUnaryOperator Update(UnaryOperatorKind operatorKind, BoundExpression operand, ConstantValue? constantValueOpt, MethodSymbol? methodOpt, TypeSymbol? constrainedToTypeOpt, LookupResultKind resultKind, ImmutableArray<MethodSymbol> originalUserDefinedOperatorsOpt, TypeSymbol type) 1225public BoundIncrementOperator(SyntaxNode syntax, UnaryOperatorKind operatorKind, BoundExpression operand, MethodSymbol? methodOpt, TypeSymbol? constrainedToTypeOpt, BoundValuePlaceholder? operandPlaceholder, BoundExpression? operandConversion, BoundValuePlaceholder? resultPlaceholder, BoundExpression? resultConversion, LookupResultKind resultKind, ImmutableArray<MethodSymbol> originalUserDefinedOperatorsOpt, TypeSymbol type, bool hasErrors = false) 1247public MethodSymbol? MethodOpt { get; } 1254public ImmutableArray<MethodSymbol> OriginalUserDefinedOperatorsOpt { get; } 1259public BoundIncrementOperator Update(UnaryOperatorKind operatorKind, BoundExpression operand, MethodSymbol? methodOpt, TypeSymbol? constrainedToTypeOpt, BoundValuePlaceholder? operandPlaceholder, BoundExpression? operandConversion, BoundValuePlaceholder? resultPlaceholder, BoundExpression? resultConversion, LookupResultKind resultKind, ImmutableArray<MethodSymbol> originalUserDefinedOperatorsOpt, TypeSymbol type) 1334public BoundFunctionPointerLoad(SyntaxNode syntax, MethodSymbol targetMethod, TypeSymbol? constrainedToTypeOpt, TypeSymbol type, bool hasErrors) 1345public BoundFunctionPointerLoad(SyntaxNode syntax, MethodSymbol targetMethod, TypeSymbol? constrainedToTypeOpt, TypeSymbol type) 1356public MethodSymbol TargetMethod { get; } 1363public BoundFunctionPointerLoad Update(MethodSymbol targetMethod, TypeSymbol? constrainedToTypeOpt, TypeSymbol type) 1483public BoundRefTypeOperator(SyntaxNode syntax, BoundExpression operand, MethodSymbol? getTypeFromHandle, TypeSymbol type, bool hasErrors = false) 1496public MethodSymbol? GetTypeFromHandle { get; } 1501public BoundRefTypeOperator Update(BoundExpression operand, MethodSymbol? getTypeFromHandle, TypeSymbol type) 1577public BoundFromEndIndexExpression(SyntaxNode syntax, BoundExpression operand, MethodSymbol? methodOpt, TypeSymbol type, bool hasErrors = false) 1590public MethodSymbol? MethodOpt { get; } 1595public BoundFromEndIndexExpression Update(BoundExpression operand, MethodSymbol? methodOpt, TypeSymbol type) 1609public BoundRangeExpression(SyntaxNode syntax, BoundExpression? leftOperandOpt, BoundExpression? rightOperandOpt, MethodSymbol? methodOpt, TypeSymbol type, bool hasErrors = false) 1623public MethodSymbol? MethodOpt { get; } 1628public BoundRangeExpression Update(BoundExpression? leftOperandOpt, BoundExpression? rightOperandOpt, MethodSymbol? methodOpt, TypeSymbol type) 1733public BoundUserDefinedConditionalLogicalOperator(SyntaxNode syntax, BinaryOperatorKind operatorKind, MethodSymbol logicalOperator, MethodSymbol trueOperator, MethodSymbol falseOperator, BoundValuePlaceholder? trueFalseOperandPlaceholder, BoundExpression? trueFalseOperandConversion, TypeSymbol? constrainedToTypeOpt, LookupResultKind resultKind, ImmutableArray<MethodSymbol> originalUserDefinedOperatorsOpt, BoundExpression left, BoundExpression right, TypeSymbol type, bool hasErrors = false) 1756public MethodSymbol LogicalOperator { get; } 1757public MethodSymbol TrueOperator { get; } 1758public MethodSymbol FalseOperator { get; } 1763public ImmutableArray<MethodSymbol> OriginalUserDefinedOperatorsOpt { get; } 1768public BoundUserDefinedConditionalLogicalOperator Update(BinaryOperatorKind operatorKind, MethodSymbol logicalOperator, MethodSymbol trueOperator, MethodSymbol falseOperator, BoundValuePlaceholder? trueFalseOperandPlaceholder, BoundExpression? trueFalseOperandConversion, TypeSymbol? constrainedToTypeOpt, LookupResultKind resultKind, ImmutableArray<MethodSymbol> originalUserDefinedOperatorsOpt, BoundExpression left, BoundExpression right, TypeSymbol type) 1782public BoundCompoundAssignmentOperator(SyntaxNode syntax, BinaryOperatorSignature @operator, BoundExpression left, BoundExpression right, BoundValuePlaceholder? leftPlaceholder, BoundExpression? leftConversion, BoundValuePlaceholder? finalPlaceholder, BoundExpression? finalConversion, LookupResultKind resultKind, ImmutableArray<MethodSymbol> originalUserDefinedOperatorsOpt, TypeSymbol type, bool hasErrors = false) 1810public ImmutableArray<MethodSymbol> OriginalUserDefinedOperatorsOpt { get; } 1815public BoundCompoundAssignmentOperator Update(BinaryOperatorSignature @operator, BoundExpression left, BoundExpression right, BoundValuePlaceholder? leftPlaceholder, BoundExpression? leftConversion, BoundValuePlaceholder? finalPlaceholder, BoundExpression? finalConversion, LookupResultKind resultKind, ImmutableArray<MethodSymbol> originalUserDefinedOperatorsOpt, TypeSymbol type) 2145public BoundAwaitableInfo(SyntaxNode syntax, BoundAwaitableValuePlaceholder? awaitableInstancePlaceholder, bool isDynamic, BoundExpression? getAwaiter, PropertySymbol? isCompleted, MethodSymbol? getResult, bool hasErrors = false) 2159public MethodSymbol? GetResult { get; } 2164public BoundAwaitableInfo Update(BoundAwaitableValuePlaceholder? awaitableInstancePlaceholder, bool isDynamic, BoundExpression? getAwaiter, PropertySymbol? isCompleted, MethodSymbol? getResult) 2213protected BoundTypeOf(BoundKind kind, SyntaxNode syntax, MethodSymbol? getTypeFromHandle, TypeSymbol type, bool hasErrors) 2222protected BoundTypeOf(BoundKind kind, SyntaxNode syntax, MethodSymbol? getTypeFromHandle, TypeSymbol type) 2232public MethodSymbol? GetTypeFromHandle { get; } 2237public BoundTypeOfOperator(SyntaxNode syntax, BoundTypeExpression sourceType, MethodSymbol? getTypeFromHandle, TypeSymbol type, bool hasErrors = false) 2252public BoundTypeOfOperator Update(BoundTypeExpression sourceType, MethodSymbol? getTypeFromHandle, TypeSymbol type) 2298public BoundMethodDefIndex(SyntaxNode syntax, MethodSymbol method, TypeSymbol type, bool hasErrors) 2308public BoundMethodDefIndex(SyntaxNode syntax, MethodSymbol method, TypeSymbol type) 2319public MethodSymbol Method { get; } 2324public BoundMethodDefIndex Update(MethodSymbol method, TypeSymbol type) 2712public BoundMethodInfo(SyntaxNode syntax, MethodSymbol method, MethodSymbol? getMethodFromHandle, TypeSymbol type, bool hasErrors) 2723public BoundMethodInfo(SyntaxNode syntax, MethodSymbol method, MethodSymbol? getMethodFromHandle, TypeSymbol type) 2735public MethodSymbol Method { get; } 2736public MethodSymbol? GetMethodFromHandle { get; } 2741public BoundMethodInfo Update(MethodSymbol method, MethodSymbol? getMethodFromHandle, TypeSymbol type) 2755public BoundFieldInfo(SyntaxNode syntax, FieldSymbol field, MethodSymbol? getFieldFromHandle, TypeSymbol type, bool hasErrors) 2766public BoundFieldInfo(SyntaxNode syntax, FieldSymbol field, MethodSymbol? getFieldFromHandle, TypeSymbol type) 2779public MethodSymbol? GetFieldFromHandle { get; } 2784public BoundFieldInfo Update(FieldSymbol field, MethodSymbol? getFieldFromHandle, TypeSymbol type) 2998public BoundReadOnlySpanFromArray(SyntaxNode syntax, BoundExpression operand, MethodSymbol conversionMethod, TypeSymbol type, bool hasErrors = false) 3012public MethodSymbol ConversionMethod { get; } 3017public BoundReadOnlySpanFromArray Update(BoundExpression operand, MethodSymbol conversionMethod, TypeSymbol type) 3097public BoundFixedLocalCollectionInitializer(SyntaxNode syntax, TypeSymbol elementPointerType, BoundValuePlaceholder? elementPointerPlaceholder, BoundExpression? elementPointerConversion, BoundExpression expression, MethodSymbol? getPinnableOpt, TypeSymbol type, bool hasErrors = false) 3117public MethodSymbol? GetPinnableOpt { get; } 3122public BoundFixedLocalCollectionInitializer Update(TypeSymbol elementPointerType, BoundValuePlaceholder? elementPointerPlaceholder, BoundExpression? elementPointerConversion, BoundExpression expression, MethodSymbol? getPinnableOpt, TypeSymbol type) 3307public BoundBlock(SyntaxNode syntax, ImmutableArray<LocalSymbol> locals, ImmutableArray<MethodSymbol> localFunctions, bool hasUnsafeModifier, BoundBlockInstrumentation? instrumentation, ImmutableArray<BoundStatement> statements, bool hasErrors = false) 3322public ImmutableArray<MethodSymbol> LocalFunctions { get; } 3329public BoundBlock Update(ImmutableArray<LocalSymbol> locals, ImmutableArray<MethodSymbol> localFunctions, bool hasUnsafeModifier, BoundBlockInstrumentation? instrumentation, ImmutableArray<BoundStatement> statements) 3509public BoundLocalFunctionStatement(SyntaxNode syntax, MethodSymbol symbol, BoundBlock? blockBody, BoundBlock? expressionBody, bool hasErrors = false) 3520public MethodSymbol Symbol { get; } 3527public BoundLocalFunctionStatement Update(MethodSymbol symbol, BoundBlock? blockBody, BoundBlock? expressionBody) 3773public BoundSwitchStatement(SyntaxNode syntax, BoundExpression expression, ImmutableArray<LocalSymbol> innerLocals, ImmutableArray<MethodSymbol> innerLocalFunctions, ImmutableArray<BoundSwitchSection> switchSections, BoundDecisionDag reachabilityDecisionDag, BoundSwitchLabel? defaultLabel, LabelSymbol breakLabel, bool hasErrors = false) 3795public ImmutableArray<MethodSymbol> InnerLocalFunctions { get; } 3804public BoundSwitchStatement Update(BoundExpression expression, ImmutableArray<LocalSymbol> innerLocals, ImmutableArray<MethodSymbol> innerLocalFunctions, ImmutableArray<BoundSwitchSection> switchSections, BoundDecisionDag reachabilityDecisionDag, BoundSwitchLabel? defaultLabel, LabelSymbol breakLabel) 5387public BoundDagDeconstructEvaluation(SyntaxNode syntax, MethodSymbol deconstructMethod, BoundDagTemp input, bool hasErrors = false) 5397public MethodSymbol DeconstructMethod { get; } 5402public BoundDagDeconstructEvaluation Update(MethodSymbol deconstructMethod, BoundDagTemp input) 5896public BoundDynamicInvocation(SyntaxNode syntax, ImmutableArray<string?> argumentNamesOpt, ImmutableArray<RefKind> argumentRefKindsOpt, ImmutableArray<MethodSymbol> applicableMethods, BoundExpression expression, ImmutableArray<BoundExpression> arguments, TypeSymbol type, bool hasErrors = false) 5913public ImmutableArray<MethodSymbol> ApplicableMethods { get; } 5918public BoundDynamicInvocation Update(ImmutableArray<string?> argumentNamesOpt, ImmutableArray<RefKind> argumentRefKindsOpt, ImmutableArray<MethodSymbol> applicableMethods, BoundExpression expression, ImmutableArray<BoundExpression> arguments, TypeSymbol type) 5965public BoundLoweredConditionalAccess(SyntaxNode syntax, BoundExpression receiver, MethodSymbol? hasValueMethodOpt, BoundExpression whenNotNull, BoundExpression? whenNullOpt, int id, bool forceCopyOfNullableValueType, TypeSymbol type, bool hasErrors = false) 5983public MethodSymbol? HasValueMethodOpt { get; } 5992public BoundLoweredConditionalAccess Update(BoundExpression receiver, MethodSymbol? hasValueMethodOpt, BoundExpression whenNotNull, BoundExpression? whenNullOpt, int id, bool forceCopyOfNullableValueType, TypeSymbol type) 6077public BoundMethodGroup(SyntaxNode syntax, ImmutableArray<TypeWithAnnotations> typeArgumentsOpt, string name, ImmutableArray<MethodSymbol> methods, Symbol? lookupSymbolOpt, DiagnosticInfo? lookupError, BoundMethodGroupFlags? flags, FunctionTypeSymbol? functionType, BoundExpression? receiverOpt, LookupResultKind resultKind, bool hasErrors = false) 6095public ImmutableArray<MethodSymbol> Methods { get; } 6104public BoundMethodGroup Update(ImmutableArray<TypeWithAnnotations> typeArgumentsOpt, string name, ImmutableArray<MethodSymbol> methods, Symbol? lookupSymbolOpt, DiagnosticInfo? lookupError, BoundMethodGroupFlags? flags, FunctionTypeSymbol? functionType, BoundExpression? receiverOpt, LookupResultKind resultKind) 6146public BoundCall(SyntaxNode syntax, BoundExpression? receiverOpt, ThreeState initialBindingReceiverIsSubjectToCloning, MethodSymbol method, ImmutableArray<BoundExpression> arguments, ImmutableArray<string?> argumentNamesOpt, ImmutableArray<RefKind> argumentRefKindsOpt, bool isDelegateCall, bool expanded, bool invokedAsExtensionMethod, ImmutableArray<int> argsToParamsOpt, BitVector defaultArguments, LookupResultKind resultKind, ImmutableArray<MethodSymbol> originalMethodsOpt, TypeSymbol type, bool hasErrors = false) 6172public MethodSymbol Method { get; } 6182public ImmutableArray<MethodSymbol> OriginalMethodsOpt { get; } 6187public BoundCall Update(BoundExpression? receiverOpt, ThreeState initialBindingReceiverIsSubjectToCloning, MethodSymbol method, ImmutableArray<BoundExpression> arguments, ImmutableArray<string?> argumentNamesOpt, ImmutableArray<RefKind> argumentRefKindsOpt, bool isDelegateCall, bool expanded, bool invokedAsExtensionMethod, ImmutableArray<int> argsToParamsOpt, BitVector defaultArguments, LookupResultKind resultKind, ImmutableArray<MethodSymbol> originalMethodsOpt, TypeSymbol type) 6240public BoundAttribute(SyntaxNode syntax, MethodSymbol? constructor, ImmutableArray<BoundExpression> constructorArguments, ImmutableArray<string?> constructorArgumentNamesOpt, ImmutableArray<int> constructorArgumentsToParamsOpt, bool constructorExpanded, BitVector constructorDefaultArguments, ImmutableArray<BoundAssignmentOperator> namedArguments, LookupResultKind resultKind, TypeSymbol type, bool hasErrors = false) 6259public MethodSymbol? Constructor { get; } 6271public BoundAttribute Update(MethodSymbol? constructor, ImmutableArray<BoundExpression> constructorArguments, ImmutableArray<string?> constructorArgumentNamesOpt, ImmutableArray<int> constructorArgumentsToParamsOpt, bool constructorExpanded, BitVector constructorDefaultArguments, ImmutableArray<BoundAssignmentOperator> namedArguments, LookupResultKind resultKind, TypeSymbol type) 6344public BoundObjectCreationExpression(SyntaxNode syntax, MethodSymbol constructor, ImmutableArray<MethodSymbol> constructorsGroup, ImmutableArray<BoundExpression> arguments, ImmutableArray<string?> argumentNamesOpt, ImmutableArray<RefKind> argumentRefKindsOpt, bool expanded, ImmutableArray<int> argsToParamsOpt, BitVector defaultArguments, ConstantValue? constantValueOpt, BoundObjectInitializerExpressionBase? initializerExpressionOpt, bool wasTargetTyped, TypeSymbol type, bool hasErrors = false) 6366public override MethodSymbol Constructor { get; } 6367public ImmutableArray<MethodSymbol> ConstructorsGroup { get; } 6381public BoundObjectCreationExpression Update(MethodSymbol constructor, ImmutableArray<MethodSymbol> constructorsGroup, ImmutableArray<BoundExpression> arguments, ImmutableArray<string?> argumentNamesOpt, ImmutableArray<RefKind> argumentRefKindsOpt, bool expanded, ImmutableArray<int> argsToParamsOpt, BitVector defaultArguments, ConstantValue? constantValueOpt, BoundObjectInitializerExpressionBase? initializerExpressionOpt, bool wasTargetTyped, TypeSymbol type) 6436public BoundCollectionExpression(SyntaxNode syntax, CollectionExpressionTypeKind collectionTypeKind, BoundObjectOrCollectionValuePlaceholder? placeholder, BoundExpression? collectionCreation, MethodSymbol? collectionBuilderMethod, BoundValuePlaceholder? collectionBuilderInvocationPlaceholder, BoundExpression? collectionBuilderInvocationConversion, bool wasTargetTyped, BoundUnconvertedCollectionExpression unconvertedCollectionExpression, ImmutableArray<BoundNode> elements, TypeSymbol type, bool hasErrors = false) 6458public MethodSymbol? CollectionBuilderMethod { get; } 6467public BoundCollectionExpression Update(CollectionExpressionTypeKind collectionTypeKind, BoundObjectOrCollectionValuePlaceholder? placeholder, BoundExpression? collectionCreation, MethodSymbol? collectionBuilderMethod, BoundValuePlaceholder? collectionBuilderInvocationPlaceholder, BoundExpression? collectionBuilderInvocationConversion, bool wasTargetTyped, BoundUnconvertedCollectionExpression unconvertedCollectionExpression, ImmutableArray<BoundNode> elements, TypeSymbol type) 6624public BoundDynamicObjectCreationExpression(SyntaxNode syntax, string name, ImmutableArray<BoundExpression> arguments, ImmutableArray<string?> argumentNamesOpt, ImmutableArray<RefKind> argumentRefKindsOpt, BoundObjectInitializerExpressionBase? initializerExpressionOpt, ImmutableArray<MethodSymbol> applicableMethods, bool wasTargetTyped, TypeSymbol type, bool hasErrors = false) 6647public ImmutableArray<MethodSymbol> ApplicableMethods { get; } 6653public BoundDynamicObjectCreationExpression Update(string name, ImmutableArray<BoundExpression> arguments, ImmutableArray<string?> argumentNamesOpt, ImmutableArray<RefKind> argumentRefKindsOpt, BoundObjectInitializerExpressionBase? initializerExpressionOpt, ImmutableArray<MethodSymbol> applicableMethods, bool wasTargetTyped, TypeSymbol type) 6868public BoundCollectionElementInitializer(SyntaxNode syntax, MethodSymbol addMethod, ImmutableArray<BoundExpression> arguments, BoundExpression? implicitReceiverOpt, bool expanded, ImmutableArray<int> argsToParamsOpt, BitVector defaultArguments, bool invokedAsExtensionMethod, LookupResultKind resultKind, TypeSymbol type, bool hasErrors = false) 6887public MethodSymbol AddMethod { get; } 6899public BoundCollectionElementInitializer Update(MethodSymbol addMethod, ImmutableArray<BoundExpression> arguments, BoundExpression? implicitReceiverOpt, bool expanded, ImmutableArray<int> argsToParamsOpt, BitVector defaultArguments, bool invokedAsExtensionMethod, LookupResultKind resultKind, TypeSymbol type) 6913public BoundDynamicCollectionElementInitializer(SyntaxNode syntax, ImmutableArray<MethodSymbol> applicableMethods, BoundExpression expression, ImmutableArray<BoundExpression> arguments, TypeSymbol type, bool hasErrors = false) 6926public ImmutableArray<MethodSymbol> ApplicableMethods { get; } 6931public BoundDynamicCollectionElementInitializer Update(ImmutableArray<MethodSymbol> applicableMethods, BoundExpression expression, ImmutableArray<BoundExpression> arguments, TypeSymbol type) 6980public BoundAnonymousObjectCreationExpression(SyntaxNode syntax, MethodSymbol constructor, ImmutableArray<BoundExpression> arguments, ImmutableArray<BoundAnonymousPropertyDeclaration> declarations, TypeSymbol type, bool hasErrors = false) 6995public MethodSymbol Constructor { get; } 7002public BoundAnonymousObjectCreationExpression Update(MethodSymbol constructor, ImmutableArray<BoundExpression> arguments, ImmutableArray<BoundAnonymousPropertyDeclaration> declarations, TypeSymbol type) 7086public BoundDelegateCreationExpression(SyntaxNode syntax, BoundExpression argument, MethodSymbol? methodOpt, bool isExtensionMethod, bool wasTargetTyped, TypeSymbol type, bool hasErrors = false) 7101public MethodSymbol? MethodOpt { get; } 7108public BoundDelegateCreationExpression Update(BoundExpression argument, MethodSymbol? methodOpt, bool isExtensionMethod, bool wasTargetTyped, TypeSymbol type) 7595public BoundLambda(SyntaxNode syntax, UnboundLambda unboundLambda, MethodSymbol symbol, BoundBlock body, ReadOnlyBindingDiagnostic<AssemblySymbol> diagnostics, Binder binder, TypeSymbol? type, bool hasErrors = false) 7612public MethodSymbol Symbol { get; } 7621public BoundLambda Update(UnboundLambda unboundLambda, MethodSymbol symbol, BoundBlock body, ReadOnlyBindingDiagnostic<AssemblySymbol> diagnostics, Binder binder, TypeSymbol? type) 8150public BoundRecursivePattern(SyntaxNode syntax, BoundTypeExpression? declaredType, MethodSymbol? deconstructMethod, ImmutableArray<BoundPositionalSubpattern> deconstruction, ImmutableArray<BoundPropertySubpattern> properties, bool isExplicitNotNullTest, Symbol? variable, BoundExpression? variableAccess, TypeSymbol inputType, TypeSymbol narrowedType, bool hasErrors = false) 8169public MethodSymbol? DeconstructMethod { get; } 8177public BoundRecursivePattern Update(BoundTypeExpression? declaredType, MethodSymbol? deconstructMethod, ImmutableArray<BoundPositionalSubpattern> deconstruction, ImmutableArray<BoundPropertySubpattern> properties, bool isExplicitNotNullTest, Symbol? variable, BoundExpression? variableAccess, TypeSymbol inputType, TypeSymbol narrowedType) 8274public BoundITuplePattern(SyntaxNode syntax, MethodSymbol getLengthMethod, MethodSymbol getItemMethod, ImmutableArray<BoundPositionalSubpattern> subpatterns, TypeSymbol inputType, TypeSymbol narrowedType, bool hasErrors = false) 8293public MethodSymbol GetLengthMethod { get; } 8294public MethodSymbol GetItemMethod { get; } 8300public BoundITuplePattern Update(MethodSymbol getLengthMethod, MethodSymbol getItemMethod, ImmutableArray<BoundPositionalSubpattern> subpatterns, TypeSymbol inputType, TypeSymbol narrowedType) 8830public BoundWithExpression(SyntaxNode syntax, BoundExpression receiver, MethodSymbol? cloneMethod, BoundObjectInitializerExpressionBase initializerExpression, TypeSymbol type, bool hasErrors = false) 8845public MethodSymbol? CloneMethod { get; } 8851public BoundWithExpression Update(BoundExpression receiver, MethodSymbol? cloneMethod, BoundObjectInitializerExpressionBase initializerExpression, TypeSymbol type) 10981MethodSymbol? methodOpt = this.VisitMethodSymbol(node.MethodOpt); 10982ImmutableArray<MethodSymbol> originalUserDefinedOperatorsOpt = this.VisitSymbols<MethodSymbol>(node.OriginalUserDefinedOperatorsOpt); 10990MethodSymbol? methodOpt = this.VisitMethodSymbol(node.MethodOpt); 10991ImmutableArray<MethodSymbol> originalUserDefinedOperatorsOpt = this.VisitSymbols<MethodSymbol>(node.OriginalUserDefinedOperatorsOpt); 11015MethodSymbol targetMethod = this.VisitMethodSymbol(node.TargetMethod); 11042MethodSymbol? getTypeFromHandle = this.VisitMethodSymbol(node.GetTypeFromHandle); 11061MethodSymbol? methodOpt = this.VisitMethodSymbol(node.MethodOpt); 11068MethodSymbol? methodOpt = this.VisitMethodSymbol(node.MethodOpt); 11090MethodSymbol logicalOperator = this.VisitMethodSymbol(node.LogicalOperator); 11091MethodSymbol trueOperator = this.VisitMethodSymbol(node.TrueOperator); 11092MethodSymbol falseOperator = this.VisitMethodSymbol(node.FalseOperator); 11093ImmutableArray<MethodSymbol> originalUserDefinedOperatorsOpt = this.VisitSymbols<MethodSymbol>(node.OriginalUserDefinedOperatorsOpt); 11104ImmutableArray<MethodSymbol> originalUserDefinedOperatorsOpt = this.VisitSymbols<MethodSymbol>(node.OriginalUserDefinedOperatorsOpt); 11183MethodSymbol? getResult = this.VisitMethodSymbol(node.GetResult); 11197MethodSymbol? getTypeFromHandle = this.VisitMethodSymbol(node.GetTypeFromHandle); 11210MethodSymbol method = this.VisitMethodSymbol(node.Method); 11270MethodSymbol method = this.VisitMethodSymbol(node.Method); 11271MethodSymbol? getMethodFromHandle = this.VisitMethodSymbol(node.GetMethodFromHandle); 11278MethodSymbol? getFieldFromHandle = this.VisitMethodSymbol(node.GetFieldFromHandle); 11323MethodSymbol conversionMethod = this.VisitMethodSymbol(node.ConversionMethod); 11341MethodSymbol? getPinnableOpt = this.VisitMethodSymbol(node.GetPinnableOpt); 11365ImmutableArray<MethodSymbol> localFunctions = this.VisitDeclaredLocalFunctions(node.LocalFunctions); 11403MethodSymbol symbol = this.VisitMethodSymbol(node.Symbol); 11443ImmutableArray<MethodSymbol> innerLocalFunctions = this.VisitDeclaredLocalFunctions(node.InnerLocalFunctions); 11737MethodSymbol deconstructMethod = this.VisitMethodSymbol(node.DeconstructMethod); 11835ImmutableArray<MethodSymbol> applicableMethods = this.VisitSymbols<MethodSymbol>(node.ApplicableMethods); 11850MethodSymbol? hasValueMethodOpt = this.VisitMethodSymbol(node.HasValueMethodOpt); 11871ImmutableArray<MethodSymbol> methods = this.VisitSymbols<MethodSymbol>(node.Methods); 11887MethodSymbol method = this.VisitMethodSymbol(node.Method); 11888ImmutableArray<MethodSymbol> originalMethodsOpt = this.VisitSymbols<MethodSymbol>(node.OriginalMethodsOpt); 11904MethodSymbol? constructor = this.VisitMethodSymbol(node.Constructor); 11918MethodSymbol constructor = this.VisitMethodSymbol(node.Constructor); 11919ImmutableArray<MethodSymbol> constructorsGroup = this.VisitSymbols<MethodSymbol>(node.ConstructorsGroup); 11933MethodSymbol? collectionBuilderMethod = this.VisitMethodSymbol(node.CollectionBuilderMethod); 11973ImmutableArray<MethodSymbol> applicableMethods = this.VisitSymbols<MethodSymbol>(node.ApplicableMethods); 12015MethodSymbol addMethod = this.VisitMethodSymbol(node.AddMethod); 12023ImmutableArray<MethodSymbol> applicableMethods = this.VisitSymbols<MethodSymbol>(node.ApplicableMethods); 12036MethodSymbol constructor = this.VisitMethodSymbol(node.Constructor); 12056MethodSymbol? methodOpt = this.VisitMethodSymbol(node.MethodOpt); 12154MethodSymbol symbol = this.VisitMethodSymbol(node.Symbol); 12251MethodSymbol? deconstructMethod = this.VisitMethodSymbol(node.DeconstructMethod); 12286MethodSymbol getLengthMethod = this.VisitMethodSymbol(node.GetLengthMethod); 12287MethodSymbol getItemMethod = this.VisitMethodSymbol(node.GetItemMethod); 12394MethodSymbol? cloneMethod = this.VisitMethodSymbol(node.CloneMethod); 12696MethodSymbol? methodOpt = GetUpdatedSymbol(node, node.MethodOpt); 12698ImmutableArray<MethodSymbol> originalUserDefinedOperatorsOpt = GetUpdatedArray(node, node.OriginalUserDefinedOperatorsOpt); 12716MethodSymbol? methodOpt = GetUpdatedSymbol(node, node.MethodOpt); 12718ImmutableArray<MethodSymbol> originalUserDefinedOperatorsOpt = GetUpdatedArray(node, node.OriginalUserDefinedOperatorsOpt); 12774MethodSymbol targetMethod = GetUpdatedSymbol(node, node.TargetMethod); 12845MethodSymbol? getTypeFromHandle = GetUpdatedSymbol(node, node.GetTypeFromHandle); 12897MethodSymbol? methodOpt = GetUpdatedSymbol(node, node.MethodOpt); 12915MethodSymbol? methodOpt = GetUpdatedSymbol(node, node.MethodOpt); 12952ImmutableArray<MethodSymbol> originalUserDefinedOperatorsOpt = GetUpdatedArray(node, node.OriginalUserDefinedOperatorsOpt); 13141MethodSymbol? getResult = GetUpdatedSymbol(node, node.GetResult); 13167MethodSymbol? getTypeFromHandle = GetUpdatedSymbol(node, node.GetTypeFromHandle); 13185MethodSymbol method = GetUpdatedSymbol(node, node.Method); 13334MethodSymbol method = GetUpdatedSymbol(node, node.Method); 13335MethodSymbol? getMethodFromHandle = GetUpdatedSymbol(node, node.GetMethodFromHandle); 13353MethodSymbol? getFieldFromHandle = GetUpdatedSymbol(node, node.GetFieldFromHandle); 13471MethodSymbol conversionMethod = GetUpdatedSymbol(node, node.ConversionMethod); 13519MethodSymbol? getPinnableOpt = GetUpdatedSymbol(node, node.GetPinnableOpt); 13540ImmutableArray<MethodSymbol> localFunctions = GetUpdatedArray(node, node.LocalFunctions); 13571MethodSymbol symbol = GetUpdatedSymbol(node, node.Symbol); 13580ImmutableArray<MethodSymbol> innerLocalFunctions = GetUpdatedArray(node, node.InnerLocalFunctions); 13861MethodSymbol deconstructMethod = GetUpdatedSymbol(node, node.DeconstructMethod); 13991ImmutableArray<MethodSymbol> applicableMethods = GetUpdatedArray(node, node.ApplicableMethods); 14028MethodSymbol? hasValueMethodOpt = GetUpdatedSymbol(node, node.HasValueMethodOpt); 14078ImmutableArray<MethodSymbol> methods = GetUpdatedArray(node, node.Methods); 14116MethodSymbol method = GetUpdatedSymbol(node, node.Method); 14117ImmutableArray<MethodSymbol> originalMethodsOpt = GetUpdatedArray(node, node.OriginalMethodsOpt); 14155MethodSymbol? constructor = GetUpdatedSymbol(node, node.Constructor); 14191MethodSymbol constructor = GetUpdatedSymbol(node, node.Constructor); 14192ImmutableArray<MethodSymbol> constructorsGroup = GetUpdatedArray(node, node.ConstructorsGroup); 14228MethodSymbol? collectionBuilderMethod = GetUpdatedSymbol(node, node.CollectionBuilderMethod); 14298ImmutableArray<MethodSymbol> applicableMethods = GetUpdatedArray(node, node.ApplicableMethods); 14406MethodSymbol addMethod = GetUpdatedSymbol(node, node.AddMethod); 14425ImmutableArray<MethodSymbol> applicableMethods = GetUpdatedArray(node, node.ApplicableMethods); 14456MethodSymbol constructor = GetUpdatedSymbol(node, node.Constructor); 14509MethodSymbol? methodOpt = GetUpdatedSymbol(node, node.MethodOpt); 14728MethodSymbol symbol = GetUpdatedSymbol(node, node.Symbol); 14923MethodSymbol? deconstructMethod = GetUpdatedSymbol(node, node.DeconstructMethod); 14961MethodSymbol getLengthMethod = GetUpdatedSymbol(node, node.GetLengthMethod); 14962MethodSymbol getItemMethod = GetUpdatedSymbol(node, node.GetItemMethod); 15126MethodSymbol? cloneMethod = GetUpdatedSymbol(node, node.CloneMethod);
Lowering\AsyncRewriter\AsyncExceptionHandlerRewriter.cs (7)
33MethodSymbol containingMethod, 110MethodSymbol containingSymbol, 428var exceptionDispatchInfoCapture = _F.WellKnownMethod(WellKnownMember.System_Runtime_ExceptionServices_ExceptionDispatchInfo__Capture, isOptional: true); 429var exceptionDispatchInfoThrow = _F.WellKnownMethod(WellKnownMember.System_Runtime_ExceptionServices_ExceptionDispatchInfo__Throw, isOptional: true); 707var oldContainingSymbol = _F.CurrentFunction; 723var oldContainingSymbol = _F.CurrentFunction; 984MethodSymbol containingMethod,
Lowering\AsyncRewriter\AsyncIteratorInfo.cs (4)
29internal MethodSymbol SetResultMethod { get; } 32internal MethodSymbol SetExceptionMethod { get; } 35MethodSymbol setResultMethod, MethodSymbol setExceptionMethod)
Lowering\AsyncRewriter\AsyncIteratorMethodToStateMachineRewriter.cs (1)
48MethodSymbol method,
Lowering\AsyncRewriter\AsyncMethodBuilderMemberCollection.cs (33)
44internal readonly MethodSymbol CreateBuilder; 49internal readonly MethodSymbol SetException; 54internal readonly MethodSymbol SetResult; 59internal readonly MethodSymbol AwaitOnCompleted; 64internal readonly MethodSymbol AwaitUnsafeOnCompleted; 69internal readonly MethodSymbol Start; 74internal readonly MethodSymbol SetStateMachine; 89MethodSymbol createBuilder, 90MethodSymbol setException, 91MethodSymbol setResult, 92MethodSymbol awaitOnCompleted, 93MethodSymbol awaitUnsafeOnCompleted, 94MethodSymbol start, 95MethodSymbol setStateMachine, 112internal static bool TryCreate(SyntheticBoundNodeFactory F, MethodSymbol method, TypeMap typeMap, out AsyncMethodBuilderMemberCollection collection) 119TryGetBuilderMember<MethodSymbol>( 124out MethodSymbol createBuilderMethod); 152MethodSymbol createBuilderMethod; 154TryGetBuilderMember<MethodSymbol>( 186MethodSymbol createBuilderMethod = null; 215TryGetBuilderMember<MethodSymbol>( 267MethodSymbol createBuilderMethod = null; 298TryGetBuilderMember<MethodSymbol>( 376MethodSymbol createBuilderMethod, 386MethodSymbol setExceptionMethod; 387MethodSymbol setResultMethod; 388MethodSymbol awaitOnCompletedMethod; 389MethodSymbol awaitUnsafeOnCompletedMethod; 390MethodSymbol startMethod; 391MethodSymbol setStateMachineMethod; 469private static MethodSymbol GetCustomCreateMethod( 483var method = (MethodSymbol)member;
Lowering\AsyncRewriter\AsyncMethodToStateMachineRewriter.cs (8)
27protected readonly MethodSymbol _method; 72MethodSymbol method, 141internal void GenerateMoveNext(BoundStatement body, MethodSymbol moveNextMethod) 365MethodSymbol getResult = VisitMethodSymbol(node.AwaitableInfo.GetResult); 366MethodSymbol isCompletedMethod = ((object)node.AwaitableInfo.IsCompleted != null) ? VisitMethodSymbol(node.AwaitableInfo.IsCompleted.GetMethod) : null; 421MethodSymbol methodSymbol = null, 448private BoundExpression GenerateGetIsCompleted(LocalSymbol awaiterTemp, MethodSymbol getIsCompletedMethod) 631var onCompleted = (useUnsafeOnCompleted ?
Lowering\AsyncRewriter\AsyncRewriter.AsyncIteratorRewriter.cs (33)
36MethodSymbol method, 210protected override BoundStatement InitializeParameterField(MethodSymbol getEnumeratorMethod, ParameterSymbol parameter, BoundExpression resultParameter, BoundExpression parameterProxy) 302MethodSymbol IAsyncEnumerableOfElementType_MoveNextAsync = F.WellKnownMethod(WellKnownMember.System_Collections_Generic_IAsyncEnumerator_T__MoveNextAsync) 307MethodSymbol promise_GetStatus = F.WellKnownMethod(WellKnownMember.System_Threading_Tasks_Sources_ManualResetValueTaskSourceCore_T__GetStatus) 310MethodSymbol promise_GetResult = F.WellKnownMethod(WellKnownMember.System_Threading_Tasks_Sources_ManualResetValueTaskSourceCore_T__GetResult) 315MethodSymbol valueTaskT_ctorValue = F.WellKnownMethod(WellKnownMember.System_Threading_Tasks_ValueTask_T__ctorValue) 318MethodSymbol valueTaskT_ctor = F.WellKnownMethod(WellKnownMember.System_Threading_Tasks_ValueTask_T__ctorSourceAndToken) 328out MethodSymbol promise_get_Version); 369out BoundExpressionStatement startCall, out MethodSymbol promise_get_Version) 379var resetMethod = (MethodSymbol)F.WellKnownMethod(WellKnownMember.System_Threading_Tasks_Sources_ManualResetValueTaskSourceCore_T__Reset, isOptional: true) 386MethodSymbol startMethod = _asyncMethodBuilderMemberCollection.Start.Construct(this.stateMachineType); 427MethodSymbol IAsyncDisposable_DisposeAsync = F.WellKnownMethod(WellKnownMember.System_IAsyncDisposable__DisposeAsync); 438out MethodSymbol promise_get_Version); 452MethodSymbol valueTask_ctor = 482MethodSymbol IAsyncEnumerableOfElementType_get_Current = 500MethodSymbol IValueTaskSourceOfBool_GetResult = 504MethodSymbol promise_GetResult = 525MethodSymbol IValueTaskSourceOfBool_GetStatus = 529MethodSymbol promise_GetStatus = 551MethodSymbol IValueTaskSourceOfBool_OnCompleted = 555MethodSymbol promise_OnCompleted = 579MethodSymbol IValueTaskSource_GetResult = 582MethodSymbol promise_GetResult = 603MethodSymbol IValueTaskSource_GetStatus = 606MethodSymbol promise_GetStatus = 626MethodSymbol IValueTaskSource_OnCompleted = F.WellKnownMethod(WellKnownMember.System_Threading_Tasks_Sources_IValueTaskSource__OnCompleted); 628MethodSymbol promise_OnCompleted = 655MethodSymbol IAsyncEnumerableOfElementType_GetEnumerator = 684MethodSymbol setResultMethod = F.WellKnownMethod(WellKnownMember.System_Threading_Tasks_Sources_ManualResetValueTaskSourceCore_T__SetResult, isOptional: true); 687setResultMethod = (MethodSymbol)setResultMethod.SymbolAsMember((NamedTypeSymbol)_promiseOfValueOrEndField.Type); 690MethodSymbol setExceptionMethod = F.WellKnownMethod(WellKnownMember.System_Threading_Tasks_Sources_ManualResetValueTaskSourceCore_T__SetException, isOptional: true); 693setExceptionMethod = (MethodSymbol)setExceptionMethod.SymbolAsMember((NamedTypeSymbol)_promiseOfValueOrEndField.Type);
Lowering\AsyncRewriter\AsyncRewriter.cs (5)
25MethodSymbol method, 43MethodSymbol method, 153var IAsyncStateMachine_MoveNext = F.WellKnownMethod(WellKnownMember.System_Runtime_CompilerServices_IAsyncStateMachine_MoveNext); 154var IAsyncStateMachine_SetStateMachine = F.WellKnownMethod(WellKnownMember.System_Runtime_CompilerServices_IAsyncStateMachine_SetStateMachine); 255var startMethod = methodScopeAsyncMethodBuilderMemberCollection.Start.Construct(frameType);
Lowering\AsyncRewriter\AsyncStateMachine.cs (4)
21private readonly MethodSymbol _constructor; 25public AsyncStateMachine(VariableSlotAllocator variableAllocatorOpt, TypeCompilationState compilationState, MethodSymbol asyncMethod, int asyncMethodOrdinal, TypeKind typeKind) 61_constructor = isIterator ? (MethodSymbol)new IteratorConstructor(this) : new AsyncConstructor(this); 69internal override MethodSymbol Constructor
Lowering\BoundTreeToDifferentEnclosingContextRewriter.cs (6)
34protected abstract MethodSymbol CurrentMethod { get; } 133var getResult = VisitMethodSymbol(node.GetResult); 192public override MethodSymbol? VisitMethodSymbol(MethodSymbol? method) 214return (MethodSymbol)member; 223return ((MethodSymbol)method.OriginalDefinition)
Lowering\ClosureConversion\ClosureConversion.Analysis.cs (9)
32public readonly PooledHashSet<MethodSymbol> MethodsConvertedToDelegates; 37public bool CanTakeRefParameters(MethodSymbol function) 47private readonly MethodSymbol _topLevelMethod; 54PooledHashSet<MethodSymbol> methodsConvertedToDelegates, 55MethodSymbol topLevelMethod, 71MethodSymbol method, 77var methodsConvertedToDelegates = PooledHashSet<MethodSymbol>.GetInstance(); 648public static (NestedFunction, Scope) GetVisibleNestedFunction(Scope startingScope, MethodSymbol functionSymbol) 668public static NestedFunction GetNestedFunctionInTree(Scope treeRoot, MethodSymbol functionSymbol)
Lowering\ClosureConversion\ClosureConversion.Analysis.Tree.cs (13)
127public readonly MethodSymbol OriginalMethodSymbol; 160public NestedFunction(MethodSymbol symbol, SyntaxReference blockSyntax) 272/// <see cref="Build(BoundNode, MethodSymbol, HashSet{MethodSymbol}, DiagnosticBag)"/> 324private readonly MethodSymbol _topLevelMethod; 331private readonly HashSet<MethodSymbol> _methodsConvertedToDelegates; 351MethodSymbol topLevelMethod, 352HashSet<MethodSymbol> methodsConvertedToDelegates, 369MethodSymbol topLevelMethod, 370HashSet<MethodSymbol> methodsConvertedToDelegates, 474var method = node.MethodOpt.OriginalDefinition; 569private BoundNode? VisitNestedFunction(MethodSymbol functionSymbol, BoundBlock? body) 625if (symbol is MethodSymbol method &&
Lowering\ClosureConversion\ClosureConversion.cs (26)
63/// a (<see cref="MethodSymbol"/>, <see cref="BoundStatement"/>) pair for each generated method. 67/// (<see cref="MethodSymbol"/>, <see cref="BoundStatement"/>) pairs for additional methods that the lambda rewriter produced. 76private readonly MethodSymbol _topLevelMethod; 77private readonly MethodSymbol _substitutedSourceMethod; 100private MethodSymbol _currentMethod; 165MethodSymbol method, 167MethodSymbol substitutedSourceMethod, 208(localOrParameter as MethodSymbol)?.MethodKind == MethodKind.LocalFunction); 235MethodSymbol method, 237MethodSymbol substitutedSourceMethod, 323protected override MethodSymbol CurrentMethod 378var containingMethod = scope.ContainingFunctionOpt?.OriginalMethodSymbol ?? _topLevelMethod; 414var originalMethod = nestedFunction.OriginalMethodSymbol; 532var containingMethod = isNonGeneric ? null : (_substitutedSourceMethod ?? _topLevelMethod); 681MethodSymbol constructor = frame.Constructor.AsMember(frameType); 863var loweredSymbol = (node.Method.MethodKind is MethodKind.LambdaMethod or MethodKind.LocalFunction) ? 875MethodSymbol localFunc, 877out MethodSymbol method, 1017MethodSymbol originalMethod, 1020ref MethodSymbol synthesizedMethod, 1088out var method, 1350out var method, 1377out MethodSymbol remappedMethod, 1560var oldMethod = _currentMethod; 1607private void AddSynthesizedMethod(MethodSymbol method, BoundStatement body) 1651MethodSymbol referencedMethod = synthesizedMethod;
Lowering\ClosureConversion\ExpressionLambdaRewriter.cs (9)
385private static WellKnownMember GetBinaryOperatorFactory(BinaryOperatorKind opKind, MethodSymbol methodOpt, out bool isChecked, out bool isLifted, out bool requiresLifted) 481static bool useCheckedFactory(bool isChecked, MethodSymbol methodOpt) 487private BoundExpression VisitBinaryOperator(BinaryOperatorKind opKind, MethodSymbol methodOpt, TypeSymbol type, BoundExpression left, BoundExpression right) 567private BoundExpression MakeBinary(MethodSymbol methodOpt, TypeSymbol type, bool isLifted, bool requiresLifted, WellKnownMember opFactory, BoundExpression loweredLeft, BoundExpression loweredRight) 646var method = node.Method; 699var method = node.SymbolOpt; 757private BoundExpression DelegateCreation(BoundExpression receiver, MethodSymbol method, TypeSymbol delegateType, bool requiresInstanceReceiver) 762var createDelegate = _bound.WellKnownMethod(WellKnownMember.System_Reflection_MethodInfo__CreateDelegate, isOptional: true); 1104var getMethod = node.PropertySymbol.GetOwnOrInheritedGetMethod();
Lowering\ClosureConversion\SynthesizedClosureEnvironment.cs (6)
25internal readonly MethodSymbol TopLevelMethod; 32internal readonly MethodSymbol OriginalContainingMethodOpt; 34internal readonly MethodSymbol StaticConstructor; 40internal override MethodSymbol Constructor { get; } 47MethodSymbol topLevelMethod, 48MethodSymbol containingMethod,
Lowering\ClosureConversion\SynthesizedClosureMethod.cs (4)
22internal MethodSymbol TopLevelMethod { get; } 29MethodSymbol topLevelMethod, 31MethodSymbol originalMethod, 153private static DeclarationModifiers MakeDeclarationModifiers(ClosureKind closureKind, MethodSymbol originalMethod)
Lowering\DiagnosticsPass_ExpressionTrees.cs (13)
26private readonly MethodSymbol _containingSymbol; 31public static void IssueDiagnostics(CSharpCompilation compilation, BoundNode node, BindingDiagnosticBag diagnostics, MethodSymbol containingSymbol) 49private DiagnosticsPass(CSharpCompilation compilation, BindingDiagnosticBag diagnostics, MethodSymbol containingSymbol) 221private void CheckReferenceToMethodIfLocalFunction(BoundExpression node, MethodSymbol method) 305MethodSymbol method, 566var method = indexer.GetOwnOrInheritedGetMethod() ?? indexer.GetOwnOrInheritedSetMethod(); 608var lambda = node.Symbol; 751var binary = node.LogicalOperator; 752var unary = node.OperatorKind.Operator() == BinaryOperatorKind.And ? node.FalseOperator : node.TrueOperator; 785if (_inExpressionLambda && node.MethodOpt is MethodSymbol method && (method.IsAbstract || method.IsVirtual) && method.IsStatic) 882if (_inExpressionLambda && node.Conversion.Method is MethodSymbol method && (method.IsAbstract || method.IsVirtual) && method.IsStatic) 915private void CheckMethodGroup(BoundMethodGroup node, MethodSymbol method, bool isExtensionMethod, bool parentIsConversion, TypeSymbol convertedToType) 924if ((node.LookupSymbolOpt as MethodSymbol)?.MethodKind == MethodKind.LocalFunction)
Lowering\DiagnosticsPass_Warnings.cs (4)
235private static bool IsComCallWithRefOmitted(MethodSymbol method, ImmutableArray<BoundExpression> arguments, ImmutableArray<RefKind> argumentRefKindsOpt) 252if (node.Method is MethodSymbol method) 367MethodSymbol op = sym as MethodSymbol;
Lowering\ExtensionMethodBodyRewriter.cs (13)
34public ExtensionMethodBodyRewriter(MethodSymbol sourceMethod, SourceExtensionImplementationMethodSymbol implementationMethod) 54private (RewrittenMethodSymbol, ImmutableDictionary<Symbol, Symbol>) EnterMethod(MethodSymbol symbol, RewrittenMethodSymbol rewritten, ReadOnlySpan<ParameterSymbol> rewrittenParameters) 76private (RewrittenMethodSymbol, ImmutableDictionary<Symbol, Symbol>) EnterMethod(MethodSymbol symbol, RewrittenLambdaOrLocalFunctionSymbol rewritten) 81protected override MethodSymbol CurrentMethod => _rewrittenContainingMethod; 109MethodSymbol symbol = this.VisitMethodSymbol(node.Symbol); 128foreach (var localFunction in node.LocalFunctions) 142protected override ImmutableArray<MethodSymbol> VisitDeclaredLocalFunctions(ImmutableArray<MethodSymbol> localFunctions) 144return localFunctions.SelectAsArray(static (l, map) => (MethodSymbol)map[l], _symbolMap); 148public override MethodSymbol? VisitMethodSymbol(MethodSymbol? symbol) 158return (MethodSymbol)_symbolMap[symbol]; 161return ((MethodSymbol)_symbolMap[symbol.OriginalDefinition]).ConstructIfGeneric(TypeMap.SubstituteTypes(symbol.TypeArgumentsWithAnnotations));
Lowering\ExtensionMethodReferenceRewriter.cs (10)
89MethodSymbol method, 90ImmutableArray<MethodSymbol> originalMethodsOpt, 150private static MethodSymbol? VisitMethodSymbolWithExtensionRewrite(BoundTreeRewriter rewriter, MethodSymbol? method) 153method.OriginalDefinition.TryGetCorrespondingExtensionImplementationMethod() is MethodSymbol implementationMethod) 163public override MethodSymbol? VisitMethodSymbol(MethodSymbol? method) 192MethodSymbol method = node.Method; 205var methodOpt = VisitMethodSymbolWithExtensionRewrite(rewriter, node.MethodOpt); 226MethodSymbol targetMethod = VisitMethodSymbolWithExtensionRewrite(rewriter, node.TargetMethod);
Lowering\InitializerRewriter.cs (1)
19internal static BoundTypeOrInstanceInitializers RewriteConstructor(ImmutableArray<BoundInitializer> boundInitializers, MethodSymbol method)
Lowering\Instrumentation\CodeCoverageInstrumenter.cs (16)
26private readonly MethodSymbol _method; 28private readonly MethodSymbol _createPayloadForMethodsSpanningSingleFile; 29private readonly MethodSymbol _createPayloadForMethodsSpanningMultipleFiles; 40MethodSymbol method, 63MethodSymbol createPayloadForMethodsSpanningSingleFile = GetCreatePayloadOverload( 69MethodSymbol createPayloadForMethodsSpanningMultipleFiles = GetCreatePayloadOverload( 102MethodSymbol method, 105MethodSymbol createPayloadForMethodsSpanningSingleFile, 106MethodSymbol createPayloadForMethodsSpanningMultipleFiles, 123var oldMethod = methodBodyFactory.CurrentFunction; 141private static bool IsExcludedFromCodeCoverage(MethodSymbol method) 169MethodSymbol createPayloadForMethodsSpanningSingleFile, 170MethodSymbol createPayloadForMethodsSpanningMultipleFiles, 177MethodSymbol createPayloadOverload; 564private static MethodSymbol GetCreatePayloadOverload(CSharpCompilation compilation, WellKnownMember overload, SyntaxNode syntax, BindingDiagnosticBag diagnostics) 566return (MethodSymbol)Binder.GetWellKnownTypeMember(compilation, overload, diagnostics, syntax: syntax);
Lowering\Instrumentation\CompoundInstrumenter.cs (1)
165ref MethodSymbol method,
Lowering\Instrumentation\Instrumenter.cs (1)
239ref MethodSymbol method,
Lowering\Instrumentation\LocalStateTracingInstrumenter.cs (14)
153MethodSymbol method, 204private MethodSymbol? GetLocalOrParameterStoreLogger(TypeSymbol variableType, Symbol targetSymbol, bool? refAssignmentSourceIsLocal, SyntaxNode syntax) 263var symbol = GetWellKnownMethodSymbol(overload, syntax); 268private MethodSymbol? GetWellKnownMethodSymbol(WellKnownMember overload, SyntaxNode syntax) 269=> (MethodSymbol?)Binder.GetWellKnownTypeMember(_factory.Compilation, overload, _diagnostics, syntax: syntax, isOptional: false); 271private MethodSymbol? GetSpecialMethodSymbol(SpecialMember overload, SyntaxNode syntax) 272=> (MethodSymbol?)Binder.GetSpecialTypeMember(_factory.Compilation, overload, _diagnostics, syntax: syntax); 312var parameterLogger = GetLocalOrParameterStoreLogger(parameter.Type, parameter, refAssignmentSourceIsLocal: null, _factory.Syntax); 343var entryLogger = GetWellKnownMethodSymbol(entryOverload, _factory.Syntax); 347var returnLogger = GetWellKnownMethodSymbol(WellKnownMember.Microsoft_CodeAnalysis_Runtime_LocalStoreTracker__LogReturn, _factory.Syntax); 394var logger = GetLocalOrParameterStoreLogger(targetType, targetSymbol, refAssignmentSourceIsLocal, original.Syntax); 464var toStringMethod = GetSpecialMethodSymbol(SpecialMember.System_Object__ToString, value.Syntax); 525var logger = GetLocalOrParameterStoreLogger(targetType, targetSymbol, refAssignmentSourceIsLocal: null, original.Syntax); 589var logger = GetLocalOrParameterStoreLogger(targetType, targetSymbol, refAssignmentSourceIsLocal: null, invocation.Syntax);
Lowering\Instrumentation\ModuleCancellationInstrumenter.cs (10)
26MethodSymbol throwMethod, 31private readonly MethodSymbol _throwMethod = throwMethod; 41MethodSymbol method, 57var throwMethod = factory.WellKnownMethod(WellKnownMember.System_Threading_CancellationToken__ThrowIfCancellationRequested, isOptional: true); 119ref MethodSymbol method, 153private MethodSymbol? FindOverloadWithCancellationToken(MethodSymbol method) 162var methodDefinition = method.OriginalDefinition; 186member is MethodSymbol { Parameters: [.., { RefKind: RefKind.None, Type: { } lastParamType }] parametersWithCancellationToken } overload && 215var result = overload.AsMember(method.ContainingType);
Lowering\Instrumentation\StackOverflowProbingInstrumenter.cs (4)
16MethodSymbol ensureStackMethod, 21private readonly MethodSymbol _ensureStackMethod = ensureStackMethod; 31MethodSymbol method, 47var ensureStackMethod = factory.WellKnownMethod(WellKnownMember.System_Runtime_CompilerServices_RuntimeHelpers__EnsureSufficientExecutionStack, isOptional: true);
Lowering\IteratorRewriter\IteratorFinallyMethodSymbol.cs (2)
169public override ImmutableArray<MethodSymbol> ExplicitInterfaceImplementations 171get { return ImmutableArray<MethodSymbol>.Empty; }
Lowering\IteratorRewriter\IteratorMethodToStateMachineRewriter.cs (2)
58MethodSymbol originalMethod, 400var origMethod = F.CurrentFunction;
Lowering\IteratorRewriter\IteratorRewriter.cs (10)
31MethodSymbol method, 51MethodSymbol method, 159var getter = symbol.GetMethod; 212var IDisposable_Dispose = F.SpecialMethod(SpecialMember.System_IDisposable__Dispose); 214var IEnumerator_MoveNext = F.SpecialMethod(SpecialMember.System_Collections_IEnumerator__MoveNext); 215var IEnumerator_Reset = F.SpecialMethod(SpecialMember.System_Collections_IEnumerator__Reset); 216var IEnumerator_get_Current = F.SpecialProperty(SpecialMember.System_Collections_IEnumerator__Current).GetMethod; 219var IEnumeratorOfElementType_get_Current = F.SpecialProperty(SpecialMember.System_Collections_Generic_IEnumerator_T__Current).GetMethod.AsMember(IEnumeratorOfElementType); 256var IEnumerable_GetEnumerator = F.SpecialMethod(SpecialMember.System_Collections_IEnumerable__GetEnumerator); 259var IEnumerableOfElementType_GetEnumerator = F.SpecialMethod(SpecialMember.System_Collections_Generic_IEnumerable_T__GetEnumerator).AsMember(IEnumerableOfElementType);
Lowering\IteratorRewriter\IteratorStateMachine.cs (3)
21private readonly MethodSymbol _constructor; 26public IteratorStateMachine(VariableSlotAllocator slotAllocatorOpt, TypeCompilationState compilationState, MethodSymbol iteratorMethod, int iteratorMethodOrdinal, bool isEnumerable, TypeWithAnnotations elementType) 51internal override MethodSymbol Constructor
Lowering\LocalRewriter\DelegateCacheContainer.cs (8)
18private readonly Dictionary<(TypeSymbol?, TypeSymbol, MethodSymbol), FieldSymbol> _delegateFields = new(CLRSignatureComparer.Instance); 35TypeMap.ConcatMethodTypeParameters((MethodSymbol)owner, stopAt: null))) 39Debug.Assert(owner is NamedTypeSymbol { Arity: > 0 } or MethodSymbol { Arity: > 0 }); 61var targetMethod = boundDelegateCreation.MethodOpt; 92private sealed class CLRSignatureComparer : IEqualityComparer<(TypeSymbol? constrainedToTypeOpt, TypeSymbol delegateType, MethodSymbol targetMethod)> 96public bool Equals((TypeSymbol? constrainedToTypeOpt, TypeSymbol delegateType, MethodSymbol targetMethod) x, (TypeSymbol? constrainedToTypeOpt, TypeSymbol delegateType, MethodSymbol targetMethod) y) 105public int GetHashCode((TypeSymbol? constrainedToTypeOpt, TypeSymbol delegateType, MethodSymbol targetMethod) conversion)
Lowering\LocalRewriter\DelegateCacheRewriter.cs (6)
36var targetMethod = boundDelegateCreation.MethodOpt; 123private static bool TryGetOwnerFunctionOrExtensionType(MethodSymbol currentFunction, BoundDelegateCreationExpression boundDelegateCreation, [NotNullWhen(true)] out Symbol? owner) 125var targetMethod = boundDelegateCreation.MethodOpt; 142for (; enclosingSymbol is MethodSymbol enclosingMethod; enclosingSymbol = enclosingSymbol.ContainingSymbol) 183for (; enclosingSymbol is MethodSymbol enclosingMethod; enclosingSymbol = enclosingSymbol.ContainingSymbol) 224private static void FindTypeParameters(MethodSymbol method, HashSet<TypeParameterSymbol> result)
Lowering\LocalRewriter\DynamicSiteContainer.cs (3)
15private readonly MethodSymbol _topLevelMethod; 17internal DynamicSiteContainer(string name, MethodSymbol topLevelMethod, MethodSymbol containingMethod)
Lowering\LocalRewriter\LocalRewriter.cs (18)
57MethodSymbol containingMethod, 86MethodSymbol method, 333delegateType.DelegateInvokeMethod() is MethodSymbol delegateInvoke && 351var lambda = node.Symbol; 354var oldContainingSymbol = _factory.CurrentFunction; 384var localFunction = node.Symbol; 415static bool hasReturnTypeOrParameter(MethodSymbol localFunction, Func<TypeWithAnnotations, bool> predicate) => 419var oldContainingSymbol = _factory.CurrentFunction; 606/// Recommendation: Do not use, use <see cref="TryGetSpecialTypeMethod(SyntaxNode, SpecialMember, out MethodSymbol, bool)"/> instead! 609private MethodSymbol UnsafeGetSpecialTypeMethod(SyntaxNode syntax, SpecialMember specialMember) 616/// Recommendation: Do not use, use <see cref="TryGetSpecialTypeMethod(SyntaxNode, SpecialMember, CSharpCompilation, BindingDiagnosticBag, out MethodSymbol, bool)"/> instead! 619private static MethodSymbol UnsafeGetSpecialTypeMethod(SyntaxNode syntax, SpecialMember specialMember, CSharpCompilation compilation, BindingDiagnosticBag diagnostics) 621MethodSymbol method; 636private bool TryGetSpecialTypeMethod(SyntaxNode syntax, SpecialMember specialMember, out MethodSymbol method, bool isOptional = false) 641private static bool TryGetSpecialTypeMethod(SyntaxNode syntax, SpecialMember specialMember, CSharpCompilation compilation, BindingDiagnosticBag diagnostics, out MethodSymbol method, bool isOptional = false) 657MethodSymbol? getTypeFromHandle; 687MethodSymbol? getTypeFromHandle; 1125private void CheckRefReadOnlySymbols(MethodSymbol symbol)
Lowering\LocalRewriter\LocalRewriter.DecisionDagRewriter.cs (1)
167private static bool MethodMayMutateReceiver(BoundExpression receiver, MethodSymbol method)
Lowering\LocalRewriter\LocalRewriter.PatternLocalRewriter.cs (12)
161MethodSymbol method = d.DeconstructMethod; 222_localRewriter.TryGetNullableMethod(t.Syntax, inputType, SpecialMember.System_Nullable_T_GetValueOrDefault, out MethodSymbol getValueOrDefault)) 311var ctor = (MethodSymbol)_factory.WellKnownMember(WellKnownMember.System_Index__ctor); 325var indexCtor = (MethodSymbol)_factory.WellKnownMember(WellKnownMember.System_Index__ctor); 329var rangeCtor = (MethodSymbol)_factory.WellKnownMember(WellKnownMember.System_Range__ctor); 437var sequenceEqual = 438((MethodSymbol)_factory.WellKnownMember(isReadOnlySpan 442var asSpan = (MethodSymbol)_factory.WellKnownMember(WellKnownMember.System_MemoryExtensions__AsSpan_String);
Lowering\LocalRewriter\LocalRewriter_AssignmentOperator.cs (1)
279var setMethod = property.GetOwnOrInheritedSetMethod();
Lowering\LocalRewriter\LocalRewriter_BinaryOperator.cs (23)
187MethodSymbol? method, 203MethodSymbol? method, 544private BoundExpression RewriteLiftedBinaryOperator(SyntaxNode syntax, BinaryOperatorKind operatorKind, BoundExpression loweredLeft, BoundExpression loweredRight, TypeSymbol type, MethodSymbol? method, TypeSymbol? constrainedToTypeOpt) 607MethodSymbol? leftTruthOperator, 732private BoundExpression MakeTruthTestForDynamicLogicalOperator(SyntaxNode syntax, BinaryOperatorKind operatorKind, BoundExpression loweredLeft, TypeSymbol boolean, MethodSymbol? leftTruthOperator, TypeSymbol? constrainedToTypeOpt, bool negative) 756return new BoundUnaryOperator(syntax, UnaryOperatorKind.BoolLogicalNegation, converted, ConstantValue.NotAvailable, MethodSymbol.None, constrainedToTypeOpt: null, LookupResultKind.Viable, boolean) 791MethodSymbol? method, 818MethodSymbol? method, 1148MethodSymbol? method, 1317MethodSymbol? method, 1357MethodSymbol? method, 1426MethodSymbol? method, 1528MethodSymbol? method, 1854MethodSymbol getValueOrDefaultX = UnsafeGetNullableMethod(syntax, boundTempX.Type, SpecialMember.System_Nullable_T_GetValueOrDefault); 1855MethodSymbol getValueOrDefaultY = UnsafeGetNullableMethod(syntax, boundTempY.Type, SpecialMember.System_Nullable_T_GetValueOrDefault); 1912private MethodSymbol UnsafeGetNullableMethod(SyntaxNode syntax, TypeSymbol nullableType, SpecialMember member) 1922internal static MethodSymbol UnsafeGetNullableMethod(SyntaxNode syntax, TypeSymbol nullableType, SpecialMember member, CSharpCompilation compilation, BindingDiagnosticBag diagnostics) 1929private bool TryGetNullableMethod(SyntaxNode syntax, TypeSymbol nullableType, SpecialMember member, out MethodSymbol result, bool isOptional = false) 2020var method = UnsafeGetSpecialTypeMethod(syntax, member); 2028MethodSymbol method; 2031method = (MethodSymbol)_compilation.Assembly.GetSpecialTypeMember(member); 2034(object)(method = (MethodSymbol)_compilation.Assembly.GetSpecialTypeMember(member)) == null) 2081var method = UnsafeGetSpecialTypeMethod(syntax, member);
Lowering\LocalRewriter\LocalRewriter_Call.cs (12)
97private void EmbedIfNeedTo(BoundExpression receiver, ImmutableArray<MethodSymbol> methods, SyntaxNode syntaxNode) 108foreach (var m in methods) 136ref MethodSymbol method, 187var containingMethod = this._factory.CurrentFunction; 203var symbolForCompare = needToReduce ? ReducedExtensionMethodSymbol.Create(interceptor, receiverOpt!.Type, _compilation, out _) : interceptor; // Tracked by https://github.com/dotnet/roslyn/issues/76130 : test interceptors 363MethodSymbol method = node.Method; 443MethodSymbol method, 524private BoundExpression MakeCall(SyntaxNode syntax, BoundExpression? rewrittenReceiver, MethodSymbol method, ImmutableArray<BoundExpression> rewrittenArguments) 667var requiresInstanceReceiver = methodOrIndexer.RequiresInstanceReceiver() && methodOrIndexer is not MethodSymbol { MethodKind: MethodKind.Constructor } and not FunctionPointerMethodSymbol; 1246return ((MethodSymbol)methodOrIndexer).Parameters[0].Type as NamedTypeSymbol; 1442MethodSymbol? arrayEmpty = _compilation.GetSpecialTypeMember(SpecialMember.System_Array__Empty) as MethodSymbol;
Lowering\LocalRewriter\LocalRewriter_CollectionExpression.cs (48)
79if (_compilation.GetWellKnownTypeMember(WellKnownMember.System_Runtime_InteropServices_ImmutableCollectionsMarshal__AsImmutableArray_T) is MethodSymbol asImmutableArray && 106var addMethod = (MethodSymbol?)compilation.GetWellKnownTypeMember(WellKnownMember.System_Collections_Generic_List_T__Add); 114static bool canOptimizeListElement(BoundNode element, MethodSymbol addMethod) 169if (!TryGetWellKnownTypeMember(node.Syntax, WellKnownMember.System_Linq_Enumerable__ToList, out MethodSymbol? toListGeneric, isOptional: true)) 174var toListOfElementType = toListGeneric.Construct([listElementType]); 191private bool ShouldUseIEnumerableBulkAddMethod(TypeSymbol spreadType, TypeSymbol targetEnumerableType, MethodSymbol? getEnumeratorMethod) 235private BoundExpression VisitImmutableArrayCollectionExpression(BoundCollectionExpression node, TypeWithAnnotations elementType, MethodSymbol asImmutableArray) 255MethodSymbol? spanConstructor = null; 279var constructor = ((MethodSymbol)_factory.WellKnownMember(WellKnownMember.System_ReadOnlySpan_T__ctor_Array)).AsMember(spanType); 297spanConstructor = ((MethodSymbol)_factory.WellKnownMember( 319var listToArray = ((MethodSymbol)_factory.WellKnownMember(WellKnownMember.System_Collections_Generic_List_T__ToArray)).AsMember((NamedTypeSymbol)list.Type); 478var constructMethod = node.CollectionBuilderMethod; 557: WellKnownMember.System_Span_T__ctor_ref_T, isOptional: true) is MethodSymbol spanRefConstructor) 563var constructor = spanRefConstructor.AsMember(spanType); 575MethodSymbol elementRef = _factory.ModuleBuilderOpt.EnsureInlineArrayElementRefExists(syntax, intType, _diagnostics.DiagnosticBag). 602MethodSymbol inlineArrayAsSpan = asReadOnlySpan ? 668&& tryGetToArrayMethod(spreadTypeOriginalDefinition, WellKnownType.System_Collections_Generic_List_T, WellKnownMember.System_Collections_Generic_List_T__ToArray, out MethodSymbol? listToArrayMethod)) 679var linqToArrayMethod = linqToArrayMethodGeneric.Construct([arrayType.ElementTypeWithAnnotations]); 688&& TryGetSpanConversion(spreadExpression.Type, writableOnly: false, out var asSpanMethod)) 691if (tryGetToArrayMethod(spanType, WellKnownType.System_ReadOnlySpan_T, WellKnownMember.System_ReadOnlySpan_T__ToArray, out var toArrayMethod) 699bool tryGetToArrayMethod(TypeSymbol spreadTypeOriginalDefinition, WellKnownType wellKnownType, WellKnownMember wellKnownMember, [NotNullWhen(true)] out MethodSymbol? toArrayMethod) 856private bool TryGetSpanConversion(TypeSymbol type, bool writableOnly, out MethodSymbol? asSpanMethod) 906if (!TryGetSpanConversion(type, writableOnly, out var asSpanMethod)) 916private BoundExpression CallAsSpanMethod(BoundExpression spreadExpression, MethodSymbol? asSpanMethod) 922if (asSpanMethod is MethodSymbol { MethodKind: MethodKind.Constructor } constructor) 926else if (asSpanMethod is MethodSymbol { IsStatic: true, ParameterCount: 1 }) 940private (MethodSymbol spanSliceMethod, BoundExpression spreadElementAsSpan, MethodSymbol getLengthMethod, MethodSymbol copyToMethod)? PrepareCopyToOptimization( 965(MethodSymbol getLengthMethod, MethodSymbol copyToMethod)? getSpanMethodsForSpread( 987MethodSymbol spanSliceMethod, 989MethodSymbol getLengthMethod, 990MethodSymbol copyToMethod) 1036MethodSymbol? setCount = null; 1037MethodSymbol? asSpan = null; 1042setCount = ((MethodSymbol?)_compilation.GetWellKnownTypeMember(WellKnownMember.System_Runtime_InteropServices_CollectionsMarshal__SetCount_T))?.Construct(typeArguments); 1043asSpan = ((MethodSymbol?)_compilation.GetWellKnownTypeMember(WellKnownMember.System_Runtime_InteropServices_CollectionsMarshal__AsSpan_T))?.Construct(typeArguments); 1058var constructor = ((MethodSymbol)_factory.WellKnownMember(WellKnownMember.System_Collections_Generic_List_T__ctorInt32)).AsMember(collectionType); 1082var constructor = ((MethodSymbol)_factory.WellKnownMember(WellKnownMember.System_Collections_Generic_List_T__ctor)).AsMember(collectionType); 1108var spanGetItem = ((MethodSymbol)_factory.WellKnownMember(WellKnownMember.System_Span_T__get_Item)).AsMember((NamedTypeSymbol)spanTemp.Type); 1162var addMethod = _factory.WellKnownMethod(WellKnownMember.System_Collections_Generic_List_T__Add).AsMember(collectionType);
Lowering\LocalRewriter\LocalRewriter_CompoundAssignmentOperator.cs (3)
423var accessor = indexer.GetOwnOrInheritedGetMethod() ?? indexer.GetOwnOrInheritedSetMethod(); 974var method = call.Method; 995private static bool IsSpecialMember(MethodSymbol method, SpecialMember specialMember)
Lowering\LocalRewriter\LocalRewriter_Conversion.cs (24)
109if (!TryGetWellKnownTypeMember<MethodSymbol>(node.Syntax, WellKnownMember.System_ReadOnlySpan_T__ctor_Array_Start_Length, out MethodSymbol? ctor)) 551MethodSymbol? symbolOpt = oldNodeOpt.SymbolOpt; 564var method = oldNodeOpt.SymbolOpt; 597MethodSymbol createSpan; 631MethodSymbol method = methodDefinition.AsMember(destinationType); 654MethodSymbol implicitOperator = implicitOperatorDefinition.AsMember((NamedTypeSymbol)sourceType); 667MethodSymbol castUpMethod = castUpMethodDefinition.AsMember(destinationType).Construct([sourceElementType]); 688MethodSymbol method = methodDefinition.AsMember(destinationType).Construct([sourceElementType]); 743delegateType.DelegateInvokeMethod() is MethodSymbol delegateInvoke && 1062MethodSymbol ctor = UnsafeGetNullableMethod(syntax, rewrittenType, SpecialMember.System_Nullable_T__ctor); 1078MethodSymbol get_Value = UnsafeGetNullableMethod(syntax, rewrittenOperandType, SpecialMember.System_Nullable_T_get_Value); 1124if (!TryGetSpecialTypeMethod(syntax, DecimalConversionMethod(typeFromUnderlying, typeToUnderlying), out MethodSymbol method)) 1165MethodSymbol getValueOrDefault; 1382MethodSymbol ctor = UnsafeGetNullableMethod(call.Syntax, resultType, SpecialMember.System_Nullable_T__ctor); 1433MethodSymbol getValueOrDefault = UnsafeGetNullableMethod(syntax, boundTemp.Type, SpecialMember.System_Nullable_T_GetValueOrDefault); 1495MethodSymbol method; 1728if (!TryGetSpecialTypeMethod(syntax, member, out MethodSymbol method)) 1758var meth = conversion.Method; 1790MethodSymbol method; 1804MethodSymbol method; 1821MethodSymbol method; 1834MethodSymbol method; 1862private Conversion TryMakeUserDefinedConversion(SyntaxNode syntax, MethodSymbol meth, TypeSymbol fromType, TypeSymbol toType, bool @checked, bool isImplicit)
Lowering\LocalRewriter\LocalRewriter_DelegateCreationExpression.cs (1)
31var method = node.MethodOpt;
Lowering\LocalRewriter\LocalRewriter_Event.cs (7)
56MethodSymbol? method = node.IsAddition ? node.Event.AddMethod : node.Event.RemoveMethod; 117MethodSymbol? clearMethod; 157MethodSymbol? marshalMethod; 250MethodSymbol? getOrCreateMethod; 271MethodSymbol invocationListAccessor = invocationListProperty.GetMethod; 301var ctor = _factory.WellKnownMethod(WellKnownMember.System_Runtime_InteropServices_ComAwareEventInfo__ctor); 305var addRemove = _factory.WellKnownMethod(node.IsAddition ? WellKnownMember.System_Runtime_InteropServices_ComAwareEventInfo__AddEventHandler :
Lowering\LocalRewriter\LocalRewriter_FixedStatement.cs (3)
312var getPinnableMethod = fixedInitializer.GetPinnableOpt; 477MethodSymbol? offsetMethod; 538MethodSymbol? lengthMethod;
Lowering\LocalRewriter\LocalRewriter_ForEachStatement.cs (21)
60else if (node.AwaitOpt is null && CanRewriteForEachAsFor(node.Syntax, nodeExpressionType, out var indexerGet, out var lengthGetter)) 70private bool CanRewriteForEachAsFor(SyntaxNode forEachSyntax, TypeSymbol nodeExpressionType, [NotNullWhen(true)] out MethodSymbol? indexerGet, [NotNullWhen(true)] out MethodSymbol? lengthGet) 83lengthGet = (MethodSymbol?)_factory.WellKnownMember(WellKnownMember.System_Span_T__get_Length, isOptional: true)?.SymbolAsMember(spanType); 84indexerGet = (MethodSymbol?)_factory.WellKnownMember(WellKnownMember.System_Span_T__get_Item, isOptional: true)?.SymbolAsMember(spanType); 89lengthGet = (MethodSymbol?)_factory.WellKnownMember(WellKnownMember.System_ReadOnlySpan_T__get_Length, isOptional: true)?.SymbolAsMember(spanType); 90indexerGet = (MethodSymbol?)_factory.WellKnownMember(WellKnownMember.System_ReadOnlySpan_T__get_Item, isOptional: true)?.SymbolAsMember(spanType); 289private bool TryGetDisposeMethod(SyntaxNode forEachSyntax, ForEachEnumeratorInfo enumeratorInfo, out MethodSymbol disposeMethod) 293disposeMethod = (MethodSymbol)Binder.GetWellKnownTypeMember(_compilation, WellKnownMember.System_IAsyncDisposable__DisposeAsync, _diagnostics, syntax: forEachSyntax); 323MethodSymbol? disposeMethod = enumeratorInfo.PatternDisposeInfo?.Method; // pattern-based 494private BoundExpression ConvertReceiverForInvocation(CSharpSyntaxNode syntax, BoundExpression receiver, MethodSymbol method, Conversion receiverConversion, TypeSymbol convertedReceiverType) 697private BoundStatement RewriteForEachStatementAsFor(BoundForEachStatement node, MethodSymbol indexerGet, MethodSymbol lengthGet) 701getItem: static (LocalRewriter rewriter, SyntaxNode syntax, ForEachEnumeratorInfo enumeratorInfo, BoundLocal boundArrayVar, BoundLocal boundPositionVar, (MethodSymbol indexerGet, MethodSymbol lengthGet) arg) => 710getLength: static (LocalRewriter rewriter, SyntaxNode syntax, BoundLocal boundArrayVar, (MethodSymbol indexerGet, MethodSymbol lengthGet) arg) => 755MethodSymbol elementRef; 1053MethodSymbol getLowerBoundMethod = UnsafeGetSpecialTypeMethod(forEachSyntax, SpecialMember.System_Array__GetLowerBound); 1054MethodSymbol getUpperBoundMethod = UnsafeGetSpecialTypeMethod(forEachSyntax, SpecialMember.System_Array__GetUpperBound);
Lowering\LocalRewriter\LocalRewriter_FunctionPointerInvocation.cs (1)
22MethodSymbol functionPointer = node.FunctionPointer.Signature;
Lowering\LocalRewriter\LocalRewriter_Index.cs (1)
74if (!TryGetNullableMethod(syntax, targetNullableType, SpecialMember.System_Nullable_T__ctor, out MethodSymbol nullableCtor))
Lowering\LocalRewriter\LocalRewriter_IndexerAccess.cs (11)
156var getMethod = indexer.GetOwnOrInheritedGetMethod(); 215var getItemOrSliceHelper = (MethodSymbol?)_compilation.GetWellKnownTypeMember(node.GetItemOrSliceHelper); 243MethodSymbol createSpan = getCreateSpanHelper(node, spanType: getItemOrSliceHelper.ContainingType, intType: (NamedTypeSymbol)getItemOrSliceHelper.Parameters[0].Type); 321MethodSymbol getCreateSpanHelper(BoundInlineArrayAccess node, NamedTypeSymbol spanType, NamedTypeSymbol intType) 325MethodSymbol createSpan; 338BoundExpression getElementRef(BoundInlineArrayAccess node, BoundExpression rewrittenReceiver, BoundExpression index, MethodSymbol getItemOrSliceHelper, int length) 350MethodSymbol elementRef; 369MethodSymbol elementRef; 392MethodSymbol createSpan = getCreateSpanHelper(node, spanType, intType); 729else if (unloweredExpr is BoundObjectCreationExpression { Constructor: MethodSymbol constructor, Arguments: { Length: 2 } arguments, ArgsToParamsOpt: { IsDefaultOrEmpty: true }, InitializerExpressionOpt: null } &&
Lowering\LocalRewriter\LocalRewriter_Literal.cs (5)
70var curMethod = _factory.CurrentFunction; 131var ctor = (MethodSymbol)_compilation.Assembly.GetSpecialTypeMember(member); 150var ctor = (MethodSymbol)_compilation.Assembly.GetSpecialTypeMember(SpecialMember.System_DateTime__CtorInt64);
Lowering\LocalRewriter\LocalRewriter_LockStatement.cs (2)
105MethodSymbol? exitMethod; 122MethodSymbol? enterMethod;
Lowering\LocalRewriter\LocalRewriter_NullCoalescingAssignmentOperator.cs (2)
74out var getValueOrDefault)) 82out var hasValue))
Lowering\LocalRewriter\LocalRewriter_NullCoalescingOperator.cs (4)
140TryGetNullableMethod(rewrittenLeft.Syntax, rewrittenLeft.Type, SpecialMember.System_Nullable_T_GetValueOrDefault, out MethodSymbol? getValueOrDefault, isOptional: true)) 147TryGetNullableMethod(rewrittenLeft.Syntax, rewrittenLeft.Type, SpecialMember.System_Nullable_T_GetValueOrDefaultDefaultValue, out MethodSymbol? getValueOrDefaultDefaultValue, isOptional: true)) 199var method = boundCall.Method; 257MethodSymbol getValueOrDefault = UnsafeGetNullableMethod(rewrittenLeft.Syntax, rewrittenLeftType, SpecialMember.System_Nullable_T_GetValueOrDefault);
Lowering\LocalRewriter\LocalRewriter_ObjectCreationExpression.cs (5)
35var constructor = node.Constructor; 333MethodSymbol? method; 379var ctor = _factory.WellKnownMethod(WellKnownMember.System_Guid__ctor); 392var getTypeFromCLSID = _factory.WellKnownMethod(WellKnownMember.System_Runtime_InteropServices_Marshal__GetTypeFromCLSID, isOptional: true); 410var createInstance = _factory.WellKnownMethod(WellKnownMember.System_Activator__CreateInstance);
Lowering\LocalRewriter\LocalRewriter_ObjectOrCollectionInitializerExpression.cs (1)
181MethodSymbol addMethod = initializer.AddMethod;
Lowering\LocalRewriter\LocalRewriter_PropertyAccess.cs (2)
79MethodSymbol? getMethodOpt = null, 91var getMethod = getMethodOpt ?? property.GetOwnOrInheritedGetMethod();
Lowering\LocalRewriter\LocalRewriter_Range.cs (2)
95if (!TryGetNullableMethod(node.Syntax, node.Type, SpecialMember.System_Nullable_T__ctor, out MethodSymbol nullableCtor)) 157MethodSymbol constructionMethod,
Lowering\LocalRewriter\LocalRewriter_ReturnStatement.cs (1)
41var method = _factory.CurrentFunction;
Lowering\LocalRewriter\LocalRewriter_StackAlloc.cs (2)
61if (TryGetWellKnownTypeMember(stackAllocNode.Syntax, WellKnownMember.System_Span_T__ctor_Pointer, out MethodSymbol? spanConstructor)) 63constructorCall = _factory.New((MethodSymbol)spanConstructor.SymbolAsMember(spanType), stackAllocNode, countTemp);
Lowering\LocalRewriter\LocalRewriter_StringConcat.cs (21)
157|| !TryGetNeededToSpanMembers(this, originalSyntax, needsImplicitConversionFromStringToSpan, charType, out var readOnlySpanCtorRefParamChar, out var stringImplicitConversionToReadOnlySpan)) 194var method = UnsafeGetSpecialTypeMethod(originalSyntax, concatMember); 360private MethodSymbol? _concatStringString = ErrorMethodSymbol.UnknownMethod; 361private MethodSymbol? _concatStringStringString = ErrorMethodSymbol.UnknownMethod; 362private MethodSymbol? _concatStringStringStringString = ErrorMethodSymbol.UnknownMethod; 363private MethodSymbol? _concatStringArray = ErrorMethodSymbol.UnknownMethod; 364private MethodSymbol? _objectToString = ErrorMethodSymbol.UnknownMethod; 408private readonly void InitializeField(ref MethodSymbol? member, SpecialMember specialMember) 412member = _compilation.GetSpecialTypeMember(specialMember) as MethodSymbol; 416private readonly bool IsConcatNonArray(BoundCall call, ref MethodSymbol? concatMethod, SpecialMember concatSpecialMember, out ImmutableArray<BoundExpression> arguments) 436[NotNullWhen(true)] out MethodSymbol? readOnlySpanCtorRefParamChar, 437out MethodSymbol? stringImplicitConversionToReadOnlySpan) 442if (self.TryGetSpecialTypeMethod(syntax, SpecialMember.System_ReadOnlySpan_T__ctor_Reference, out MethodSymbol? readOnlySpanCtorRefParamGeneric, isOptional: true) && 464MethodSymbol spanConcat, 465MethodSymbol? stringImplicitConversionToReadOnlySpan, 466MethodSymbol readOnlySpanCtorRefParamChar, 560var method = UnsafeGetSpecialTypeMethod(current.Syntax, member); 615var objectToStringMethod = UnsafeGetSpecialTypeMethod(syntax, SpecialMember.System_Object__ToString); 619MethodSymbol? structToStringMethod = null; 626if (member is MethodSymbol toStringMethod &&
Lowering\LocalRewriter\LocalRewriter_StringInterpolation.cs (2)
225var toStringAndClear = (MethodSymbol)Binder.GetWellKnownTypeMember(_compilation, WellKnownMember.System_Runtime_CompilerServices_DefaultInterpolatedStringHandler__ToStringAndClear, _diagnostics, syntax: syntax);
Lowering\LocalRewriter\LocalRewriter_SwitchExpression.cs (5)
129_factory.WellKnownMember(WellKnownMember.System_Runtime_CompilerServices_SwitchExpressionException__ctorObject, isOptional: true) is MethodSymbol) 131(_factory.WellKnownMember(WellKnownMember.System_Runtime_CompilerServices_SwitchExpressionException__ctor, isOptional: true) is MethodSymbol) 163var throwSwitchExpressionExceptionMethod = module.EnsureThrowSwitchExpressionExceptionExists(diagnosticSyntax, factory, diagnostics); 178var throwSwitchExpressionExceptionMethod = module.EnsureThrowSwitchExpressionExceptionParameterlessExists(diagnosticSyntax, factory, diagnostics); 192var throwMethod = module.EnsureThrowInvalidOperationExceptionExists(diagnosticSyntax, factory, diagnostics);
Lowering\LocalRewriter\LocalRewriter_TupleCreationExpression.cs (6)
57var smallestCtor = (MethodSymbol?)NamedTypeSymbol.GetWellKnownMemberInType(smallestType.OriginalDefinition, 66MethodSymbol smallestConstructor = smallestCtor.AsMember(smallestType); 74var tuple8Ctor = (MethodSymbol?)NamedTypeSymbol.GetWellKnownMemberInType(tuple8Type.OriginalDefinition, 93MethodSymbol constructor = tuple8Ctor.AsMember(underlyingTupleTypeChain.Pop());
Lowering\LocalRewriter\LocalRewriter_UnaryOperator.cs (20)
65MethodSymbol? method, 77MethodSymbol? method, 166method = (MethodSymbol)_compilation.Assembly.GetSpecialTypeMember(SpecialMember.System_Decimal__op_UnaryNegation); 181MethodSymbol? method, 204MethodSymbol getValueOrDefault = UnsafeGetNullableMethod(syntax, boundTemp.Type, SpecialMember.System_Nullable_T_GetValueOrDefault); 245MethodSymbol? method, 353private BoundExpression GetLiftedUnaryOperatorConsequence(UnaryOperatorKind kind, SyntaxNode syntax, MethodSymbol? method, TypeSymbol? constrainedToTypeOpt, TypeSymbol type, BoundExpression nonNullOperand) 355MethodSymbol ctor = UnsafeGetNullableMethod(syntax, type, SpecialMember.System_Nullable_T__ctor); 442private BoundExpression MakeInstanceCompoundAssignmentOperatorResult(SyntaxNode syntax, BoundExpression left, BoundExpression? rightOpt, MethodSymbol operatorMethod, bool isChecked) 509static BoundCall makeIncrementCall(SyntaxNode syntax, BoundLocal boundTemp, BoundExpression? rightOpt, MethodSymbol operatorMethod) 804MethodSymbol getValueOrDefault = UnsafeGetNullableMethod(syntax, type, SpecialMember.System_Nullable_T_GetValueOrDefault); 805MethodSymbol ctor = UnsafeGetNullableMethod(syntax, type, SpecialMember.System_Nullable_T__ctor); 888MethodSymbol ctor = UnsafeGetNullableMethod(node.Syntax, binaryOperandType, SpecialMember.System_Nullable_T__ctor); 940private MethodSymbol GetDecimalIncDecOperator(BinaryOperatorKind oper) 951var method = (MethodSymbol)_compilation.Assembly.GetSpecialTypeMember(member); 960MethodSymbol method = GetDecimalIncDecOperator(oper); 969MethodSymbol method = GetDecimalIncDecOperator(oper); 970MethodSymbol getValueOrDefault = UnsafeGetNullableMethod(syntax, operand.Type, SpecialMember.System_Nullable_T_GetValueOrDefault); 971MethodSymbol ctor = UnsafeGetNullableMethod(syntax, operand.Type, SpecialMember.System_Nullable_T__ctor);
Lowering\LocalRewriter\LocalRewriter_UsingStatement.cs (4)
363MethodSymbol getValueOrDefault = UnsafeGetNullableMethod(resourceTypeSyntax, local.Type, SpecialMember.System_Nullable_T_GetValueOrDefault); 445MethodSymbol? disposeMethod = disposeInfo?.Method; 456TryGetWellKnownTypeMember<MethodSymbol>(syntax: null, WellKnownMember.System_IAsyncDisposable__DisposeAsync, out disposeMethod, location: awaitKeyword.GetLocation()); 494MethodSymbol method = methodArgumentInfo.Method;
Lowering\LocalRewriter\LoweredDynamicOperationFactory.cs (17)
131MethodSymbol argumentInfoFactory = GetArgumentInfoFactory(); 174MethodSymbol argumentInfoFactory = GetArgumentInfoFactory(); 237MethodSymbol argumentInfoFactory = GetArgumentInfoFactory(); 273MethodSymbol argumentInfoFactory = GetArgumentInfoFactory(); 316MethodSymbol argumentInfoFactory = GetArgumentInfoFactory(); 343MethodSymbol argumentInfoFactory = GetArgumentInfoFactory(); 375MethodSymbol argumentInfoFactory = GetArgumentInfoFactory(); 416MethodSymbol argumentInfoFactory = GetArgumentInfoFactory(); 445MethodSymbol argumentInfoFactory = GetArgumentInfoFactory(); 484MethodSymbol argumentInfoFactory = GetArgumentInfoFactory(); 519private MethodSymbol GetArgumentInfoFactory() 532return _factory.Call(null, (MethodSymbol)binderFactory, args.AsImmutableOrNull()); 559MethodSymbol argumentInfoFactory, 612MethodSymbol callSiteFactoryGeneric = _factory.WellKnownMethod(WellKnownMember.System_Runtime_CompilerServices_CallSite_T__Create); 614MethodSymbol? delegateInvoke; 643var callSiteFactoryMethod = callSiteFactoryGeneric.AsMember(callSiteType); 799MethodSymbol argumentInfoFactory,
Lowering\MethodToClassRewriter.cs (11)
98var rewrittenMethodSymbol = VisitMethodSymbol(node.Method); 105Debug.Assert(rewrittenMethodSymbol.IsMetadataVirtual(MethodSymbol.IsMetadataVirtualOption.ForceCompleteIfNeeded) 106== node.Method.IsMetadataVirtual(MethodSymbol.IsMetadataVirtualOption.ForceCompleteIfNeeded)); 132private MethodSymbol GetMethodWrapperForBaseNonVirtualCall(MethodSymbol methodBeingCalled, SyntaxNode syntax) 134var newMethod = GetOrCreateBaseFunctionWrapper(methodBeingCalled, syntax); 154private MethodSymbol GetOrCreateBaseFunctionWrapper(MethodSymbol methodBeingWrapped, SyntaxNode syntax) 158MethodSymbol? wrapper = this.CompilationState.GetMethodWrapper(methodBeingWrapped); 339MethodSymbol? method = node.MethodOpt; 428internal BaseMethodWrapperSymbol(NamedTypeSymbol containingType, MethodSymbol methodBeingWrapped, SyntaxNode syntax, string name)
Lowering\SpillSequenceSpiller.cs (5)
26MethodSymbol method, SyntaxNode syntaxNode, TypeCompilationState compilationState, 232internal static BoundStatement Rewrite(BoundStatement body, MethodSymbol method, TypeCompilationState compilationState, BindingDiagnosticBag diagnostics) 1290var hasValueOpt = node.HasValueMethodOpt; 1396var oldCurrentFunction = _F.CurrentFunction; 1405var oldCurrentFunction = _F.CurrentFunction;
Lowering\StateMachineRewriter\IteratorAndAsyncCaptureWalker.cs (4)
42private IteratorAndAsyncCaptureWalker(CSharpCompilation compilation, MethodSymbol method, BoundNode node, HashSet<Symbol> initiallyAssignedVariables) 53public static OrderedSet<Symbol> Analyze(CSharpCompilation compilation, MethodSymbol method, BoundNode node, DiagnosticBag diagnostics) 352private readonly MethodSymbol _topLevelMethod; 355public OutsideVariablesUsedInside(IteratorAndAsyncCaptureWalker analyzer, MethodSymbol topLevelMethod, IteratorAndAsyncCaptureWalker parent)
Lowering\StateMachineRewriter\MethodToStateMachineRewriter.cs (3)
21internal readonly MethodSymbol OriginalMethod; 102MethodSymbol originalMethod, 186protected override MethodSymbol CurrentMethod
Lowering\StateMachineRewriter\ResumableStateMachineStateAllocator.cs (1)
97(MethodSymbol)f.ModuleBuilderOpt.GetOrCreateHotReloadExceptionConstructorDefinition(),
Lowering\StateMachineRewriter\StateMachineRewriter.cs (10)
20protected readonly MethodSymbol method; 39MethodSymbol method, 346MethodSymbol methodToImplement, 356protected MethodSymbol OpenPropertyImplementation(MethodSymbol getterToImplement) 361var getter = prop.GetMethod; 368protected SynthesizedImplementationMethod OpenMoveNextMethodImplementation(MethodSymbol methodToImplement) 389MethodSymbol currentManagedThreadIdMethod = currentManagedThreadIdProperty.GetMethod; 402protected SynthesizedImplementationMethod GenerateIteratorGetEnumerator(MethodSymbol getEnumeratorMethod, ref BoundExpression managedThreadId, StateMachineState initialState) 519protected virtual BoundStatement InitializeParameterField(MethodSymbol getEnumeratorMethod, ParameterSymbol parameter, BoundExpression resultParameter, BoundExpression parameterProxy)
Lowering\StateMachineRewriter\StateMachineTypeSymbol.cs (3)
19public readonly MethodSymbol KickoffMethod; 21public StateMachineTypeSymbol(VariableSlotAllocator slotAllocatorOpt, TypeCompilationState compilationState, MethodSymbol kickoffMethod, int kickoffMethodOrdinal) 28private static string MakeName(VariableSlotAllocator slotAllocatorOpt, TypeCompilationState compilationState, MethodSymbol kickoffMethod, int kickoffMethodOrdinal)
Lowering\StateMachineRewriter\SynthesizedStateMachineMethod.cs (4)
26MethodSymbol interfaceMethod, 65public SynthesizedStateMachineMoveNextMethod(MethodSymbol interfaceMethod, StateMachineTypeSymbol stateMachineType) 79var kickoffMethod = StateMachineType.KickoffMethod; 113MethodSymbol interfaceMethod,
Lowering\StateMachineRewriter\SynthesizedStateMachineProperty.cs (3)
22MethodSymbol interfacePropertyGetter, 71public override MethodSymbol GetMethod 76public override MethodSymbol SetMethod
Lowering\SynthesizedMethodBaseSymbol.cs (2)
26protected readonly MethodSymbol BaseMethod; 34MethodSymbol baseMethod,
Lowering\SyntheticBoundNodeFactory.cs (47)
64private MethodSymbol? _currentFunction; 65public MethodSymbol? CurrentFunction 83private MethodSymbol? _topLevelMethod; 84public MethodSymbol? TopLevelMethod 103public SyntheticBoundNodeFactory(MethodSymbol topLevelMethod, SyntaxNode node, TypeCompilationState compilationState, BindingDiagnosticBag diagnostics, InstrumentationState? instrumentationState = null) 114public SyntheticBoundNodeFactory(MethodSymbol? topLevelMethodOpt, NamedTypeSymbol? currentClassOpt, SyntaxNode node, TypeCompilationState compilationState, BindingDiagnosticBag diagnostics, InstrumentationState? instrumentationState = null) 283var accessor = property.GetOwnOrInheritedGetMethod(); 291var accessor = property.GetOwnOrInheritedGetMethod(); 341public MethodSymbol? WellKnownMethod(WellKnownMember wm, bool isOptional) 343return (MethodSymbol?)WellKnownMember(wm, isOptional); 346public MethodSymbol WellKnownMethod(WellKnownMember wm) 348return (MethodSymbol)WellKnownMember(wm, isOptional: false)!; 399public MethodSymbol SpecialMethod(SpecialMember sm) 401var result = (MethodSymbol?)SpecialMember(sm, isOptional: false); 406public MethodSymbol? SpecialMethod(SpecialMember sm, bool isOptional) 408return (MethodSymbol?)SpecialMember(sm, isOptional); 501return Block(locals, ImmutableArray<MethodSymbol>.CastUp(localFunctions), statements); 504public BoundBlock Block(ImmutableArray<LocalSymbol> locals, ImmutableArray<MethodSymbol> localFunctions, ImmutableArray<BoundStatement> statements) 655public ParameterSymbol SynthesizedParameter(TypeSymbol type, string name, MethodSymbol? container = null, int ordinal = 0) 764var ctor = type.InstanceConstructors.Single(c => c.ParameterCount == args.Length); 768public BoundObjectCreationExpression New(MethodSymbol ctor, params BoundExpression[] args) 773var ctor = type.InstanceConstructors.Single(c => c.ParameterCount == args.Length); 777public BoundObjectCreationExpression New(MethodSymbol ctor, ImmutableArray<BoundExpression> args) 780public BoundObjectCreationExpression New(MethodSymbol constructor, ImmutableArray<BoundExpression> arguments, ImmutableArray<RefKind> argumentRefKinds) 797var ctor = WellKnownMethod(wm); 816public BoundExpression StaticCall(TypeSymbol receiver, MethodSymbol method, params BoundExpression[] args) 826public BoundExpression StaticCall(MethodSymbol method, ImmutableArray<BoundExpression> args) 831MethodSymbol methodSymbol = WellKnownMethod(method); 839MethodSymbol methodSymbol = WellKnownMethod(method); 850MethodSymbol methodSymbol = SpecialMethod(method); 855public BoundCall Call(BoundExpression? receiver, MethodSymbol method) 860public BoundCall Call(BoundExpression? receiver, MethodSymbol method, BoundExpression arg0, bool useStrictArgumentRefKinds = false) 865public BoundCall Call(BoundExpression? receiver, MethodSymbol method, BoundExpression arg0, BoundExpression arg1, bool useStrictArgumentRefKinds = false) 870public BoundCall Call(BoundExpression? receiver, MethodSymbol method, params BoundExpression[] args) 878public BoundCall Call(BoundExpression? receiver, MethodSymbol method, ImmutableArray<BoundExpression> args, bool useStrictArgumentRefKinds = false) 890public static ImmutableArray<RefKind> ArgumentRefKindsFromParameterRefKinds(MethodSymbol method, bool useStrictArgumentRefKinds) 920public BoundCall Call(BoundExpression? receiver, MethodSymbol method, ImmutableArray<RefKind> refKinds, ImmutableArray<BoundExpression> args) 1224var ctor = baseType.InstanceConstructors.Single(c => c.ParameterCount == 0); 1289MethodSymbol getTypeFromHandle; 1331internal BoundExpression ConstructorInfo(MethodSymbol ctor) 1349public BoundExpression MethodDefIndex(MethodSymbol method) 1431public BoundExpression MethodInfo(MethodSymbol method, TypeSymbol systemReflectionMethodInfo) 1466private MethodSymbol GetMethodFromHandleMethod(NamedTypeSymbol methodContainer, TypeSymbol systemReflectionMethodOrConstructorInfo) 1490private MethodSymbol GetFieldFromHandleMethod(NamedTypeSymbol fieldContainer) 1571MethodSymbol? arrayEmpty = SpecialMethod(CodeAnalysis.SpecialMember.System_Array__Empty, isOptional: true); 1680MethodSymbol? containingMethod = this.CurrentFunction;
Operations\CSharpOperationFactory.cs (9)
442MethodSymbol targetMethod = boundCall.Method; 703MethodSymbol constructor = boundObjectCreationExpression.Constructor; 740MethodSymbol? constructor = boundWithExpression.CloneMethod; 884MethodSymbol? accessor = isObjectOrCollectionInitializer || property.RefKind != RefKind.None 925MethodSymbol addMethod = boundCollectionElementInitializer.AddMethod; 1160private IMethodReferenceOperation CreateBoundMethodGroupSingleMethodOperation(BoundMethodGroup boundMethodGroup, MethodSymbol methodSymbol, bool suppressVirtualCalls) 1238static MethodSymbol? getConstructMethod(CSharpCompilation compilation, BoundCollectionExpression expr) 1363var method = boundCompoundAssignmentOperator.Operator.Method; 1374private static TypeParameterSymbol? GetConstrainedToTypeForOperator(MethodSymbol? operatorMethod, TypeSymbol? constrainedToTypeOpt)
Operations\CSharpOperationFactory_Methods.cs (2)
114private bool IsCallVirtual(MethodSymbol? targetMethod, BoundExpression? receiver) 121private bool IsMethodInvalid(LookupResultKind resultKind, MethodSymbol targetMethod) =>
Symbols\AnonymousTypes\AnonymousTypeManager.SymbolCollection.cs (14)
149public MethodSymbol System_Object__Equals 151get { return this.Compilation.GetSpecialTypeMember(SpecialMember.System_Object__Equals) as MethodSymbol; } 154public MethodSymbol System_Object__ToString 156get { return this.Compilation.GetSpecialTypeMember(SpecialMember.System_Object__ToString) as MethodSymbol; } 159public MethodSymbol System_Object__GetHashCode 161get { return this.Compilation.GetSpecialTypeMember(SpecialMember.System_Object__GetHashCode) as MethodSymbol; } 164public MethodSymbol System_Collections_Generic_EqualityComparer_T__Equals 166get { return this.Compilation.GetWellKnownTypeMember(WellKnownMember.System_Collections_Generic_EqualityComparer_T__Equals) as MethodSymbol; } 169public MethodSymbol System_Collections_Generic_EqualityComparer_T__GetHashCode 171get { return this.Compilation.GetWellKnownTypeMember(WellKnownMember.System_Collections_Generic_EqualityComparer_T__GetHashCode) as MethodSymbol; } 174public MethodSymbol System_Collections_Generic_EqualityComparer_T__get_Default 176get { return this.Compilation.GetWellKnownTypeMember(WellKnownMember.System_Collections_Generic_EqualityComparer_T__get_Default) as MethodSymbol; } 179public MethodSymbol System_String__Format_IFormatProvider 181get { return this.Compilation.GetSpecialTypeMember(SpecialMember.System_String__Format_IFormatProvider) as MethodSymbol; }
Symbols\AnonymousTypes\AnonymousTypeManager.Templates.cs (4)
756internal static ImmutableArray<MethodSymbol> GetAnonymousTypeHiddenMethods(NamedTypeSymbol type) 777internal static MethodSymbol TranslateAnonymousTypeMethodSymbol(MethodSymbol method) 787return ((MethodSymbol)member).AsMember(translatedType);
Symbols\AnonymousTypes\PublicSymbols\AnonymousManager.TypeOrDelegatePublicSymbol.cs (4)
287internal sealed override IEnumerable<(MethodSymbol Body, MethodSymbol Implemented)> SynthesizedInterfaceMethodImpls() 289return SpecializedCollections.EmptyEnumerable<(MethodSymbol Body, MethodSymbol Implemented)>();
Symbols\AnonymousTypes\SynthesizedSymbols\AnonymousType.DelegateTemplateSymbol.cs (4)
216private static ImmutableArray<Symbol> CreateMembers(MethodSymbol constructor, MethodSymbol invokeMethod) 219public new MethodSymbol DelegateInvokeMethod 220=> (MethodSymbol)_members[1];
Symbols\AnonymousTypes\SynthesizedSymbols\AnonymousType.PropertySymbol.cs (2)
146public override MethodSymbol SetMethod 194public override MethodSymbol GetMethod
Symbols\AnonymousTypes\SynthesizedSymbols\AnonymousType.SynthesizedMethodBase.cs (2)
123public sealed override ImmutableArray<MethodSymbol> ExplicitInterfaceImplementations 125get { return ImmutableArray<MethodSymbol>.Empty; }
Symbols\AnonymousTypes\SynthesizedSymbols\AnonymousType.TemplateSymbol.cs (2)
31internal readonly ImmutableArray<MethodSymbol> SpecialMembers; 87this.SpecialMembers = ImmutableArray.Create<MethodSymbol>(
Symbols\AnonymousTypes\SynthesizedSymbols\AnonymousType.TypeOrDelegateTemplateSymbol.cs (4)
333internal sealed override IEnumerable<(MethodSymbol Body, MethodSymbol Implemented)> SynthesizedInterfaceMethodImpls() 335return SpecializedCollections.EmptyEnumerable<(MethodSymbol Body, MethodSymbol Implemented)>();
Symbols\ArrayTypeSymbol.cs (4)
490internal sealed override IEnumerable<(MethodSymbol Body, MethodSymbol Implemented)> SynthesizedInterfaceMethodImpls() 492return SpecializedCollections.EmptyEnumerable<(MethodSymbol Body, MethodSymbol Implemented)>();
Symbols\Attributes\AttributeData.cs (1)
35public new abstract MethodSymbol? AttributeConstructor { get; }
Symbols\Attributes\PEAttributeData.cs (3)
23private MethodSymbol? _lazyAttributeConstructor; 43public override MethodSymbol? AttributeConstructor 81MethodSymbol? attributeConstructor;
Symbols\Attributes\RetargetingAttributeData.cs (3)
19private readonly MethodSymbol? _attributeConstructor; 26MethodSymbol? attributeConstructor, 41public override MethodSymbol? AttributeConstructor => _attributeConstructor;
Symbols\Attributes\SourceAttributeData.cs (7)
22private readonly MethodSymbol? _attributeConstructor; 34MethodSymbol? attributeConstructor, 61internal SourceAttributeData(CSharpCompilation compilation, AttributeSyntax attributeSyntax, NamedTypeSymbol attributeClass, MethodSymbol? attributeConstructor, bool hasErrors) 79MethodSymbol? attributeConstructor, 97public override MethodSymbol? AttributeConstructor 224internal static int GetTargetAttributeSignatureIndex(CSharpCompilation compilation, NamedTypeSymbol attributeClass, MethodSymbol? attributeConstructor, AttributeDescription description) 231var ctor = attributeConstructor;
Symbols\Compilation_WellKnownMembers.cs (13)
75/// <see cref="MethodSymbol.AsMember"/> to construct an instantiation. 245internal static Symbol? GetRuntimeMember(NamedTypeSymbol declaringType, in MemberDescriptor descriptor, SignatureComparer<MethodSymbol, FieldSymbol, PropertySymbol, TypeSymbol, ParameterSymbol> comparer, AssemblySymbol? accessWithinOpt) 251internal static Symbol? GetRuntimeMember(ImmutableArray<Symbol> members, in MemberDescriptor descriptor, SignatureComparer<MethodSymbol, FieldSymbol, PropertySymbol, TypeSymbol, ParameterSymbol> comparer, AssemblySymbol? accessWithinOpt) 305MethodSymbol method = (MethodSymbol)member; 394var ctorSymbol = (MethodSymbol)Binder.GetWellKnownTypeMember(this, constructor, useSiteInfo: out _, isOptional: true); 441var ctorSymbol = (MethodSymbol)this.GetSpecialTypeMember(constructor); 1061internal class SpecialMembersSignatureComparer : SignatureComparer<MethodSymbol, FieldSymbol, PropertySymbol, TypeSymbol, ParameterSymbol> 1131protected override ImmutableArray<ParameterSymbol> GetParameters(MethodSymbol method) 1151protected override TypeSymbol GetReturnType(MethodSymbol method) 1175protected override bool IsByRefMethod(MethodSymbol method)
Symbols\ConstraintsHelper.cs (7)
345this MethodSymbol containingSymbol, 375this MethodSymbol containingSymbol, 803this MethodSymbol method, 854MethodSymbol method, 865((MethodSymbol)method.OriginalDefinition).TypeParameters, 1507foreach (var constructor in type.InstanceConstructors) 1586public static bool RequiresChecking(MethodSymbol method)
Symbols\ConstructedMethodSymbol.cs (3)
18internal ConstructedMethodSymbol(MethodSymbol constructedFrom, ImmutableArray<TypeWithAnnotations> typeArgumentsWithAnnotations) 20map: new TypeMap(constructedFrom.ContainingType, ((MethodSymbol)constructedFrom.OriginalDefinition).TypeParameters, typeArgumentsWithAnnotations), 21originalDefinition: (MethodSymbol)constructedFrom.OriginalDefinition,
Symbols\ConversionSignatureComparer.cs (4)
12internal sealed class ConversionSignatureComparer : IEqualityComparer<MethodSymbol> 27public bool Equals(MethodSymbol member1, MethodSymbol member2) 56public int GetHashCode(MethodSymbol member)
Symbols\DynamicTypeSymbol.cs (4)
255internal override IEnumerable<(MethodSymbol Body, MethodSymbol Implemented)> SynthesizedInterfaceMethodImpls() 257return SpecializedCollections.EmptyEnumerable<(MethodSymbol Body, MethodSymbol Implemented)>();
Symbols\ErrorMethodSymbol.cs (2)
129public override ImmutableArray<MethodSymbol> ExplicitInterfaceImplementations 131get { return ImmutableArray<MethodSymbol>.Empty; }
Symbols\ErrorPropertySymbol.cs (2)
57public override MethodSymbol GetMethod { get { return null; } } 60public override MethodSymbol SetMethod { get { return null; } }
Symbols\ErrorTypeSymbol.cs (4)
570internal sealed override IEnumerable<(MethodSymbol Body, MethodSymbol Implemented)> SynthesizedInterfaceMethodImpls() 572return SpecializedCollections.EmptyEnumerable<(MethodSymbol Body, MethodSymbol Implemented)>();
Symbols\EventSymbol.cs (3)
63public abstract MethodSymbol? AddMethod { get; } 68public abstract MethodSymbol? RemoveMethod { get; } 162MethodSymbol? accessor = AddMethod ?? RemoveMethod;
Symbols\EventSymbolExtensions.cs (1)
15internal static MethodSymbol GetOwnOrInheritedAccessor(this EventSymbol @event, bool isAdder)
Symbols\ExtendedErrorTypeSymbol.cs (1)
320return ((MethodSymbol)symbol).Arity;
Symbols\Extensions\RewrittenLambdaOrLocalFunctionSymbol.cs (1)
15public RewrittenLambdaOrLocalFunctionSymbol(MethodSymbol lambdaOrLocalFunctionSymbol, RewrittenMethodSymbol containingMethod)
Symbols\Extensions\RewrittenMethodSymbol.cs (5)
13protected readonly MethodSymbol _originalMethod; 18protected RewrittenMethodSymbol(MethodSymbol originalMethod, TypeMap typeMap, ImmutableArray<TypeParameterSymbol> typeParametersToAlphaRename) 30public sealed override MethodSymbol UnderlyingMethod => _originalMethod; 74public sealed override ImmutableArray<MethodSymbol> ExplicitInterfaceImplementations => ImmutableArray<MethodSymbol>.Empty;
Symbols\Extensions\SourceExtensionImplementationMethodSymbol.cs (1)
20public SourceExtensionImplementationMethodSymbol(MethodSymbol sourceMethod)
Symbols\FunctionPointers\FunctionPointerMethodSymbol.cs (2)
824public override ImmutableArray<MethodSymbol> ExplicitInterfaceImplementations => ImmutableArray<MethodSymbol>.Empty;
Symbols\FunctionPointers\FunctionPointerTypeSymbol.cs (4)
222internal override IEnumerable<(MethodSymbol Body, MethodSymbol Implemented)> SynthesizedInterfaceMethodImpls() 224return SpecializedCollections.EmptyEnumerable<(MethodSymbol Body, MethodSymbol Implemented)>();
Symbols\FunctionTypeSymbol.cs (2)
199internal override IEnumerable<(MethodSymbol Body, MethodSymbol Implemented)> SynthesizedInterfaceMethodImpls() => throw ExceptionUtilities.Unreachable();
Symbols\LabelSymbol.cs (3)
139/// It should be the <see cref="MethodSymbol"/> containing the label in its body. 141public virtual MethodSymbol ContainingMethod 151/// It should be the <see cref="MethodSymbol"/> containing the label in its body.
Symbols\MemberSignatureComparer.cs (2)
869return ((MethodSymbol)member).CallingConvention; 880return member.Kind == SymbolKind.Method && ((MethodSymbol)member).IsVararg;
Symbols\MemberSymbolExtensions.cs (49)
40return ((MethodSymbol)member).Parameters; 58return ((MethodSymbol)member).ParameterTypesWithAnnotations; 73return ((MethodSymbol)member).IsVararg; 95internal static bool GetIsNewExtensionMember(this MethodSymbol member) 134if (member is MethodSymbol method) 153if (member is MethodSymbol method) 206if (member is MethodSymbol method) 249if (member is MethodSymbol method) 252MethodSymbol? constructed; 283constructed = (MethodSymbol?)SourceNamedTypeSymbol.GetCompatibleSubstitutedMember(compilation, constructed, receiverType); 304static bool checkConstraintsIncludingExtension(MethodSymbol symbol, CSharpCompilation compilation, TypeConversions conversions) 322return ((MethodSymbol)member).ParameterRefKinds; 337return ((MethodSymbol)member).ParameterCount; 378bool isImplementableAndNotPublic(MethodSymbol accessor) 384public static bool IsImplementable(this MethodSymbol methodOpt) 389public static bool IsAccessor(this MethodSymbol methodSymbol) 396return symbol.Kind == SymbolKind.Method && IsAccessor((MethodSymbol)symbol); 399public static bool IsIndexedPropertyAccessor(this MethodSymbol methodSymbol) 405public static bool IsOperator(this MethodSymbol methodSymbol) 412return symbol.Kind == SymbolKind.Method && IsOperator((MethodSymbol)symbol); 427return symbol.Kind == SymbolKind.Method && ((MethodSymbol)symbol).MethodKind == MethodKind.Conversion; 434public static int CustomModifierCount(this MethodSymbol method) 466return ((MethodSymbol)m).CustomModifierCount(); 508return ((MethodSymbol)s).AsMember(newOwner); 528return ((MethodSymbol)symbol).Arity; 561return ((MethodSymbol)symbol).TypeParameters; 579return ((MethodSymbol)symbol).TypeArgumentsWithAnnotations.SelectAsArray(TypeMap.AsTypeSymbol); 592internal static bool IsConstructor(this MethodSymbol method) 607internal static bool HasThisConstructorInitializer(this MethodSymbol method, out ConstructorInitializerSyntax initializerSyntax) 627internal static bool IncludeFieldInitializersInBody(this MethodSymbol methodSymbol) 649foreach (var constructor in type.InstanceConstructors) 672internal static bool IsParameterlessConstructor(this MethodSymbol method) 686internal static bool IsDefaultValueTypeConstructor(this MethodSymbol method) 697internal static bool ShouldEmit(this MethodSymbol method) 727internal static MethodSymbol GetOwnOrInheritedAddMethod(this EventSymbol @event) 731MethodSymbol addMethod = @event.AddMethod; 751internal static MethodSymbol GetOwnOrInheritedRemoveMethod(this EventSymbol @event) 755MethodSymbol removeMethod = @event.RemoveMethod; 772return ((MethodSymbol)member).IsExplicitInterfaceImplementation; 824MethodSymbol method => method.PartialImplementationPart, 836MethodSymbol method => method.PartialDefinitionPart, 849var method = (MethodSymbol)member; 866return ((MethodSymbol)member).ExplicitInterfaceImplementations.Cast<MethodSymbol, Symbol>(); 881return ((MethodSymbol)member).OverriddenMethod; 896var method = (MethodSymbol)member; 932member = ((MethodSymbol)member).AssociatedSymbol ?? member;
Symbols\MergedNamespaceSymbol.cs (1)
292internal override void GetExtensionMethods(ArrayBuilder<MethodSymbol> methods, string name, int arity, LookupOptions options)
Symbols\Metadata\PE\MemberRefMetadataDecoder.cs (5)
197private static MethodSymbol FindMethodBySignature(TypeSymbol targetTypeSymbol, string targetMemberName, SignatureHeader targetMemberSignatureHeader, int targetMemberTypeParamCount, ParamInfo<TypeSymbol>[] targetParamInfo) 201var method = member as MethodSymbol; 216private static bool MethodSymbolMatchesParamInfo(MethodSymbol candidateMethod, ParamInfo<TypeSymbol>[] targetParamInfo) 275private static bool ReturnTypesMatch(MethodSymbol candidateMethod, TypeMap candidateMethodTypeMap, ref ParamInfo<TypeSymbol> targetReturnParam)
Symbols\Metadata\PE\MetadataDecoder.cs (4)
21internal class MetadataDecoder : MetadataDecoder<PEModuleSymbol, TypeSymbol, MethodSymbol, FieldSymbol, Symbol> 488protected override MethodSymbol FindMethodSymbolInType(TypeSymbol typeSymbol, MethodDefinitionHandle targetMethodDef) 509return (MethodSymbol)memberRefDecoder.FindMember(targetMethodDef, methodsOnly: true); 602protected override MethodDefinitionHandle GetMethodHandle(MethodSymbol method)
Symbols\Metadata\PE\PEEventSymbol.cs (2)
334public override MethodSymbol AddMethod 339public override MethodSymbol RemoveMethod
Symbols\Metadata\PE\PEMethodSymbol.cs (8)
316public MethodSymbol _lazyExplicitClassOverride; 389private ImmutableArray<MethodSymbol> _lazyExplicitMethodImplementations; 1339public override ImmutableArray<MethodSymbol> ExplicitInterfaceImplementations 1381var explicitInterfaceImplementationsBuilder = ArrayBuilder<MethodSymbol>.GetInstance(); 1392MethodSymbol uniqueClassOverride = null; 1393foreach (MethodSymbol method in explicitlyOverriddenMethods) 1427internal MethodSymbol ExplicitlyOverriddenClassMethod 1671static (name, value, isField) => MethodSymbol.TryDecodeUnmanagedCallersOnlyCallConvsField(name, value, isField, location: null, diagnostics: null));
Symbols\Metadata\PE\PENamedTypeSymbol.cs (19)
187public ConcurrentDictionary<MethodSymbol, MethodSymbol?>? LazyImplementationMap; 407var methodSymbol = getMarkerMethodSymbol(@this, uncommon); 422static MethodSymbol getMarkerMethodSymbol(PENamedTypeSymbol @this, ExtensionInfo uncommon) 439public sealed override MethodSymbol? TryGetCorrespondingExtensionImplementationMethod(MethodSymbol method) 459Interlocked.CompareExchange(ref uncommon.LazyImplementationMap, new ConcurrentDictionary<MethodSymbol, MethodSymbol?>(ReferenceEqualityComparer.Instance), null); 464static MethodSymbol? findCorrespondingExtensionImplementationMethod(MethodSymbol method, PENamedTypeSymbol @this) 470if (member is not MethodSymbol { IsStatic: true } candidate) 1256internal override IEnumerable<MethodSymbol> GetMethodsToEmit() 1272var method = (MethodSymbol)members[index]; 1542foreach (MethodSymbol method in nonFieldMembers) 2733internal sealed override IEnumerable<(MethodSymbol Body, MethodSymbol Implemented)> SynthesizedInterfaceMethodImpls() 2735return SpecializedCollections.EmptyEnumerable<(MethodSymbol Body, MethodSymbol Implemented)>();
Symbols\Metadata\PE\PEParameterSymbol.cs (1)
885case "" when !ContainingSymbol.RequiresInstanceReceiver() || ContainingSymbol is MethodSymbol { MethodKind: MethodKind.Constructor or MethodKind.DelegateInvoke }:
Symbols\Metadata\PE\PEPropertySymbol.cs (4)
488MethodSymbol getMethod = curr.GetMethod; 500MethodSymbol setMethod = curr.SetMethod; 695public override MethodSymbol GetMethod 700public override MethodSymbol SetMethod
Symbols\Metadata\PE\PETypeParameterSymbol.cs (1)
670bool inherited = (_containingSymbol.Kind == SymbolKind.Method) && ((MethodSymbol)_containingSymbol).IsOverride;
Symbols\MethodSymbol.cs (31)
28internal const MethodSymbol None = null; 45public new virtual MethodSymbol OriginalDefinition 293/// True if this <see cref="MethodSymbol"/> type supports retrieving the this parameter 330public virtual MethodSymbol ConstructedFrom 378public abstract ImmutableArray<MethodSymbol> ExplicitInterfaceImplementations { get; } 414internal MethodSymbol GetLeastOverriddenMethod(NamedTypeSymbol accessingTypeOpt) 425private MethodSymbol GetLeastOverriddenMethodCore(NamedTypeSymbol accessingTypeOpt, bool requireSameReturnType) 428MethodSymbol m = this; 451MethodSymbol overridden = m.OverriddenMethod; 473internal MethodSymbol GetConstructedLeastOverriddenMethod(NamedTypeSymbol accessingTypeOpt, bool requireSameReturnType) 475var m = this.ConstructedFrom.GetLeastOverriddenMethodCore(accessingTypeOpt, requireSameReturnType); 487public MethodSymbol OverriddenMethod 495return (MethodSymbol)OverriddenOrHiddenMembers.GetOverriddenMember(); 498return (MethodSymbol)OverriddenOrHiddenMembersResult.GetOverriddenMember(this, OriginalDefinition.OverriddenMethod); 537var overriddenMethod = this.OverriddenMethod; 575var overriddenMethod = this.OverriddenMethod; 738public MethodSymbol ReduceExtensionMethod(TypeSymbol receiverType, CSharpCompilation compilation) 750public MethodSymbol ReduceExtensionMethod(TypeSymbol receiverType, CSharpCompilation compilation, out bool wasFullyInferred) 770public MethodSymbol ReduceExtensionMethod() 779internal virtual MethodSymbol CallsiteReducedFromMethod 789public virtual MethodSymbol PartialImplementationPart 798public virtual MethodSymbol PartialDefinitionPart 807public virtual MethodSymbol ReducedFrom 841public MethodSymbol Construct(params TypeSymbol[] typeArguments) 852public MethodSymbol Construct(ImmutableArray<TypeSymbol> typeArguments) 857internal MethodSymbol Construct(ImmutableArray<TypeWithAnnotations> typeArguments) 887internal MethodSymbol AsMember(NamedTypeSymbol newOwner) 1055static bool isGenericMethod([DisallowNull] MethodSymbol? method) 1064method = method.ContainingSymbol as MethodSymbol; 1269protected static void AddRequiredMembersMarkerAttributes(ref ArrayBuilder<CSharpAttributeData> attributes, MethodSymbol methodToAttribute) 1292public MethodSymbol? TryGetCorrespondingExtensionImplementationMethod()
Symbols\MethodSymbolExtensions.cs (17)
16public static bool IsParams(this MethodSymbol method) 21internal static bool IsSynthesizedLambda(this MethodSymbol method) 39public static bool IsRuntimeFinalizer(this MethodSymbol method, bool skipFirstMethodKindCheck = false) 46method.ParameterCount != 0 || method.Arity != 0 || !method.IsMetadataVirtual(MethodSymbol.IsMetadataVirtualOption.IgnoreInterfaceImplementationChanges)) 84public static MethodSymbol ConstructIfGeneric(this MethodSymbol method, ImmutableArray<TypeWithAnnotations> typeArguments) 95public static bool CanBeHiddenByMember(this MethodSymbol hiddenMethod, Symbol hidingMember) 124private static bool CanBeHiddenByMethodPropertyOrType(MethodSymbol method, Symbol hidingMember) 135return !method.IsStatic && hidingMember is MethodSymbol { IsStatic: false, MethodKind: MethodKind.UserDefinedOperator }; 151public static bool IsAsyncReturningVoid(this MethodSymbol method) 159public static bool IsAsyncEffectivelyReturningTask(this MethodSymbol method, CSharpCompilation compilation) 169public static bool IsAsyncEffectivelyReturningGenericTask(this MethodSymbol method, CSharpCompilation compilation) 179public static bool IsAsyncReturningIAsyncEnumerable(this MethodSymbol method, CSharpCompilation compilation) 188public static bool IsAsyncReturningIAsyncEnumerator(this MethodSymbol method, CSharpCompilation compilation) 194internal static CSharpSyntaxNode ExtractReturnTypeSyntax(this MethodSymbol method) 218internal static bool IsValidUnscopedRefAttributeTarget(this MethodSymbol method) 227internal static bool HasUnscopedRefAttributeOnMethodOrProperty(this MethodSymbol? method)
Symbols\NamedTypeSymbol.cs (20)
175public MethodSymbol? DelegateInvokeMethod 190var method = methods[0] as MethodSymbol; 209internal void AddOperators(string name, ArrayBuilder<MethodSymbol> operators) 217if (candidate is MethodSymbol { MethodKind: MethodKind.UserDefinedOperator or MethodKind.Conversion } method) 227public ImmutableArray<MethodSymbol> InstanceConstructors 238public ImmutableArray<MethodSymbol> StaticConstructors 249public ImmutableArray<MethodSymbol> Constructors 257private ImmutableArray<MethodSymbol> GetConstructors(bool includeInstance, bool includeStatic) 270return ImmutableArray<MethodSymbol>.Empty; 273ArrayBuilder<MethodSymbol> constructors = ArrayBuilder<MethodSymbol>.GetInstance(); 276if (candidate is MethodSymbol method) 284if (candidate is MethodSymbol method) 334internal void GetExtensionMethods(ArrayBuilder<MethodSymbol> methods, string nameOpt, int arity, LookupOptions options) 342internal void DoGetExtensionMethods(ArrayBuilder<MethodSymbol> methods, string nameOpt, int arity, LookupOptions options) 352var method = (MethodSymbol)member; 375public virtual MethodSymbol? TryGetCorrespondingExtensionImplementationMethod(MethodSymbol method)
Symbols\NamespaceSymbol.cs (1)
337internal virtual void GetExtensionMethods(ArrayBuilder<MethodSymbol> methods, string nameOpt, int arity, LookupOptions options)
Symbols\NativeIntegerTypeSymbol.cs (12)
90case MethodSymbol underlyingMethod: 279internal override IEnumerable<(MethodSymbol Body, MethodSymbol Implemented)> SynthesizedInterfaceMethodImpls() 281return SpecializedCollections.EmptyEnumerable<(MethodSymbol Body, MethodSymbol Implemented)>(); 339internal NativeIntegerMethodSymbol(NativeIntegerTypeSymbol container, MethodSymbol underlyingMethod, NativeIntegerPropertySymbol? associatedSymbol) 350public override MethodSymbol UnderlyingMethod { get; } 371public override ImmutableArray<MethodSymbol> ExplicitInterfaceImplementations => ImmutableArray<MethodSymbol>.Empty; 468Func<NativeIntegerTypeSymbol, NativeIntegerPropertySymbol, MethodSymbol?, NativeIntegerMethodSymbol?> getAccessor) : 486public override MethodSymbol? GetMethod { get; } 488public override MethodSymbol? SetMethod { get; }
Symbols\ObsoleteAttributeHelpers.cs (1)
87symbol = ((MethodSymbol)symbol).AssociatedSymbol;
Symbols\OverriddenOrHiddenMembersHelpers.cs (36)
24internal static OverriddenOrHiddenMembersResult MakeOverriddenOrHiddenMembers(this MethodSymbol member) 96MethodSymbol accessor = member as MethodSymbol; 153MethodSymbol method => KnownOverriddenClassMethod(method), 197private static MethodSymbol KnownOverriddenClassMethod(MethodSymbol method) => 241private static OverriddenOrHiddenMembersResult MakePropertyAccessorOverriddenOrHiddenMembers(MethodSymbol accessor, PropertySymbol associatedProperty) 248MethodSymbol overriddenAccessor = null; 260MethodSymbol correspondingAccessor = accessorIsGetter ? propertyHiddenByProperty.GetMethod : propertyHiddenByProperty.SetMethod; 272MethodSymbol correspondingAccessor = accessorIsGetter ? 294bool isAccessorOverride(MethodSymbol accessor, MethodSymbol overriddenAccessor) 333private static OverriddenOrHiddenMembersResult MakeEventAccessorOverriddenOrHiddenMembers(MethodSymbol accessor, EventSymbol associatedEvent) 340MethodSymbol overriddenAccessor = null; 352MethodSymbol correspondingAccessor = accessorIsAdder ? eventHiddenByEvent.AddMethod : eventHiddenByEvent.RemoveMethod; 364MethodSymbol correspondingAccessor = eventOverriddenByEvent.GetOwnOrInheritedAccessor(accessorIsAdder); 568else if (otherMember.IsAccessor() && !((MethodSymbol)otherMember).IsIndexedPropertyAccessor()) 756if (hiddenMember.Kind != SymbolKind.Method || ((MethodSymbol)hiddenMember).CanBeHiddenByMember(hidingMember)) 880MethodSymbol methodSymbol = (MethodSymbol)member; 881return MethodSymbol.CanOverrideOrHide(methodSymbol.MethodKind) && ReferenceEquals(methodSymbol, methodSymbol.ConstructedFrom); 892MethodSymbol method = (MethodSymbol)member; 914MethodSymbol method = (MethodSymbol)member; 931internal static bool RequiresExplicitOverride(this MethodSymbol method, out bool warnAmbiguous) 937MethodSymbol csharpOverriddenMethod = method.OverriddenMethod; 941MethodSymbol runtimeOverriddenMethod = method.GetFirstRuntimeOverriddenMethodIgnoringNewSlot(out bool wasAmbiguous); 989internal static bool MethodHasRuntimeCollision(this MethodSymbol method) 1013internal static MethodSymbol GetFirstRuntimeOverriddenMethodIgnoringNewSlot(this MethodSymbol method, out bool wasAmbiguous) 1019const MethodSymbol.IsMetadataVirtualOption ignoreInterfaceImplementationChanges = MethodSymbol.IsMetadataVirtualOption.IgnoreInterfaceImplementationChanges; 1031MethodSymbol candidate = null; 1038MethodSymbol overridden = (MethodSymbol)otherMember;
Symbols\PointerTypeSymbol.cs (4)
317internal sealed override IEnumerable<(MethodSymbol Body, MethodSymbol Implemented)> SynthesizedInterfaceMethodImpls() 319return SpecializedCollections.EmptyEnumerable<(MethodSymbol Body, MethodSymbol Implemented)>();
Symbols\PropertyOrEventSymbolExtensions.cs (7)
22internal static ISet<PropertySymbol> GetPropertiesForExplicitlyImplementedAccessor(MethodSymbol accessor) 27internal static ISet<EventSymbol> GetEventsForExplicitlyImplementedAccessor(MethodSymbol accessor) 33private static ISet<T> GetSymbolsForExplicitlyImplementedAccessor<T>(MethodSymbol accessor) where T : Symbol 40ImmutableArray<MethodSymbol> implementedAccessors = accessor.ExplicitInterfaceImplementations; 47foreach (var implementedAccessor in implementedAccessors) 61internal static Accessibility GetDeclaredAccessibilityFromAccessors(MethodSymbol accessor1, MethodSymbol accessor2)
Symbols\PropertySymbol.cs (3)
205public abstract MethodSymbol GetMethod 213public abstract MethodSymbol SetMethod 257MethodSymbol accessor = GetMethod ?? SetMethod;
Symbols\PropertySymbolExtensions.cs (4)
22public static MethodSymbol? GetOwnOrInheritedGetMethod(this PropertySymbol? property) 26MethodSymbol getMethod = property.GetMethod; 42public static MethodSymbol? GetOwnOrInheritedSetMethod(this PropertySymbol? property) 46MethodSymbol setMethod = property.SetMethod;
Symbols\PublicModel\MethodSymbol.cs (3)
18private readonly Symbols.MethodSymbol _underlying; 24public MethodSymbol(Symbols.MethodSymbol underlying) 31internal Symbols.MethodSymbol UnderlyingMethodSymbol => _underlying;
Symbols\ReducedExtensionMethodSymbol.cs (15)
24private readonly MethodSymbol _reducedFrom; 37public static MethodSymbol Create(MethodSymbol method, TypeSymbol receiverType, CSharpCompilation compilation, out bool wasFullyInferred) 72public static MethodSymbol Create(MethodSymbol method) 77var constructedFrom = method.ConstructedFrom; 91private ReducedExtensionMethodSymbol(MethodSymbol reducedFrom) 112internal static MethodSymbol InferExtensionMethodTypeArguments(MethodSymbol method, TypeSymbol thisType, CSharpCompilation compilation, 241internal override MethodSymbol CallsiteReducedFromMethod 272public override MethodSymbol ReducedFrom 277public override MethodSymbol ConstructedFrom 376public override MethodSymbol OriginalDefinition 541public override ImmutableArray<MethodSymbol> ExplicitInterfaceImplementations 543get { return ImmutableArray<MethodSymbol>.Empty; }
Symbols\Retargeting\RetargetingEventSymbol.cs (2)
57public override MethodSymbol? AddMethod 67public override MethodSymbol? RemoveMethod
Symbols\Retargeting\RetargetingMethodSymbol.cs (10)
34private readonly MethodSymbol _underlyingMethod; 52private ImmutableArray<MethodSymbol> _lazyExplicitInterfaceImplementations; 59public RetargetingMethodSymbol(RetargetingModuleSymbol retargetingModule, MethodSymbol underlyingMethod) 85public override MethodSymbol UnderlyingMethod 298public override ImmutableArray<MethodSymbol> ExplicitInterfaceImplementations 307default(ImmutableArray<MethodSymbol>)); 313private ImmutableArray<MethodSymbol> RetargetExplicitInterfaceImplementations() 324var builder = ArrayBuilder<MethodSymbol>.GetInstance(); 328var retargeted = this.RetargetingTranslator.Retarget(impls[i], MemberSignatureComparer.RetargetedExplicitImplementationComparer); 341internal MethodSymbol ExplicitlyOverriddenClassMethod
Symbols\Retargeting\RetargetingNamedTypeSymbol.cs (11)
112public override MethodSymbol TryGetCorrespondingExtensionImplementationMethod(MethodSymbol method) 120var underlyingImplementation = _underlyingType.TryGetCorrespondingExtensionImplementationMethod(((RetargetingMethodSymbol)method).UnderlyingMethod); 180internal override IEnumerable<MethodSymbol> GetMethodsToEmit() 184foreach (MethodSymbol method in _underlyingType.GetMethodsToEmit()) 435internal override IEnumerable<(MethodSymbol Body, MethodSymbol Implemented)> SynthesizedInterfaceMethodImpls() 437foreach ((MethodSymbol body, MethodSymbol implemented) in _underlyingType.SynthesizedInterfaceMethodImpls()) 439var newBody = this.RetargetingTranslator.Retarget(body, MemberSignatureComparer.RetargetedExplicitImplementationComparer); 440var newImplemented = this.RetargetingTranslator.Retarget(implemented, MemberSignatureComparer.RetargetedExplicitImplementationComparer);
Symbols\Retargeting\RetargetingNamespaceSymbol.cs (2)
234internal override void GetExtensionMethods(ArrayBuilder<MethodSymbol> methods, string nameOpt, int arity, LookupOptions options) 236var underlyingMethods = ArrayBuilder<MethodSymbol>.GetInstance();
Symbols\Retargeting\RetargetingPropertySymbol.cs (2)
123public override MethodSymbol GetMethod 133public override MethodSymbol SetMethod
Symbols\Retargeting\RetargetingSymbolTranslator.cs (25)
45return new RetargetingMethodSymbol(this, (MethodSymbol)symbol); 874public MethodSymbol Retarget(MethodSymbol method) 879return (MethodSymbol)this.SymbolMap.GetOrAdd(method, _retargetingModule._createRetargetingMethod); 882public MethodSymbol Retarget(MethodSymbol method, IEqualityComparer<MethodSymbol> retargetedMethodComparer) 903var retargetedDefinition = Retarget(method.OriginalDefinition, retargetedMethodComparer); 964private MethodSymbol FindMethodInRetargetedType(MethodSymbol method, NamedTypeSymbol retargetedType, IEqualityComparer<MethodSymbol> retargetedMethodComparer) 972private readonly MethodSymbol _toFind; 974private RetargetedTypeMethodFinder(RetargetingModuleSymbol retargetingModule, NamedTypeSymbol retargetedType, MethodSymbol toFind) : 981public static MethodSymbol Find(RetargetingSymbolTranslator translator, MethodSymbol method, NamedTypeSymbol retargetedType, IEqualityComparer<MethodSymbol> retargetedMethodComparer) 994private static MethodSymbol FindWorker 997MethodSymbol method, 999IEqualityComparer<MethodSymbol> retargetedMethodComparer 1027ImmutableArray<MethodSymbol>.Empty); 1033var retargetedMethod = (MethodSymbol)retargetedMember; 1158MethodSymbol oldAttributeCtor = oldAttributeData.AttributeConstructor; 1159MethodSymbol newAttributeCtor = (object)oldAttributeCtor == null ? 1349public override Symbol VisitMethod(MethodSymbol symbol, RetargetOptions options)
Symbols\SignatureOnlyMethodSymbol.cs (3)
32private readonly ImmutableArray<MethodSymbol> _explicitInterfaceImplementations; 46ImmutableArray<MethodSymbol> explicitInterfaceImplementations) 89public override ImmutableArray<MethodSymbol> ExplicitInterfaceImplementations { get { return _explicitInterfaceImplementations; } }
Symbols\SignatureOnlyPropertySymbol.cs (2)
100public override MethodSymbol SetMethod { get { throw ExceptionUtilities.Unreachable(); } } 102public override MethodSymbol GetMethod { get { throw ExceptionUtilities.Unreachable(); } }
Symbols\Source\CustomModifierUtils.cs (3)
22MethodSymbol sourceMethod, 23MethodSymbol destinationMethod, 40MethodSymbol constructedSourceMethod = sourceMethod.ConstructIfGeneric(destinationMethod.TypeArgumentsWithAnnotations);
Symbols\Source\ExplicitInterfaceHelpers.cs (7)
95public static string GetMethodNameWithoutInterfaceName(this MethodSymbol method) 144internal static MethodSymbol FindExplicitlyImplementedMethod( 145this MethodSymbol implementingMethod, 152return (MethodSymbol)FindExplicitlyImplementedMember(implementingMethod, isOperator, explicitInterfaceType, interfaceMethodName, explicitInterfaceSpecifierSyntax, diagnostics); 262if (interfaceMember is MethodSymbol interfaceMethod && 273if (interfaceMember.IsAccessor() && !((MethodSymbol)interfaceMember).IsIndexedPropertyAccessor()) 329void checkAccessorIsAccessibleIfImplementable(MethodSymbol accessor)
Symbols\Source\LambdaSymbol.cs (2)
177public override ImmutableArray<MethodSymbol> ExplicitInterfaceImplementations 179get { return ImmutableArray<MethodSymbol>.Empty; }
Symbols\Source\LocalFunctionSymbol.cs (2)
340public override ImmutableArray<MethodSymbol> ExplicitInterfaceImplementations => ImmutableArray<MethodSymbol>.Empty;
Symbols\Source\ParameterHelpers.cs (5)
210var methodOwner = owner as MethodSymbol; 1035internal static MethodSymbol FindContainingGenericMethod(Symbol symbol) 1041MethodSymbol method = (MethodSymbol)current;
Symbols\Source\SourceComplexParameterSymbol.cs (9)
1224else if (this.ContainingSymbol is MethodSymbol method && 1341if (!ContainingSymbol.RequiresInstanceReceiver() || ContainingSymbol is MethodSymbol { MethodKind: MethodKind.Constructor or MethodKind.DelegateInvoke or MethodKind.LambdaMethod }) 1574if (!binder.HasCollectionExpressionApplicableConstructor(syntax, Type, out MethodSymbol? constructor, isExpanded: out _, diagnostics, isParamsModifierValidation: true)) 1584if (!binder.HasCollectionExpressionApplicableAddMethod(syntax, Type, out ImmutableArray<MethodSymbol> addMethods, diagnostics)) 1597MethodSymbol? reportAsLessVisible = null; 1599foreach (var addMethod in addMethods) 1632MethodSymbol? collectionBuilderMethod = binder.GetAndValidateCollectionBuilderMethod(syntax, (NamedTypeSymbol)Type, diagnostics, elementType: out _); 1654bool isAtLeastAsVisible(ParameterSyntax syntax, Binder binder, MethodSymbol method, BindingDiagnosticBag diagnostics) 1665void checkIsAtLeastAsVisible(ParameterSyntax syntax, Binder binder, MethodSymbol method, BindingDiagnosticBag diagnostics)
Symbols\Source\SourceConstructorSymbol.cs (2)
343public sealed override MethodSymbol? PartialDefinitionPart => SourcePartialDefinitionPart; 345public sealed override MethodSymbol? PartialImplementationPart => SourcePartialImplementationPart;
Symbols\Source\SourceCustomEventSymbol.cs (2)
185public override MethodSymbol? AddMethod 190public override MethodSymbol? RemoveMethod
Symbols\Source\SourceEventAccessorSymbol.cs (10)
19private readonly ImmutableArray<MethodSymbol> _explicitInterfaceImplementations; 52ImmutableArray<MethodSymbol> explicitInterfaceImplementations; 56explicitInterfaceImplementations = ImmutableArray<MethodSymbol>.Empty; 60MethodSymbol implementedAccessor = isAdder ? explicitlyImplementedEventOpt.AddMethod : explicitlyImplementedEventOpt.RemoveMethod; 64explicitInterfaceImplementations = (object)implementedAccessor == null ? ImmutableArray<MethodSymbol>.Empty : ImmutableArray.Create<MethodSymbol>(implementedAccessor); 81public override ImmutableArray<MethodSymbol> ExplicitInterfaceImplementations 224MethodSymbol overriddenAccessor = overriddenEvent.GetOwnOrInheritedAccessor(isAdder); 240public sealed override MethodSymbol? PartialImplementationPart => _event is { IsPartialDefinition: true, OtherPartOfPartial: { } other } 244public sealed override MethodSymbol? PartialDefinitionPart => _event is { IsPartialImplementation: true, OtherPartOfPartial: { } other }
Symbols\Source\SourceEventSymbol.cs (4)
89public abstract override MethodSymbol? AddMethod { get; } 91public abstract override MethodSymbol? RemoveMethod { get; } 852private void CheckExplicitImplementationAccessor(MethodSymbol? thisAccessor, MethodSymbol? otherAccessor, EventSymbol explicitlyImplementedEvent, BindingDiagnosticBag diagnostics)
Symbols\Source\SourceFieldLikeEventSymbol.cs (2)
163public override MethodSymbol AddMethod 168public override MethodSymbol RemoveMethod
Symbols\Source\SourceFixedFieldSymbol.cs (2)
153private readonly MethodSymbol _constructor; 174internal override MethodSymbol Constructor
Symbols\Source\SourceLabelSymbol.cs (4)
15private readonly MethodSymbol _containingMethod; 27MethodSymbol containingMethod, 69MethodSymbol containingMethod, 107public override MethodSymbol ContainingMethod
Symbols\Source\SourceLocalSymbol.cs (1)
109MethodSymbol containingMethod,
Symbols\Source\SourceMemberContainerSymbol.cs (88)
1603WhereAsArray(s => !s.IsIndexer() && (!s.IsAccessor() || ((MethodSymbol)s).AssociatedSymbol?.IsIndexer() != true))); 1978var methodsBySignature = new Dictionary<MethodSymbol, MethodSymbol>(MemberSignatureComparer.DuplicateSourceComparer); 1979var conversionsAsMethods = new Dictionary<MethodSymbol, MethodSymbol>(MemberSignatureComparer.DuplicateSourceComparer); 1980var conversionsAsConversions = new HashSet<MethodSymbol>(ConversionSignatureComparer.Comparer); 2095if (symbol is MethodSymbol { MethodKind: MethodKind.Conversion } conversion) 2118if (methodsBySignature.TryGetValue(conversion, out var previousMethod)) 2125else if (symbol is MethodSymbol method) 2130if (conversionsAsMethods.TryGetValue(method, out var previousConversion)) 2139if (methodsBySignature.TryGetValue(method, out var previousMethod)) 2156private static void ReportMethodSignatureCollision(SourceMemberContainerTypeSymbol containerForDiagnostics, BindingDiagnosticBag diagnostics, MethodSymbol method1, MethodSymbol method2) 2696if (member.Kind != SymbolKind.Method || ((MethodSymbol)member).MethodKind != MethodKind.Destructor) 2752var ops1 = ArrayBuilder<MethodSymbol>.GetInstance(); 2757var ops2 = ArrayBuilder<MethodSymbol>.GetInstance(); 2765var ops2 = ArrayBuilder<MethodSymbol>.GetInstance(); 2775static void reportOperatorNeedsMatch(BindingDiagnosticBag diagnostics, string operatorName2, MethodSymbol op1) 2782static void reportCheckedOperatorNeedsMatch(BindingDiagnosticBag diagnostics, string operatorName2, MethodSymbol op1) 2790ArrayBuilder<MethodSymbol> ops1, 2791ArrayBuilder<MethodSymbol> ops2, 2793Action<BindingDiagnosticBag, string, MethodSymbol> reportMatchNotFoundError) 2819internal static bool DoOperatorsPair(MethodSymbol op1, MethodSymbol op2) 2857var ops = ArrayBuilder<MethodSymbol>.GetInstance(); 2912if (member is not MethodSymbol method || !method.ShouldCheckRequiredMembers()) 2939foreach (var method in this.GetMembers(name).OfType<MethodSymbol>()) 3707!(member is MethodSymbol method && MethodCompiler.GetMethodToCompile(method) is SourceMemberMethodSymbol sourceMethod)) 3841if (member is MethodSymbol { IsImplicitlyDeclared: false, MethodKind: not (MethodKind.Constructor or MethodKind.StaticConstructor or MethodKind.Destructor or MethodKind.ExplicitInterfaceImplementation) } method && 3853var marker = CreateSynthesizedExtensionMarker(); 3860protected virtual MethodSymbol? CreateSynthesizedExtensionMarker() 4110(prevMethod.IsPartialImplementation || (prevMethod.OtherPartOfPartial is MethodSymbol otherImplementation && (object)otherImplementation != currentMethod))) 4116(prevMethod.IsPartialDefinition || (prevMethod.OtherPartOfPartial is MethodSymbol otherDefinition && (object)otherDefinition != currentMethod))) 4354MethodSymbol accessor = getNotSet ? propertySymbol.GetMethod : propertySymbol.SetMethod; 4379var methodSymbol = (MethodSymbol)symbol; 4418var methodSymbol = (MethodSymbol)symbol; 4571var meth = (MethodSymbol)member; 4624var meth = (MethodSymbol)member; 4677var m = s as MethodSymbol; 4722if (hasInitializers && !builder.NonTypeMembersWithPartialImplementations.Any(member => member is MethodSymbol { MethodKind: MethodKind.Constructor })) 4774case MethodSymbol { MethodKind: not (MethodKind.Ordinary or MethodKind.Constructor) }: 4830var thisEquals = addThisEquals(equalityContract); 4838var getHashCode = addGetHashCode(equalityContract); 4846var printMembers = addPrintMembersMethod(membersSoFar); 4884ImmutableArray<MethodSymbol>.Empty); 4892var deconstruct = (MethodSymbol)existingDeconstructMethod; 4932ImmutableArray<MethodSymbol>.Empty); 4946var constructor = (MethodSymbol)existingConstructor; 4965MethodSymbol addPrintMembersMethod(IEnumerable<Symbol> userDefinedMembers) 4984explicitInterfaceImplementations: ImmutableArray<MethodSymbol>.Empty); 4986MethodSymbol printMembersMethod; 4994printMembersMethod = (MethodSymbol)existingPrintMembersMethod; 5025void addToStringMethod(MethodSymbol printMethod) 5039explicitInterfaceImplementations: ImmutableArray<MethodSymbol>.Empty); 5041var baseToStringMethod = getBaseToStringMethod(); 5068var toStringMethod = (MethodSymbol)existingToStringMethod; 5079MethodSymbol? getBaseToStringMethod() 5087if (member is not MethodSymbol method) 5194void addObjectEquals(MethodSymbol thisEquals) 5199MethodSymbol addGetHashCode(PropertySymbol? equalityContract) 5213ImmutableArray<MethodSymbol>.Empty); 5215MethodSymbol getHashCode; 5224getHashCode = (MethodSymbol)existingHashCodeMethod; 5292MethodSymbol addThisEquals(PropertySymbol? equalityContract) 5312ImmutableArray<MethodSymbol>.Empty); 5314MethodSymbol thisEquals; 5323thisEquals = (MethodSymbol)existingEqualsMethod; 5386var method = (MethodSymbol)member; 5842private void AddAccessorIfAvailable(ArrayBuilder<Symbol> symbols, MethodSymbol? accessorOpt) 5999if (member is MethodSymbol { MethodKind: MethodKind.Ordinary }) 6015ImmutableArray<(MethodSymbol Body, MethodSymbol Implemented)>.Empty); 6018public readonly ImmutableArray<(MethodSymbol Body, MethodSymbol Implemented)> MethodImpls; 6022ImmutableArray<(MethodSymbol Body, MethodSymbol Implemented)> methodImpls) 6030ImmutableArray<(MethodSymbol Body, MethodSymbol Implemented)> methodImpls)
Symbols\Source\SourceMemberContainerSymbol_ImplementationChecks.cs (62)
18internal delegate void ReportMismatchInReturnType<TArg>(BindingDiagnosticBag bag, MethodSymbol overriddenMethod, MethodSymbol overridingMethod, bool topLevel, TArg arg); 19internal delegate void ReportMismatchInParameterType<TArg>(BindingDiagnosticBag bag, MethodSymbol overriddenMethod, MethodSymbol overridingMethod, ParameterSymbol parameter, bool topLevel, TArg arg); 73internal sealed override IEnumerable<(MethodSymbol Body, MethodSymbol Implemented)> SynthesizedInterfaceMethodImpls() 115var methodImpls = ArrayBuilder<(MethodSymbol Body, MethodSymbol Implemented)>.GetInstance(); 237var associatedPropertyOrEvent = interfaceMemberKind == SymbolKind.Method ? ((MethodSymbol)interfaceMember).AssociatedSymbol : null; 536var method = (MethodSymbol)member; 537if (MethodSymbol.CanOverrideOrHide(method.MethodKind) && !method.IsAccessor()) 558MethodSymbol overridden = method.GetFirstRuntimeOverriddenMethodIgnoringNewSlot(out _); 572var getMethod = property.GetMethod; 573var setMethod = property.SetMethod; 613var addMethod = @event.AddMethod; 614var removeMethod = @event.RemoveMethod; 704if (hiddenMember.Kind == SymbolKind.Method && !((MethodSymbol)hiddenMember).CanBeHiddenByMember(symbol)) 782associatedPropertyOrEvent = ((MethodSymbol)overridingMember).AssociatedSymbol; 791? ((MethodSymbol)overridingMember).ParameterTypesWithAnnotations 855if (!this.ContainingAssembly.RuntimeSupportsCovariantReturnsOfClasses && overridingMember is MethodSymbol overridingMethod) 860var ambiguousMethod = overridingMethod.OverriddenMethod; 892!(overridingMemberIsMethod && ((MethodSymbol)overriddenMember).MethodKind == MethodKind.Destructor)) //destructors are metadata virtual 921else if (overriddenMember is MethodSymbol overridden && overridden.IsOperator() != ((MethodSymbol)overridingMember).IsOperator()) 983var overridingMethod = (MethodSymbol)overridingMember; 984var overriddenMethod = (MethodSymbol)overriddenMember; 1102MethodSymbol overriddenGetMethod = overriddenProperty.GetOwnOrInheritedGetMethod(); 1112var ownOrInheritedOverriddenSetMethod = overriddenProperty.GetOwnOrInheritedSetMethod(); 1133MethodSymbol ownOrInheritedGetMethod = overridingProperty.GetOwnOrInheritedGetMethod(); 1140MethodSymbol ownOrInheritedSetMethod = overridingProperty.GetOwnOrInheritedSetMethod(); 1153MethodSymbol overriddenMethod, 1154MethodSymbol overridingMethod, 1222(BindingDiagnosticBag diagnostics, MethodSymbol overriddenMethod, MethodSymbol overridingMethod, bool topLevel, Location location) 1229(BindingDiagnosticBag diagnostics, MethodSymbol overriddenMethod, MethodSymbol overridingMethod, ParameterSymbol overridingParameter, bool topLevel, Location location) 1240MethodSymbol baseMethod, 1241MethodSymbol overrideMethod, 1381internal static bool RequiresValidScopedOverrideForRefSafety(MethodSymbol? method) 1439internal static bool ReportInvalidScopedOverrideAsError(MethodSymbol baseMethod, MethodSymbol overrideMethod) 1450MethodSymbol? baseMethod, 1451MethodSymbol? overrideMethod, 1503MethodSymbol? baseMethod, 1504MethodSymbol? overrideMethod, 1632if (hidingMember is MethodSymbol hidingMethod && hiddenMembers[0] is MethodSymbol hiddenMethod) 1692var associatedPropertyOrEvent = ((MethodSymbol)hidingMember).AssociatedSymbol; 1810private (SynthesizedExplicitImplementationForwardingMethod? ForwardingMethod, (MethodSymbol Body, MethodSymbol Implemented)? MethodImpl) 1829MethodSymbol interfaceMethod = (MethodSymbol)interfaceMember; 1830MethodSymbol implementingMethod = (MethodSymbol)implementingMember; 1840MethodSymbol implementingMethodOriginalDefinition = implementingMethod.OriginalDefinition; 1859else if (implementingMethod.IsMetadataVirtual(MethodSymbol.IsMetadataVirtualOption.IgnoreInterfaceImplementationChanges)) 1912private static bool IsPossibleImplementationUnderRuntimeRules(MethodSymbol implementingMethod, NamedTypeSymbol @interface) 1936private static bool IsOverrideOfPossibleImplementationUnderRuntimeRules(MethodSymbol implementingMethod, NamedTypeSymbol @interface) 1938MethodSymbol curr = implementingMethod;
Symbols\Source\SourceMemberMethodSymbol.cs (3)
856public override ImmutableArray<MethodSymbol> ExplicitInterfaceImplementations 860return ImmutableArray<MethodSymbol>.Empty; 1009internal static byte? ComputeNullableContextValue(MethodSymbol method)
Symbols\Source\SourceMethodSymbol.cs (4)
24/// array of types, indexed by the constrained type parameter in <see cref="MethodSymbol.TypeParameters"/>. 30/// array of kinds, indexed by the constrained type parameter in <see cref="MethodSymbol.TypeParameters"/>. 109internal static void AddSynthesizedAttributes(MethodSymbol target, PEModuleBuilder moduleBuilder, ref ArrayBuilder<CSharpAttributeData> attributes) 236internal static bool IsInstanceIncrementDecrementOrCompoundAssignmentOperator(MethodSymbol target)
Symbols\Source\SourceMethodSymbolWithAttributes.cs (4)
827var implementationPart = this.PartialImplementationPart ?? this; 835for (MethodSymbol? current = this; current is object; current = current.ContainingSymbol as MethodSymbol) 1606static bool isBadAsyncReturn(MethodSymbol methodSymbol)
Symbols\Source\SourceNamedTypeSymbol.cs (4)
1776var parameterlessConstructor = InstanceConstructors.FirstOrDefault(c => c.ParameterCount == 0); 1844&& !GetMembers().All(m => m is not MethodSymbol { MethodKind: MethodKind.Constructor, ObsoleteKind: ObsoleteAttributeKind.None } method 1898foreach (var slice in GetMembers(WellKnownMemberNames.SliceMethodName).OfType<MethodSymbol>())
Symbols\Source\SourceNamedTypeSymbol_Extension.cs (13)
24public MethodSymbol? LazyExtensionMarker = ErrorMethodSymbol.UnknownMethod; 26public ImmutableDictionary<MethodSymbol, MethodSymbol>? LazyImplementationMap; 75var markerMethod = TryGetOrCreateExtensionMarker(); 86public sealed override MethodSymbol? TryGetCorrespondingExtensionImplementationMethod(MethodSymbol method) 106var builder = ImmutableDictionary.CreateBuilder<MethodSymbol, MethodSymbol>(ReferenceEqualityComparer.Instance); 110Select(static m => new KeyValuePair<MethodSymbol, MethodSymbol>(m.UnderlyingMethod, m))); 118protected sealed override MethodSymbol? CreateSynthesizedExtensionMarker() 124private MethodSymbol? TryGetOrCreateExtensionMarker() 140MethodSymbol? tryCreateExtensionMarker()
Symbols\Source\SourceOrdinaryMethodOrUserDefinedOperatorSymbol.cs (8)
19private ImmutableArray<MethodSymbol> _lazyExplicitInterfaceImplementations; 40protected MethodSymbol? MethodChecks(TypeWithAnnotations returnType, ImmutableArray<ParameterSymbol> parameters, BindingDiagnosticBag diagnostics) 87MethodSymbol? overriddenOrExplicitlyImplementedMethod = null; 95_lazyExplicitInterfaceImplementations = ImmutableArray<MethodSymbol>.Empty; 133_lazyExplicitInterfaceImplementations = ImmutableArray.Create<MethodSymbol>(overriddenOrExplicitlyImplementedMethod); 144_lazyExplicitInterfaceImplementations = ImmutableArray<MethodSymbol>.Empty; 155protected abstract MethodSymbol? FindExplicitlyImplementedMethod(BindingDiagnosticBag diagnostics); 202public sealed override ImmutableArray<MethodSymbol> ExplicitInterfaceImplementations
Symbols\Source\SourceOrdinaryMethodSymbol.cs (6)
359public sealed override MethodSymbol PartialDefinitionPart 367public sealed override MethodSymbol PartialImplementationPart 483MethodSymbol constructedDefinition = definition.ConstructIfGeneric(TypeMap.TypeParametersAsTypeSymbolsWithIgnoredAnnotations(implementation.TypeParameters)); 644MethodSymbol? overriddenOrExplicitlyImplementedMethod = MethodChecks(returnType, parameters, diagnostics); 965protected sealed override MethodSymbol FindExplicitlyImplementedMethod(BindingDiagnosticBag diagnostics) 1043protected sealed override MethodSymbol FindExplicitlyImplementedMethod(BindingDiagnosticBag diagnostics)
Symbols\Source\SourceParameterSymbol.cs (2)
290MethodSymbol owningMethod = ContainingSymbol as MethodSymbol;
Symbols\Source\SourcePropertyAccessorSymbol.cs (13)
23private ImmutableArray<MethodSymbol> _lazyExplicitInterfaceImplementations; 271MethodSymbol implementedMethod = explicitInterfaceImplementations[0]; 280MethodSymbol overriddenMethod = this.OverriddenMethod; 606public sealed override ImmutableArray<MethodSymbol> ExplicitInterfaceImplementations 613ImmutableArray<MethodSymbol> explicitInterfaceImplementations; 617explicitInterfaceImplementations = ImmutableArray<MethodSymbol>.Empty; 621MethodSymbol implementedAccessor = this.MethodKind == MethodKind.PropertyGet 626? ImmutableArray<MethodSymbol>.Empty 627: ImmutableArray.Create<MethodSymbol>(implementedAccessor); 693MethodSymbol? implementedAccessor = isGetMethod 708MethodSymbol overriddenMethod = this.OverriddenMethod; 818public sealed override MethodSymbol? PartialImplementationPart => _property is SourcePropertySymbol { IsPartialDefinition: true, OtherPartOfPartial: { } other } 822public sealed override MethodSymbol? PartialDefinitionPart => _property is SourcePropertySymbol { IsPartialImplementation: true, OtherPartOfPartial: { } other }
Symbols\Source\SourcePropertySymbolBase.cs (7)
644public sealed override MethodSymbol? GetMethod 652public sealed override MethodSymbol? SetMethod 1185private void CheckExplicitImplementationAccessor(MethodSymbol thisAccessor, MethodSymbol otherAccessor, PropertySymbol explicitlyImplementedProperty, BindingDiagnosticBag diagnostics) 1253MethodSymbol overriddenAccessor = this.GetOwnOrInheritedSetMethod(); 1259MethodSymbol overriddenAccessor = this.GetOwnOrInheritedGetMethod(); 1631static bool isNullOrValidAccessor(MethodSymbol? accessor)
Symbols\Source\SourceTypeParameterSymbol.cs (8)
798private MethodSymbol _lazyOverriddenMethod = ErrorMethodSymbol.UnknownMethod; 812var overriddenMethod = this.OverriddenMethod; 822var overriddenMethod = this.OverriddenMethod; 839private MethodSymbol OverriddenMethod 851protected abstract MethodSymbol GetOverriddenMethod(SourceOrdinaryMethodSymbol overridingMethod); 862protected override MethodSymbol GetOverriddenMethod(SourceOrdinaryMethodSymbol overridingMethod) 864MethodSymbol method = overridingMethod; 883protected override MethodSymbol GetOverriddenMethod(SourceOrdinaryMethodSymbol overridingMethod)
Symbols\Source\SourceUserDefinedOperatorSymbolBase.cs (1)
380protected sealed override MethodSymbol FindExplicitlyImplementedMethod(BindingDiagnosticBag diagnostics)
Symbols\Source\SynthesizedAttributeData.cs (5)
17public static SynthesizedAttributeData Create(CSharpCompilation compilation, MethodSymbol wellKnownMember, ImmutableArray<TypedConstant> arguments, ImmutableArray<KeyValuePair<string, TypedConstant>> namedArguments) 30private readonly MethodSymbol _wellKnownMember; 34internal FromMethodAndArguments(CSharpCompilation compilation, MethodSymbol wellKnownMember, ImmutableArray<TypedConstant> arguments, ImmutableArray<KeyValuePair<string, TypedConstant>> namedArguments) 48public override MethodSymbol AttributeConstructor => _wellKnownMember; 78public override MethodSymbol? AttributeConstructor => _original.AttributeConstructor;
Symbols\Source\SynthesizedSourceOrdinaryMethodSymbol.cs (1)
39protected sealed override MethodSymbol? FindExplicitlyImplementedMethod(BindingDiagnosticBag diagnostics) => null;
Symbols\Source\ThisParameterSymbol.cs (3)
131private readonly MethodSymbol? _containingMethod; 134internal ThisParameterSymbol(MethodSymbol forMethod) : this(forMethod, forMethod.ContainingType) 138internal ThisParameterSymbol(MethodSymbol? forMethod, TypeSymbol containingType)
Symbols\SubstitutedEventSymbol.cs (4)
59public override MethodSymbol? AddMethod 63MethodSymbol? originalAddMethod = OriginalDefinition.AddMethod; 68public override MethodSymbol? RemoveMethod 72MethodSymbol? originalRemoveMethod = OriginalDefinition.RemoveMethod;
Symbols\SubstitutedMethodSymbol.cs (18)
25private readonly MethodSymbol _underlyingMethod; 27private readonly MethodSymbol _constructedFrom; 35private ImmutableArray<MethodSymbol> _lazyExplicitInterfaceImplementations; 40internal SubstitutedMethodSymbol(NamedTypeSymbol containingSymbol, MethodSymbol originalDefinition) 47protected SubstitutedMethodSymbol(Symbol containingSymbol, TypeMap map, MethodSymbol originalDefinition, MethodSymbol constructedFrom) 67public override MethodSymbol UnderlyingMethod 75public override MethodSymbol ConstructedFrom 142public sealed override MethodSymbol OriginalDefinition 150internal sealed override MethodSymbol CallsiteReducedFromMethod 154var method = OriginalDefinition.ReducedFrom; 163var reduced = this.CallsiteReducedFromMethod; 182public sealed override MethodSymbol ReducedFrom 267public sealed override ImmutableArray<MethodSymbol> ExplicitInterfaceImplementations 273return ImmutableArray<MethodSymbol>.Empty; 281default(ImmutableArray<MethodSymbol>)); 431MethodSymbol other = obj as MethodSymbol;
Symbols\SubstitutedNamedTypeSymbol.cs (7)
371internal sealed override IEnumerable<(MethodSymbol Body, MethodSymbol Implemented)> SynthesizedInterfaceMethodImpls() 378foreach ((MethodSymbol body, MethodSymbol implemented) in OriginalDefinition.SynthesizedInterfaceMethodImpls()) 380var newBody = ExplicitInterfaceHelpers.SubstituteExplicitInterfaceImplementation(body, this.TypeSubstitution); 381var newImplemented = ExplicitInterfaceHelpers.SubstituteExplicitInterfaceImplementation(implemented, this.TypeSubstitution); 457internal override IEnumerable<MethodSymbol> GetMethodsToEmit()
Symbols\SubstitutedParameterSymbol.cs (1)
17internal SubstitutedParameterSymbol(MethodSymbol containingSymbol, TypeMap map, ParameterSymbol originalParameter) :
Symbols\SubstitutedPropertySymbol.cs (4)
86public override MethodSymbol GetMethod 90MethodSymbol originalGetMethod = OriginalDefinition.GetMethod; 95public override MethodSymbol SetMethod 99MethodSymbol originalSetMethod = OriginalDefinition.SetMethod;
Symbols\SubstitutedTypeParameterSymbol.cs (2)
67MethodSymbol reducedFrom = ((MethodSymbol)_container).ReducedFrom;
Symbols\Symbol.cs (5)
667var method = (MethodSymbol)this; 728var method = (MethodSymbol)this; 1239this is MethodSymbol method && method.MethodKind == MethodKind.FunctionPointerSignature ?
Symbols\Symbol_Attributes.cs (3)
54var method = (MethodSymbol)this; 672Debug.Assert(!binder.InAttributeArgument || this is MethodSymbol { MethodKind: MethodKind.LambdaMethod or MethodKind.LocalFunction }, "Possible cycle in attribute binding");
Symbols\SymbolExtensions.cs (17)
149var method = (MethodSymbol)containingMember; 167MethodSymbol method = (MethodSymbol)symbol; 208return ((MethodSymbol)symbol).ConstructedFrom; 339return ((MethodSymbol)symbol).Arity; 466MethodSymbol method => method.ReturnTypeFlowAnalysisAnnotations, 486MethodSymbol method = (MethodSymbol)symbol; 534SymbolKind.Method => ((MethodSymbol)symbol).RequiresInstanceReceiver, 556internal static IMethodSymbol? GetPublicSymbol(this MethodSymbol? symbol) 731internal static ImmutableArray<IMethodSymbol> GetPublicSymbols(this ImmutableArray<MethodSymbol> symbols) 795internal static MethodSymbol? GetSymbol(this IMethodSymbol? symbol) 797return symbol.GetSymbol<MethodSymbol>(); 814internal static bool ShouldCheckRequiredMembers(this MethodSymbol method) 819Debug.Assert(symbol is MethodSymbol or PropertySymbol); 820return symbol is MethodSymbol method ? method.OverloadResolutionPriority : ((PropertySymbol)symbol).OverloadResolutionPriority;
Symbols\SymbolVisitor.cs (1)
70public virtual void VisitMethod(MethodSymbol symbol)
Symbols\SymbolVisitor`1.cs (1)
70public virtual TResult VisitMethod(MethodSymbol symbol)
Symbols\SymbolVisitor`2.cs (2)
185/// Called when visiting a <see cref="MethodSymbol" />; Override this with specific 191public virtual TResult VisitMethod(MethodSymbol symbol, TArgument argument)
Symbols\Synthesized\ReadOnlyListType\SynthesizedReadOnlyListConstructor.cs (1)
29var baseConstructor = ContainingType.BaseTypeNoUseSiteDiagnostics.InstanceConstructors.Single();
Symbols\Synthesized\ReadOnlyListType\SynthesizedReadOnlyListEnumeratorConstructor.cs (1)
29var baseConstructor = ContainingType.BaseTypeNoUseSiteDiagnostics.InstanceConstructors.Single();
Symbols\Synthesized\ReadOnlyListType\SynthesizedReadOnlyListEnumeratorTypeSymbol.cs (7)
76((MethodSymbol)compilation.GetSpecialTypeMember(SpecialMember.System_Collections_IEnumerator__MoveNext)), 95((MethodSymbol)compilation.GetSpecialTypeMember(SpecialMember.System_Collections_IEnumerator__Reset)), 108((MethodSymbol)compilation.GetSpecialTypeMember(SpecialMember.System_IDisposable__Dispose)), 269internal override IEnumerable<(MethodSymbol Body, MethodSymbol Implemented)> SynthesizedInterfaceMethodImpls() => SpecializedCollections.EmptyEnumerable<(MethodSymbol Body, MethodSymbol Implemented)>();
Symbols\Synthesized\ReadOnlyListType\SynthesizedReadOnlyListMethod.cs (3)
7internal delegate BoundStatement GenerateMethodBodyDelegate(SyntheticBoundNodeFactory factory, MethodSymbol method, MethodSymbol interfaceMethod); 13internal SynthesizedReadOnlyListMethod(NamedTypeSymbol containingType, MethodSymbol interfaceMethod, GenerateMethodBodyDelegate generateMethodBody) :
Symbols\Synthesized\ReadOnlyListType\SynthesizedReadOnlyListProperty.cs (2)
43public override MethodSymbol? GetMethod { get; } 45public override MethodSymbol? SetMethod { get; }
Symbols\Synthesized\ReadOnlyListType\SynthesizedReadOnlyListTypeSymbol.cs (62)
322(MethodSymbol)compilation.GetSpecialTypeMember(SpecialMember.System_Collections_IEnumerable__GetEnumerator), 342(MethodSymbol)compilation.GetWellKnownTypeMember(WellKnownMember.System_Collections_ICollection__CopyTo)!, 347(PropertySymbol)((MethodSymbol)compilation.GetWellKnownTypeMember(WellKnownMember.System_Collections_IList__get_Item)!).AssociatedSymbol, 363(MethodSymbol)compilation.GetWellKnownTypeMember(WellKnownMember.System_Collections_IList__Add)!, 368(MethodSymbol)compilation.GetWellKnownTypeMember(WellKnownMember.System_Collections_IList__Clear)!, 373(MethodSymbol)compilation.GetWellKnownTypeMember(WellKnownMember.System_Collections_IList__Contains)!, 378(MethodSymbol)compilation.GetWellKnownTypeMember(WellKnownMember.System_Collections_IList__IndexOf)!, 383(MethodSymbol)compilation.GetWellKnownTypeMember(WellKnownMember.System_Collections_IList__Insert)!, 388(MethodSymbol)compilation.GetWellKnownTypeMember(WellKnownMember.System_Collections_IList__Remove)!, 393(MethodSymbol)compilation.GetWellKnownTypeMember(WellKnownMember.System_Collections_IList__RemoveAt)!, 398((MethodSymbol)compilation.GetSpecialTypeMember(SpecialMember.System_Collections_Generic_IEnumerable_T__GetEnumerator)!).AsMember(iEnumerableT), 410((PropertySymbol)((MethodSymbol)compilation.GetSpecialTypeMember(SpecialMember.System_Collections_Generic_IReadOnlyList_T__get_Item)!).AssociatedSymbol).AsMember(iReadOnlyListT), 426((MethodSymbol)compilation.GetSpecialTypeMember(SpecialMember.System_Collections_Generic_ICollection_T__Add)!).AsMember(iCollectionT), 431((MethodSymbol)compilation.GetSpecialTypeMember(SpecialMember.System_Collections_Generic_ICollection_T__Clear)!).AsMember(iCollectionT), 436((MethodSymbol)compilation.GetSpecialTypeMember(SpecialMember.System_Collections_Generic_ICollection_T__Contains)!).AsMember(iCollectionT), 441((MethodSymbol)compilation.GetSpecialTypeMember(SpecialMember.System_Collections_Generic_ICollection_T__CopyTo)!).AsMember(iCollectionT), 446((MethodSymbol)compilation.GetSpecialTypeMember(SpecialMember.System_Collections_Generic_ICollection_T__Remove)!).AsMember(iCollectionT), 451((PropertySymbol)((MethodSymbol)compilation.GetSpecialTypeMember(SpecialMember.System_Collections_Generic_IList_T__get_Item)!).AssociatedSymbol).AsMember(iListT), 457((MethodSymbol)compilation.GetSpecialTypeMember(SpecialMember.System_Collections_Generic_IList_T__IndexOf)!).AsMember(iListT), 462((MethodSymbol)compilation.GetSpecialTypeMember(SpecialMember.System_Collections_Generic_IList_T__Insert)!).AsMember(iListT), 467((MethodSymbol)compilation.GetSpecialTypeMember(SpecialMember.System_Collections_Generic_IList_T__RemoveAt)!).AsMember(iListT), 472static BoundStatement generateGetEnumerator(SyntheticBoundNodeFactory f, MethodSymbol method, MethodSymbol interfaceMethod) 497static BoundStatement generateCount(SyntheticBoundNodeFactory f, MethodSymbol method, MethodSymbol interfaceMethod) 525static BoundStatement generateIsSynchronized(SyntheticBoundNodeFactory f, MethodSymbol method, MethodSymbol interfaceMethod) 532static BoundStatement generateSyncRoot(SyntheticBoundNodeFactory f, MethodSymbol method, MethodSymbol interfaceMethod) 542static BoundStatement generateIsFixedSize(SyntheticBoundNodeFactory f, MethodSymbol method, MethodSymbol interfaceMethod) 549static BoundStatement generateIsReadOnly(SyntheticBoundNodeFactory f, MethodSymbol method, MethodSymbol interfaceMethod) 556static BoundStatement generateContains(SyntheticBoundNodeFactory f, MethodSymbol method, MethodSymbol interfaceMethod) 582var listMember = (MethodSymbol)containingType.GetFieldTypeMember(WellKnownMember.System_Collections_Generic_List_T__Contains); 592static BoundStatement generateCopyTo(SyntheticBoundNodeFactory f, MethodSymbol method, MethodSymbol interfaceMethod) 604var arraySetValueMethod = (MethodSymbol)method.DeclaringCompilation.GetSpecialTypeMember(SpecialMember.System_Array__SetValue)!; 637var listMember = (MethodSymbol)containingType.GetFieldTypeMember(WellKnownMember.System_Collections_Generic_List_T__CopyTo); 649static BoundStatement generateIndexer(SyntheticBoundNodeFactory f, MethodSymbol method, MethodSymbol interfaceMethod) 660var constructor = (MethodSymbol)method.DeclaringCompilation.GetWellKnownTypeMember(WellKnownMember.System_IndexOutOfRangeException__ctor)!; 676var listMember = (PropertySymbol)((MethodSymbol)containingType.GetFieldTypeMember(WellKnownMember.System_Collections_Generic_List_T__get_Item)).AssociatedSymbol; 683static BoundStatement generateIndexOf(SyntheticBoundNodeFactory f, MethodSymbol method, MethodSymbol interfaceMethod) 713var listMember = (MethodSymbol)containingType.GetFieldTypeMember(WellKnownMember.System_Collections_Generic_List_T__IndexOf); 722static BoundStatement generateNotSupportedException(SyntheticBoundNodeFactory f, MethodSymbol method, MethodSymbol interfaceMethod) 724var constructor = (MethodSymbol)method.DeclaringCompilation.GetWellKnownTypeMember(WellKnownMember.System_NotSupportedException__ctor)!; 744var equalityComparer_get_Default = f.WellKnownMethod( 746var equalityComparer_Equals = f.WellKnownMethod( 957internal override IEnumerable<(MethodSymbol Body, MethodSymbol Implemented)> SynthesizedInterfaceMethodImpls() => SpecializedCollections.EmptyEnumerable<(MethodSymbol Body, MethodSymbol Implemented)>();
Symbols\Synthesized\Records\SynthesizedRecordBaseEquals.cs (1)
42var overridden = OverriddenMethod;
Symbols\Synthesized\Records\SynthesizedRecordClone.cs (7)
83private static MethodSymbol? VirtualCloneInBase(NamedTypeSymbol containingType) 121foreach (var member in members) 123var ctor = (MethodSymbol)member; 141internal static MethodSymbol? FindValidCloneMethod(TypeSymbol containingType, ref CompoundUseSiteInfo<AssemblySymbol> useSiteInfo) 156MethodSymbol? candidate = null; 160if (member is MethodSymbol
Symbols\Synthesized\Records\SynthesizedRecordCopyCtor.cs (6)
89internal static MethodSymbol? FindCopyConstructor(NamedTypeSymbol containingType, NamedTypeSymbol within, ref CompoundUseSiteInfo<AssemblySymbol> useSiteInfo) 91MethodSymbol? bestCandidate = null; 93foreach (var member in containingType.InstanceConstructors) 135if (member is MethodSymbol { ContainingType.IsRecord: true, MethodKind: MethodKind.Constructor } method) 143internal static bool HasCopyConstructorSignature(MethodSymbol member) 146return member is MethodSymbol { IsStatic: false, ParameterCount: 1, Arity: 0 } method &&
Symbols\Synthesized\Records\SynthesizedRecordDeconstruct.cs (1)
107var getterMethod = property.GetMethod;
Symbols\Synthesized\Records\SynthesizedRecordEqualityOperator.cs (2)
42MethodSymbol? equals = null; 45if (member is MethodSymbol candidate && candidate.ParameterCount == 1 && candidate.Parameters[0].RefKind == RefKind.None &&
Symbols\Synthesized\Records\SynthesizedRecordEquals.cs (1)
105MethodSymbol? baseEquals = ContainingType.GetMembersUnordered().OfType<SynthesizedRecordBaseEquals>().Single().OverriddenMethod;
Symbols\Synthesized\Records\SynthesizedRecordGetHashCode.cs (5)
46MethodSymbol? equalityComparer_GetHashCode = null; 47MethodSymbol? equalityComparer_get_Default = null; 79var overridden = OverriddenMethod; 126static void ensureEqualityComparerHelpers(SyntheticBoundNodeFactory F, [NotNull] ref MethodSymbol? equalityComparer_GetHashCode, [NotNull] ref MethodSymbol? equalityComparer_get_Default)
Symbols\Synthesized\Records\SynthesizedRecordObjectMethod.cs (3)
31internal static bool VerifyOverridesMethodFromObject(MethodSymbol overriding, SpecialMember overriddenSpecialMember, BindingDiagnosticBag diagnostics) 41var overridden = overriding.OverriddenMethod?.OriginalDefinition; 45MethodSymbol leastOverridden = overriding.GetLeastOverriddenMethod(accessingTypeOpt: null);
Symbols\Synthesized\Records\SynthesizedRecordObjEquals.cs (2)
16private readonly MethodSymbol _typedRecordEquals; 18public SynthesizedRecordObjEquals(SourceMemberContainerTypeSymbol containingType, MethodSymbol typedRecordEquals, int memberOffset)
Symbols\Synthesized\Records\SynthesizedRecordPrintMembers.cs (6)
107var overridden = OverriddenMethod; 144var ensureStackMethod = F.WellKnownMethod( 156MethodSymbol? basePrintMethod = OverriddenMethod; 263internal static void VerifyOverridesPrintMembersFromBase(MethodSymbol overriding, BindingDiagnosticBag diagnostics) 279var overridden = overriding.OverriddenMethod; 314var getterMethod = property.GetMethod;
Symbols\Synthesized\Records\SynthesizedRecordToString.cs (3)
24private readonly MethodSymbol _printMethod; 25public SynthesizedRecordToString(SourceMemberContainerTypeSymbol containingType, MethodSymbol printMethod, int memberOffset) 57var stringBuilderCtor = F.WellKnownMethod(WellKnownMember.System_Text_StringBuilder__ctor);
Symbols\Synthesized\SynthesizedContainer.cs (6)
46internal virtual MethodSymbol Constructor => null; 119var ctor = Constructor; 211internal sealed override IEnumerable<(MethodSymbol Body, MethodSymbol Implemented)> SynthesizedInterfaceMethodImpls() 213return SpecializedCollections.EmptyEnumerable<(MethodSymbol Body, MethodSymbol Implemented)>();
Symbols\Synthesized\SynthesizedDelegateSymbol.cs (2)
183public override ImmutableArray<MethodSymbol> ExplicitInterfaceImplementations 185get { return ImmutableArray<MethodSymbol>.Empty; }
Symbols\Synthesized\SynthesizedEmbeddedAttributeSymbol.cs (9)
53public new abstract ImmutableArray<MethodSymbol> Constructors { get; } 208internal sealed override IEnumerable<(MethodSymbol Body, MethodSymbol Implemented)> SynthesizedInterfaceMethodImpls() 210return SpecializedCollections.EmptyEnumerable<(MethodSymbol Body, MethodSymbol Implemented)>(); 240private readonly ImmutableArray<MethodSymbol> _constructors; 249_constructors = ImmutableArray.Create<MethodSymbol>(new SynthesizedEmbeddedAttributeConstructorSymbol(this, m => ImmutableArray<ParameterSymbol>.Empty)); 252public override ImmutableArray<MethodSymbol> Constructors => _constructors; 261Func<MethodSymbol, ImmutableArray<ParameterSymbol>> getParameters) :
Symbols\Synthesized\SynthesizedEmbeddedLifetimeAnnotationAttributeSymbol.cs (3)
12private readonly ImmutableArray<MethodSymbol> _constructors; 21_constructors = ImmutableArray.Create<MethodSymbol>( 28public override ImmutableArray<MethodSymbol> Constructors => _constructors;
Symbols\Synthesized\SynthesizedEmbeddedNativeIntegerAttributeSymbol.cs (3)
17private readonly ImmutableArray<MethodSymbol> _constructors; 46_constructors = ImmutableArray.Create<MethodSymbol>( 62public override ImmutableArray<MethodSymbol> Constructors => _constructors;
Symbols\Synthesized\SynthesizedEmbeddedNullableAttributeSymbol.cs (4)
19private readonly ImmutableArray<MethodSymbol> _constructors; 50_constructors = ImmutableArray.Create<MethodSymbol>( 66public override ImmutableArray<MethodSymbol> Constructors => _constructors; 118Func<MethodSymbol, ImmutableArray<ParameterSymbol>> getParameters,
Symbols\Synthesized\SynthesizedEmbeddedNullableContextAttributeSymbol.cs (3)
19private readonly ImmutableArray<MethodSymbol> _constructors; 38_constructors = ImmutableArray.Create<MethodSymbol>( 50public override ImmutableArray<MethodSymbol> Constructors => _constructors;
Symbols\Synthesized\SynthesizedEmbeddedNullablePublicOnlyAttributeSymbol.cs (3)
19private readonly ImmutableArray<MethodSymbol> _constructors; 38_constructors = ImmutableArray.Create<MethodSymbol>( 50public override ImmutableArray<MethodSymbol> Constructors => _constructors;
Symbols\Synthesized\SynthesizedEmbeddedRefSafetyRulesAttributeSymbol.cs (3)
17private readonly ImmutableArray<MethodSymbol> _constructors; 36_constructors = ImmutableArray.Create<MethodSymbol>( 45public override ImmutableArray<MethodSymbol> Constructors => _constructors;
Symbols\Synthesized\SynthesizedEntryPointSymbol.cs (5)
218public override ImmutableArray<MethodSymbol> ExplicitInterfaceImplementations 220get { return ImmutableArray<MethodSymbol>.Empty; } 291private static BoundCall CreateParameterlessCall(CSharpSyntaxNode syntax, BoundExpression receiver, ThreeState receiverIsSubjectToCloning, MethodSymbol method) 339internal readonly MethodSymbol UserMain; 341internal AsyncForwardEntryPoint(CSharpCompilation compilation, NamedTypeSymbol containingType, MethodSymbol userMain) :
Symbols\Synthesized\SynthesizedExplicitImplementationForwardingMethod.cs (4)
25private readonly MethodSymbol _implementingMethod; 27public SynthesizedExplicitImplementationForwardingMethod(MethodSymbol interfaceMethod, MethodSymbol implementingMethod, NamedTypeSymbol implementingType) 33public MethodSymbol ImplementingMethod
Symbols\Synthesized\SynthesizedGlobalMethodSymbol.cs (2)
330public override ImmutableArray<MethodSymbol> ExplicitInterfaceImplementations 332get { return ImmutableArray<MethodSymbol>.Empty; }
Symbols\Synthesized\SynthesizedHotReloadExceptionConstructorSymbol.cs (2)
43var exceptionConstructor = (MethodSymbol?)factory.WellKnownMember(WellKnownMember.System_Exception__ctorString, isOptional: true);
Symbols\Synthesized\SynthesizedHotReloadExceptionSymbol.cs (4)
47public MethodSymbol Constructor 48=> (MethodSymbol)_members[0]; 141internal sealed override IEnumerable<(MethodSymbol Body, MethodSymbol Implemented)> SynthesizedInterfaceMethodImpls() => [];
Symbols\Synthesized\SynthesizedImplementationMethod.cs (5)
17protected readonly MethodSymbol _interfaceMethod; 23private readonly ImmutableArray<MethodSymbol> _explicitInterfaceImplementations; 29MethodSymbol interfaceMethod, 42_explicitInterfaceImplementations = ImmutableArray.Create<MethodSymbol>(interfaceMethod); 133public sealed override ImmutableArray<MethodSymbol> ExplicitInterfaceImplementations
Symbols\Synthesized\SynthesizedInlineArrayTypeSymbol.cs (6)
28private readonly MethodSymbol _inlineArrayAttributeConstructor; 31internal SynthesizedInlineArrayTypeSymbol(SourceModuleSymbol containingModule, string name, int arrayLength, MethodSymbol inlineArrayAttributeConstructor) 194internal override IEnumerable<(MethodSymbol Body, MethodSymbol Implemented)> SynthesizedInterfaceMethodImpls() => SpecializedCollections.EmptyEnumerable<(MethodSymbol Body, MethodSymbol Implemented)>();
Symbols\Synthesized\SynthesizedInstanceConstructor.cs (2)
263public sealed override ImmutableArray<MethodSymbol> ExplicitInterfaceImplementations 265get { return ImmutableArray<MethodSymbol>.Empty; }
Symbols\Synthesized\SynthesizedInteractiveInitializerMethod.cs (2)
64public override ImmutableArray<MethodSymbol> ExplicitInterfaceImplementations 66get { return ImmutableArray<MethodSymbol>.Empty; }
Symbols\Synthesized\SynthesizedIntrinsicOperatorSymbol.cs (2)
263public override ImmutableArray<MethodSymbol> ExplicitInterfaceImplementations 267return ImmutableArray<MethodSymbol>.Empty;
Symbols\Synthesized\SynthesizedLambdaCacheFieldSymbol.cs (2)
17private readonly MethodSymbol _topLevelMethod; 19public SynthesizedLambdaCacheFieldSymbol(NamedTypeSymbol containingType, TypeSymbol type, string name, MethodSymbol topLevelMethod, bool isReadOnly, bool isStatic)
Symbols\Synthesized\SynthesizedLocal.cs (2)
21private readonly MethodSymbol _containingMethodOpt; 35MethodSymbol containingMethodOpt,
Symbols\Synthesized\SynthesizedParameterlessThrowMethod.cs (2)
15private readonly MethodSymbol _exceptionConstructor; 17internal SynthesizedParameterlessThrowMethod(SynthesizedPrivateImplementationDetailsType privateImplType, TypeSymbol returnType, string synthesizedMethodName, MethodSymbol exceptionConstructor)
Symbols\Synthesized\SynthesizedParameterSymbol.cs (3)
232MethodSymbol method => method.UseUpdatedEscapeRules, 298internal static ImmutableArray<ParameterSymbol> DeriveParameters(MethodSymbol sourceMethod, MethodSymbol destinationMethod)
Symbols\Synthesized\SynthesizedPrivateImplementationDetailsType.cs (4)
192internal override IEnumerable<(MethodSymbol Body, MethodSymbol Implemented)> SynthesizedInterfaceMethodImpls() 194return SpecializedCollections.EmptyEnumerable<(MethodSymbol Body, MethodSymbol Implemented)>();
Symbols\Synthesized\SynthesizedSealedPropertyAccessor.cs (5)
26private readonly MethodSymbol _overriddenAccessor; 29public SynthesizedSealedPropertyAccessor(PropertySymbol property, MethodSymbol overriddenAccessor) 40internal MethodSymbol OverriddenAccessor 230public override ImmutableArray<MethodSymbol> ExplicitInterfaceImplementations 234return ImmutableArray<MethodSymbol>.Empty;
Symbols\Synthesized\SynthesizedStaticConstructor.cs (2)
283public override ImmutableArray<MethodSymbol> ExplicitInterfaceImplementations 287return ImmutableArray<MethodSymbol>.Empty;
Symbols\Synthesized\SynthesizedSubstitutedTypeParameterSymbol.cs (2)
22Debug.Assert(this.TypeParameterKind == (ContainingSymbol is MethodSymbol ? TypeParameterKind.Method : 33public override TypeParameterKind TypeParameterKind => ContainingSymbol is MethodSymbol ? TypeParameterKind.Method : TypeParameterKind.Type;
Symbols\SynthesizedSimpleMethodTypeParameterSymbol.cs (2)
16private readonly MethodSymbol _container; 20public SynthesizedSimpleMethodTypeParameterSymbol(MethodSymbol container, int ordinal, string name)
Symbols\TypeMap.cs (4)
144internal TypeMap WithAlphaRename(MethodSymbol oldOwner, Symbol newOwner, out ImmutableArray<TypeParameterSymbol> newTypeParameters) 150internal static ImmutableArray<TypeParameterSymbol> ConcatMethodTypeParameters(MethodSymbol oldOwner, MethodSymbol stopAt) 177oldOwner = oldOwner.ContainingSymbol.OriginalDefinition as MethodSymbol;
Symbols\TypeParameterSymbol.cs (6)
124public MethodSymbol DeclaringMethod 128return this.ContainingSymbol as MethodSymbol; 720internal sealed override IEnumerable<(MethodSymbol Body, MethodSymbol Implemented)> SynthesizedInterfaceMethodImpls() 722return SpecializedCollections.EmptyEnumerable<(MethodSymbol Body, MethodSymbol Implemented)>();
Symbols\TypeSymbol.cs (64)
85internal ImmutableDictionary<MethodSymbol, MethodSymbol>? synthesizedMethodImplMap; 875if (checkPendingExplicitImplementations && interfaceMember is MethodSymbol interfaceMethod && 879MethodSymbol bodyOfSynthesizedMethodImpl = currType.GetBodyOfSynthesizedInterfaceMethodImpl(interfaceMethod); 953if (implementingTypeIsFromSomeCompilation && implicitImpl is MethodSymbol implicitImplMethod && implicitImplMethod.IsOperator() != ((MethodSymbol)interfaceMember).IsOperator()) 965CheckForImplementationOfCorrespondingPropertyOrEvent((MethodSymbol)interfaceMember, implementingType, implementingTypeIsFromSomeCompilation, ref implicitImpl); 1072(MethodSymbol interfaceAccessor1, MethodSymbol interfaceAccessor2) = GetImplementableAccessors(interfaceMember); 1097static bool stopLookup(MethodSymbol interfaceAccessor, TypeSymbol implementingType) 1124(MethodSymbol interfaceAccessor1, MethodSymbol interfaceAccessor2) = GetImplementableAccessors(interfaceMember); 1180(MethodSymbol interfaceAccessor1, MethodSymbol interfaceAccessor2) = GetImplementableAccessors(interfaceMember); 1412private static (MethodSymbol interfaceAccessor1, MethodSymbol interfaceAccessor2) GetImplementableAccessors(Symbol interfaceMember) 1414MethodSymbol interfaceAccessor1; 1415MethodSymbol interfaceAccessor2; 1475(MethodSymbol interfaceAccessor1, MethodSymbol interfaceAccessor2) = GetImplementableAccessors(interfaceMember); 1510private static bool TryGetExplicitImplementationAssociatedPropertyOrEvent(bool checkPendingExplicitImplementations, MethodSymbol interfaceAccessor, TypeSymbol currType, ref CompoundUseSiteInfo<AssemblySymbol> useSiteInfo, out Symbol associated) 1521? ((MethodSymbol)implementation).AssociatedSymbol 1530MethodSymbol bodyOfSynthesizedMethodImpl = currType.GetBodyOfSynthesizedInterfaceMethodImpl(interfaceAccessor); 1554private static void CheckForImplementationOfCorrespondingPropertyOrEvent(MethodSymbol interfaceMethod, TypeSymbol implementingType, bool implementingTypeIsFromSomeCompilation, 1574MethodSymbol correspondingImplementingAccessor = null; 1615MethodSymbol interfaceAccessorWithImplementationName = new SignatureOnlyMethodSymbol( 1691var interfaceMethod = (MethodSymbol)interfaceMember; 1705var implicitImplMethod = (MethodSymbol)implicitImpl; 1812MethodSymbol implementedMethod, 1813MethodSymbol implementingMethod, 1930var implementingGetMethod = implementedProperty.GetMethod.IsImplementable() ? 1933var implementingSetMethod = implementedProperty.SetMethod.IsImplementable() ? 1957var implementingMethod = (MethodSymbol)implementingMember; 1958var implementedMethod = (MethodSymbol)interfaceMember; 2023var method = (MethodSymbol)interfaceMember; 2043hasRefReturnMismatch = ((MethodSymbol)closestMismatch).RefKind != interfaceMemberRefKind; 2062else if (interfaceMember is MethodSymbol interfaceMethod && 2063interfaceMethod.IsOperator() != ((MethodSymbol)closestMismatch).IsOperator()) 2076if (!(one is MethodSymbol oneMethod)) 2081if (!(other is MethodSymbol otherMethod)) 2106private static bool ReportAnyMismatchedConstraints(MethodSymbol interfaceMethod, TypeSymbol implementingType, MethodSymbol implicitImpl, BindingDiagnosticBag diagnostics) 2192if (interfaceMember is MethodSymbol { IsStatic: true } interfaceMethod) 2202(((MethodSymbol)member).MethodKind is MethodKind.UserDefinedOperator or MethodKind.Conversion) != isOperator.GetValueOrDefault()) 2306Debug.Assert(interfaceMember.Kind != SymbolKind.Method || (object)interfaceMember == ((MethodSymbol)interfaceMember).ConstructedFrom); 2317/// <see cref="MethodSymbol.ExplicitInterfaceImplementations"/> API, this method returns the "Body" part 2325protected MethodSymbol? GetBodyOfSynthesizedInterfaceMethodImpl(MethodSymbol interfaceMethod) 2338if (info.synthesizedMethodImplMap.TryGetValue(interfaceMethod, out MethodSymbol? result)) 2345ImmutableDictionary<MethodSymbol, MethodSymbol> makeSynthesizedMethodImplMap() 2347var map = ImmutableDictionary.CreateBuilder<MethodSymbol, MethodSymbol>(ExplicitInterfaceImplementationTargetMemberEqualityComparer.Instance); 2348foreach ((MethodSymbol body, MethodSymbol implemented) in this.SynthesizedInterfaceMethodImpls()) 2360/// <see cref="MethodSymbol.ExplicitInterfaceImplementations"/> API. The "Body" is the method that 2367internal abstract IEnumerable<(MethodSymbol Body, MethodSymbol Implemented)> SynthesizedInterfaceMethodImpls(); 2423overriddenMember = ((MethodSymbol)member).OverriddenMethod;
Symbols\TypeSymbolExtensions.cs (5)
575var invokeMethod = type.DelegateInvokeMethod(); 609public static MethodSymbol? DelegateInvokeMethod(this TypeSymbol type) 955MethodSymbol currentPointer = type.Signature; 1207public static bool ContainsTypeParameter(this TypeSymbol type, MethodSymbol parameterContainer) 1234(type, _, _) => type.TypeKind == TypeKind.TypeParameter && type.ContainingSymbol is MethodSymbol;
Symbols\VarianceSafety.cs (5)
52CheckMethodVarianceSafety((MethodSymbol)member, diagnostics); 140private static void CheckMethodVarianceSafety(this MethodSymbol method, BindingDiagnosticBag diagnostics) 151private static void CheckMethodVarianceSafety(this MethodSymbol method, LocationProvider<MethodSymbol> returnTypeLocationProvider, BindingDiagnosticBag diagnostics) 261private static void CheckTypeParametersVarianceSafety(ImmutableArray<TypeParameterSymbol> typeParameters, MethodSymbol context, BindingDiagnosticBag diagnostics)
Symbols\Wrapped\WrappedMethodSymbol.cs (1)
27public abstract MethodSymbol UnderlyingMethod
Microsoft.CodeAnalysis.CSharp.Emit.UnitTests (3)
CodeGen\CodeGenTupleTest.cs (2)
23451var b = m.OverriddenMethod; 23853var b = m.OverriddenMethod;
Emit\EmitMetadataTests.cs (1)
2072var invoke = myDel.DelegateInvokeMethod;
Microsoft.CodeAnalysis.CSharp.Emit3.UnitTests (4)
Attributes\AttributeTests.cs (4)
3792var getter = property.GetMethod; 3798var setter = property.SetMethod; 4007var setter = property.SetMethod; 4026var getter = property.GetMethod;
Microsoft.CodeAnalysis.CSharp.Semantic.UnitTests (16)
Semantics\InitOnlyMemberTests.cs (2)
1461var getter = property.GetMethod; 1475var setter = property.SetMethod;
Semantics\NullableReferenceTypesTests.cs (14)
30193var getter = property.GetMethod; 30215var setter = property.SetMethod; 30296var getter = property.GetMethod; 40981var setter = property.SetMethod; 41042var setter = property.SetMethod; 44662var setter = property.SetMethod; 47999var getter = property.GetMethod; 98540var af2 = bf2.OverriddenMethod; 104863var af1 = bf1.OverriddenMethod; 104890var af2 = bf2.OverriddenMethod; 105133var baseM1 = m1.OverriddenMethod; 105177var baseM1 = m1.OverriddenMethod; 105226var baseM1 = m1.OverriddenMethod; 105262var baseM1 = m1.OverriddenMethod;
Microsoft.CodeAnalysis.CSharp.Symbol.UnitTests (95)
Symbols\AnonymousTypesSymbolTests.cs (1)
1106var getter = property.GetMethod;
Symbols\DefaultInterfaceImplementationTests.cs (35)
14738var p1get = p1.GetMethod; 14761var p2get = p2.GetMethod; 14811var p4get = p4.GetMethod; 14941var p1get = p1.GetMethod; 14942var p1set = p1.SetMethod; 15001var p1get = p1.GetMethod; 15002var p1set = p1.SetMethod; 15182var p1get = p1.GetMethod; 15183var p1set = p1.SetMethod; 16316var p1get = p1.GetMethod; 16342var p2get = p2.GetMethod; 16368var p3set = p3.SetMethod; 16782var p1get = p1.GetMethod; 16808var p2set = p2.SetMethod; 16867var p4get = p4.GetMethod; 16892var p5set = p5.SetMethod; 17025var p1get = p1.GetMethod; 17051var p2get = p2.GetMethod; 17135var p5get = p5.GetMethod; 17305var p2get = p2.GetMethod; 17390var p5get = p5.GetMethod; 17475var p1get = p1.GetMethod; 17476var p1set = p1.SetMethod; 17519var p1get = p1.GetMethod; 17520var p1set = p1.SetMethod; 19856var p1get = p1.GetMethod; 19857var p1set = p1.SetMethod; 19900var p1get = p1.GetMethod; 19901var p1set = p1.SetMethod; 28443var p1add = p1.AddMethod; 28444var p1remove = p1.RemoveMethod; 28686var p1Add = p1.AddMethod; 28687var p1Remove = p1.RemoveMethod; 30880var p1add = p1.AddMethod; 30881var p1remove = p1.RemoveMethod;
Symbols\ExtensionMethodTests.cs (1)
2570var extensionMethod = ReducedExtensionMethodSymbol.Create(method.ConstructIfGeneric(typeArgs));
Symbols\IndexerTests.cs (2)
184var getter = property.GetMethod; 196var setter = property.SetMethod;
Symbols\InterfaceImplementationTests.cs (8)
914var interfacePropertyGetter = interfaceProperty.GetMethod; 915var interfacePropertySetter = interfaceProperty.SetMethod; 922var baseClassPropertyGetter = baseClassProperty.GetMethod; 923var baseClassPropertySetter = baseClassProperty.SetMethod; 983var interfacePropertyGetter = interfaceProperty.GetMethod; 984var interfacePropertySetter = interfaceProperty.SetMethod; 991var baseClassPropertyGetter = baseClassProperty.GetMethod; 992var baseClassPropertySetter = baseClassProperty.SetMethod;
Symbols\Source\DelegateTests.cs (2)
111var invoke = fieldType.DelegateInvokeMethod; 158var invoke = myDel.DelegateInvokeMethod;
Symbols\Source\MethodTests.cs (3)
239var otherSymbol = m.PartialImplementationPart; 267var otherSymbol = m.PartialImplementationPart; 1599var f2 = f.OverriddenMethod;
Symbols\Source\PropertyTests.cs (9)
770var method = (methodKind == MethodKind.PropertyGet) ? associatedProperty.GetMethod : associatedProperty.SetMethod; 2490var interfacePropertyGetter = interfaceProperty.GetMethod; 2492var interfacePropertySetter = interfaceProperty.SetMethod; 2497var classPropertyGetter = classProperty.GetMethod; 2499var classPropertySetter = classProperty.SetMethod; 2529var interfacePropertyGetter = interfaceProperty.GetMethod; 2531var interfacePropertySetter = interfaceProperty.SetMethod; 2536var classPropertyGetter = classProperty.GetMethod; 2538var classPropertySetter = classProperty.SetMethod;
Symbols\Source\RecordTests.cs (2)
170var getAccessor = x.GetMethod; 177var setAccessor = x.SetMethod;
Symbols\StaticAbstractMembersInInterfacesTests.cs (32)
23486var cM01Get = cM01.GetMethod; 23501var cM01Set = cM01.SetMethod; 23582var cM01Get = cM01.GetMethod; 23595var cM01Set = cM01.SetMethod; 23672var cM01Get = cM01.GetMethod; 23687var cM01Set = cM01.SetMethod; 24205var cM01Get = cM01.GetMethod; 24263var cM01Get = cM01.GetMethod; 24276var cM01Set = cM01.SetMethod; 24367var cM01Get = cM01.GetMethod; 24557var cM01Set = cM01.SetMethod; 24615var cM01Set = cM01.SetMethod; 24628var cM01Get = cM01.GetMethod; 24719var cM01Set = cM01.SetMethod; 25125var c1M01Get = c1M01.GetMethod; 25126var c1M01Set = c1M01.SetMethod; 25179var c2M01Get = c2M01.GetMethod; 25180var c2M01Set = c2M01.SetMethod; 25219var c3M01Get = c3M01.GetMethod; 25220var c3M01Set = c3M01.SetMethod; 26264var cM01Add = cM01.AddMethod; 26279var cM01Remove = cM01.RemoveMethod; 26359var cM01Add = cM01.AddMethod; 26374var cM01Remove = cM01.RemoveMethod; 26907var cM01Add = cM01.AddMethod; 26920var cM01Remove = cM01.RemoveMethod; 27181var cM01Remove = cM01.RemoveMethod; 27194var cM01Add = cM01.AddMethod; 27735var c2M01Add = c2M01.AddMethod; 27736var c2M01Remove = c2M01.RemoveMethod; 27846var c4M02Add = c4M02.AddMethod; 27847var c4M02Remove = c4M02.RemoveMethod;
Microsoft.CodeAnalysis.CSharp.Test.Utilities (1)
CompilationTestUtils.cs (1)
95var reducedFrom = reducedMethod.ReducedFrom;
Microsoft.CodeAnalysis.CSharp.WinRT.UnitTests (4)
Metadata\WinMdEventTests.cs (4)
3579var addMethod = @event.AddMethod; 3585var removeMethod = @event.RemoveMethod; 3610var addMethod = @event.AddMethod; 3616var removeMethod = @event.RemoveMethod;