Binder\Binder.ValueChecks.cs (34)
126public ImmutableArray<ParameterSymbol> Parameters;
356internal ParameterSymbol? Parameter { get; }
365internal MixableDestination(ParameterSymbol parameter, BoundExpression argument)
401internal ParameterSymbol? Parameter { get; }
407internal EscapeArgument(ParameterSymbol? parameter, BoundExpression argument, RefKind refKind, bool isArgList = false)
415public void Deconstruct(out ParameterSymbol? parameter, out BoundExpression argument, out RefKind refKind)
437internal ParameterSymbol? Parameter { get; }
450internal EscapeValue(ParameterSymbol? parameter, BoundExpression argument, EscapeLevel escapeLevel, bool isRefEscape)
458public void Deconstruct(out ParameterSymbol? parameter, out BoundExpression argument, out EscapeLevel escapeLevel, out bool isRefEscape)
1364ParameterSymbol parameterSymbol = parameter.ParameterSymbol;
1421static void reportReadOnlyParameterError(ParameterSymbol parameterSymbol, SyntaxNode node, BindValueKind valueKind, bool checkingReceiver, BindingDiagnosticBag diagnostics)
1477private static SafeContext GetParameterValEscape(ParameterSymbol parameter)
1487private static EscapeLevel? GetParameterValEscapeLevel(ParameterSymbol parameter) =>
1490private static SafeContext GetParameterRefEscape(ParameterSymbol parameter)
1502private static EscapeLevel? GetParameterRefEscapeLevel(ParameterSymbol parameter) =>
1505private bool CheckParameterValEscape(SyntaxNode node, ParameterSymbol parameter, SafeContext escapeTo, BindingDiagnosticBag diagnostics)
1523private bool CheckParameterRefEscape(SyntaxNode node, BoundExpression parameter, ParameterSymbol parameterSymbol, SafeContext escapeTo, bool checkingReceiver, BindingDiagnosticBag diagnostics)
2378var extensionParameter = symbol.ContainingType.ExtensionParameter;
2664var parameter = argIndex < parameters.Length ?
2692static bool isMixableParameter([NotNullWhen(true)] ParameterSymbol? parameter) =>
2744ParameterSymbol? thisParameter = null;
2849ParameterSymbol? extensionReceiver = null;
2906return method?.TryGetThisParameter(out var thisParameter) == true && thisParameter is not null &&
2910static bool isRefToRefStruct(ParameterSymbol parameter)
3076private static string GetInvocationParameterName(ParameterSymbol? parameter)
3093ParameterSymbol? parameter,
3335private readonly ParameterSymbol _underlyingParameter;
3337internal TypeParameterThisParameterSymbol(ParameterSymbol underlyingParameter, TypeParameterSymbol type)
3729var thisParam = ((MethodSymbol)_symbol).ThisParameter;
4030var thisParam = ((MethodSymbol)_symbol).ThisParameter;
4349var thisParam = ((MethodSymbol)_symbol).ThisParameter;
5018var thisParam = ((MethodSymbol)_symbol).ThisParameter;
5700ImmutableArray.Create<ParameterSymbol>(new SignatureOnlyParameterSymbol(
5740ImmutableArray.Create<ParameterSymbol>(new SignatureOnlyParameterSymbol(
Binder\Binder_Expressions.cs (23)
466TryGetPrimaryConstructorParameterUsedAsValue(primaryConstructor, result) is (ParameterSymbol parameter, SyntaxNode syntax) &&
495ParameterSymbol parameter,
506ParameterSymbol parameter,
1840if (GetSymbolOrMethodOrPropertyGroup(lookupResult, node, name, node.Arity, members, diagnostics, out bool isError, qualifierOpt: null) is ParameterSymbol shadowedParameter &&
2128var parameter = (ParameterSymbol)symbol;
2553ParameterSymbol? thisSymbol = this.ContainingMemberOrLambda.EnclosingThisSymbol();
3499ImmutableArray<ParameterSymbol> parameters,
3555ImmutableArray<ParameterSymbol> parameters,
3588ImmutableArray<ParameterSymbol> parameters,
3671static ParameterSymbol getCorrespondingParameter(in MemberAnalysisResult result, ImmutableArray<ParameterSymbol> parameters, int arg)
3681ImmutableArray<ParameterSymbol> parameters,
3693var correspondingParameter = getCorrespondingParameter(in result, parameters, interpolatedStringArgNum);
3807var receiverParameter = ((NamedTypeSymbol)methodResult.Member.ContainingSymbol).ExtensionParameter;
3817var parameter = parameters[originalParameterIndex];
3837var parameter = parameters[originalParameterIndex];
3911private void CheckArgumentRefKind(RefKind argRefKind, BoundExpression argument, int arg, ParameterSymbol parameter,
5049var parametersPassedToBase = new OrderedSet<ParameterSymbol>();
5058if (TryGetPrimaryConstructorParameterUsedAsValue(primaryConstructor, analyzedArguments.Argument(i)) is (ParameterSymbol parameter, SyntaxNode syntax))
5062var baseParameter = GetCorrespondingParameter(i, resultMember.Parameters, argsToParamsOpt, expanded: true);
5155private static (ParameterSymbol, SyntaxNode) TryGetPrimaryConstructorParameterUsedAsValue(SynthesizedPrimaryConstructor primaryConstructor, BoundExpression boundExpression)
10033var parameter = property.Parameters[0];
Binder\Binder_Invocation.cs (18)
1262ParameterSymbol receiverParameter = method.Parameters.First();
1372private BoundExpression CheckAndConvertExtensionReceiver(BoundExpression receiver, ParameterSymbol extensionParameter, BindingDiagnosticBag diagnostics)
1429private BoundExpression GetDefaultParameterSpecialNoConversion(SyntaxNode syntax, ParameterSymbol parameter, BindingDiagnosticBag diagnostics)
1487internal static ParameterSymbol? GetCorrespondingParameter(
1489ImmutableArray<ParameterSymbol> parameters,
1494ParameterSymbol? parameter;
1532ImmutableArray<ParameterSymbol> parameters,
1548var parameter = GetCorrespondingParameter(i, parameters, argsToParamsOpt, expanded);
1609foreach (var parameter in parameters.AsSpan()[..lastIndex])
1665BoundExpression bindDefaultArgument(SyntaxNode syntax, ParameterSymbol parameter, Symbol? containingMember, bool enableCallerInfo, BindingDiagnosticBag diagnostics,
1836private BoundExpression CreateParamsCollection(SyntaxNode node, ParameterSymbol paramsParameter, ImmutableArray<BoundExpression> collectionArgs, BindingDiagnosticBag diagnostics)
1967!(d.Arguments is [ParameterSymbol shadowedParameter] && shadowedParameter.Type.Equals(typeOrValue.Data.ValueExpression.Type, TypeCompareKind.AllIgnoreOptions))) // If the type and the name match, we would resolve to the same type rather than a value at the end.
2112var parameterListList = ArrayBuilder<ImmutableArray<ParameterSymbol>>.GetInstance();
2132var parameterListList = ArrayBuilder<ImmutableArray<ParameterSymbol>>.GetInstance();
2151private ImmutableArray<BoundExpression> BuildArgumentsForErrorRecovery(AnalyzedArguments analyzedArguments, IEnumerable<ImmutableArray<ParameterSymbol>> parameterListList, BindingDiagnosticBag diagnostics)
2287private static TypeSymbol GetCorrespondingParameterType(AnalyzedArguments analyzedArguments, int i, ImmutableArray<ParameterSymbol> parameterList)
2293foreach (var parameter in parameterList)
2310return BuildArgumentsForErrorRecovery(analyzedArguments, Enumerable.Empty<ImmutableArray<ParameterSymbol>>(), BindingDiagnosticBag.Discarded);
Binder\Semantics\OverloadResolution\OverloadResolution.cs (23)
1312ParameterSymbol final = member.GetParameters().Last();
2534var m1LastParameter = m1LeastOverriddenParameters[^1];
2535var m2LastParameter = m2LeastOverriddenParameters[^1];
2539var parameter1 = getParameterOrExtensionParameter(i, m1.Result, m1LeastOverriddenParameters, m1.LeastOverriddenMember);
2540var parameter2 = getParameterOrExtensionParameter(i, m2.Result, m2LeastOverriddenParameters, m2.LeastOverriddenMember);
2568static TypeSymbol getParameterTypeAndRefKind(int i, MemberAnalysisResult memberResolutionResult, ImmutableArray<ParameterSymbol> parameters,
2571ParameterSymbol parameter = getParameterOrExtensionParameter(i, memberResolutionResult, parameters, member);
2589static ParameterSymbol getParameterOrExtensionParameter(int argIndex, MemberAnalysisResult result, ImmutableArray<ParameterSymbol> parameters, TMember member)
2596ParameterSymbol? extensionParameter = member.ContainingType.ExtensionParameter;
2610ImmutableArray<ParameterSymbol> parameters1,
2612ImmutableArray<ParameterSymbol> parameters2)
2620var p1 = getParameterOrExtensionParameter(i, m1.Result, parameters1, m1.Member);
2621var p2 = getParameterOrExtensionParameter(i, m2.Result, parameters2, m2.Member);
2676private static RefKind GetParameterBetternessRefKind<TMember>(ParameterSymbol parameter, TMember member) where TMember : Symbol
3769private static bool IdenticalParameters(ImmutableArray<ParameterSymbol> p1, ImmutableArray<ParameterSymbol> p2)
3784var param1 = p1[i];
3785var param2 = p2[i];
3895ImmutableArray<ParameterSymbol> parameters = member.GetParametersIncludingExtensionParameter(skipExtensionIfStatic: false);
3929var parameter = parameters[parm];
3954ParameterSymbol parameter,
4066var parameter = parameters[parm];
CodeGen\CodeGenerator_RefSafety.cs (11)
12/// <inheritdoc cref="MightEscapeTemporaryRefs(bool, TypeSymbol, RefKind, ParameterSymbol?, ImmutableArray{ParameterSymbol})"/>
19thisParameterSymbol: node.Method.TryGetThisParameter(out var thisParameter) ? thisParameter : null,
23/// <inheritdoc cref="MightEscapeTemporaryRefs(bool, TypeSymbol, RefKind, ParameterSymbol?, ImmutableArray{ParameterSymbol})"/>
34/// <inheritdoc cref="MightEscapeTemporaryRefs(bool, TypeSymbol, RefKind, ParameterSymbol?, ImmutableArray{ParameterSymbol})"/>
65ParameterSymbol? thisParameterSymbol,
66ImmutableArray<ParameterSymbol> parameters)
84foreach (var parameter in parameters)
95static bool processParameter(ParameterSymbol parameter, ref bool anyRefSources, ref bool anyRefTargets)
Compilation\CSharpSemanticModel.cs (12)
1797case ParameterSymbol _:
3224protected ParameterSymbol GetParameterSymbol(
3225ImmutableArray<ParameterSymbol> parameters,
3229foreach (var symbol in parameters)
3687var thisParam = GetThisParameter(boundNode.Type, containingType, containingMember, out resultKind);
3732private static ParameterSymbol GetThisParameter(TypeSymbol typeOfThis, NamedTypeSymbol containingType, Symbol containingMember, out LookupResultKind resultKind)
3741ParameterSymbol thisParam;
4518ParameterSymbol param = FindNamedParameter(containingInvocationInfo.Symbol.GetSymbol().GetParameters(), argumentName);
4535ParameterSymbol param = FindNamedParameter(invocationSym.GetSymbol().GetParameters(), argumentName);
4557private static ParameterSymbol FindNamedParameter(ImmutableArray<ParameterSymbol> parameters, string argumentName)
4559foreach (ParameterSymbol param in parameters)
FlowAnalysis\NullableWalker.cs (83)
272/// The delegate is invoked by <see cref="VisitConversion(BoundConversion, BoundExpression, Conversion, TypeWithAnnotations, TypeWithState, bool, bool, bool, AssignmentKind, ParameterSymbol, bool, bool, bool, bool, Optional<LocalState>,bool, Location, ArrayBuilder<VisitResult>)"/>.
622ParameterSymbol methodThisParameter = MethodThisParameter;
629if (_symbol.TryGetInstanceExtensionParameter(out ParameterSymbol? extensionParameter))
675if (method.TryGetThisParameter(out var thisParameter) && thisParameter is object)
1259ImmutableArray<ParameterSymbol> parameters = method.GetParametersIncludingExtensionParameter(skipExtensionIfStatic: true);
1276foreach (var parameter in parameters)
1307ImmutableArray<ParameterSymbol> parameters = method.GetParametersIncludingExtensionParameter(skipExtensionIfStatic: true);
1308foreach (var parameter in parameters)
1341private void EnforceParameterNotNullWhenOnExit(SyntaxNode syntax, ImmutableArray<ParameterSymbol> parameters, bool sense, LocalState stateWhen)
1348foreach (var parameter in parameters)
1354private void ReportParameterIfBadConditionalState(SyntaxNode syntax, ParameterSymbol parameter, bool sense, LocalState stateWhen)
1363bool parameterHasBadConditionalState(ParameterSymbol parameter, bool sense, LocalState stateWhen)
1401private void EnforceNotNullIfNotNull(SyntaxNode? syntaxOpt, LocalState state, ImmutableArray<ParameterSymbol> parameters, ImmutableHashSet<string> inputParamNames, NullableFlowState outputState, ParameterSymbol? outputParam)
1408foreach (var inputParam in parameters)
2043var parameter = (ParameterSymbol)symbol;
2147var thisParameter = method?.ThisParameter;
2247if (symbol is ParameterSymbol { ContainingSymbol: SynthesizedPrimaryConstructor primaryConstructor } parameter &&
2259if (enclosingMemberMethod?.TryGetThisParameter(out ParameterSymbol? methodThisParameter) == true &&
2355private static object GetParameterAsDiagnosticArgument(ParameterSymbol? parameterOpt)
2362private static object GetContainingSymbolAsDiagnosticArgument(ParameterSymbol? parameterOpt)
2424ParameterSymbol? parameterOpt = null,
2990var parameter = methodParameters[i];
2999private void EnterParameter(ParameterSymbol parameter, TypeWithAnnotations parameterType)
3026var parameter = equalsValue.Parameter;
3124ImmutableArray<ParameterSymbol> parameters = method.GetParametersIncludingExtensionParameter(skipExtensionIfStatic: true);
3935var reinferredParameter = reinferredAddMethod.Parameters[argIndex];
5501BoundExpression expr, BoundExpression operand, Conversion conversion, ParameterSymbol parameter, TypeWithState operandType, bool isLifted,
5525private void VisitBinaryOperatorOperandConversionAndPostConditions(BoundExpression expr, BoundExpression operand, Conversion conversion, ParameterSymbol parameter, TypeWithState operandType, bool isLifted)
6724ImmutableArray<ParameterSymbol> parameters = getParameters(method.Parameters, adjustForNewExtension, method);
6748static ImmutableArray<ParameterSymbol> getParameters(ImmutableArray<ParameterSymbol> parameters, bool isNewExtension, MethodSymbol method)
6755ParameterSymbol? extensionParameter = method.ContainingType.ExtensionParameter;
6790ParameterSymbol? extensionParameter = method.ContainingType.ExtensionParameter;
7108private FlowAnalysisAnnotations GetParameterAnnotations(ParameterSymbol parameter)
7264ImmutableArray<ParameterSymbol> parametersOpt,
7279private delegate (TMember? member, bool returnNotNull) ArgumentsCompletionDelegate<TMember>(ImmutableArray<VisitResult> argumentResults, ImmutableArray<ParameterSymbol> parametersOpt, TMember? member) where TMember : Symbol;
7286ImmutableArray<ParameterSymbol> parametersOpt,
7328ImmutableArray<ParameterSymbol> parametersOpt,
7383var notNullParametersBuilder = parameterHasNotNullIfNotNull ? ArrayBuilder<ParameterSymbol>.GetInstance() : null;
7395(ParameterSymbol? parameter, TypeWithAnnotations parameterType, FlowAnalysisAnnotations parameterAnnotations, bool isExpandedParamsArgument) =
7471(ParameterSymbol? parameter, TypeWithAnnotations parameterType, FlowAnalysisAnnotations parameterAnnotations, _) =
7522return (ImmutableArray<VisitResult> results, ImmutableArray<ParameterSymbol> parametersOpt, TMember? member) =>
7534static void expandParamsCollection(ref ImmutableArray<BoundExpression> arguments, ref ImmutableArray<RefKind> refKindsOpt, ImmutableArray<ParameterSymbol> parametersOpt, ref ImmutableArray<int> argsToParamsOpt, ref BitVector defaultArguments)
7675if (current.TryGetThisParameter(out var thisParameter) && thisParameter is not null)
7802private ImmutableArray<FlowAnalysisAnnotations> GetParametersAnnotations(ImmutableArray<BoundExpression> arguments, ImmutableArray<ParameterSymbol> parametersOpt, ImmutableArray<int> argsToParamsOpt, bool expanded)
7898ParameterSymbol parameter,
8035ParameterSymbol parameter,
8039ArrayBuilder<ParameterSymbol>? notNullParametersOpt,
8130FlowAnalysisAnnotations notNullBasedOnParameters(FlowAnalysisAnnotations parameterAnnotations, ArrayBuilder<ParameterSymbol>? notNullParametersOpt, ParameterSymbol parameter)
8137foreach (var notNullParameter in notNullParametersOpt)
8332private (ParameterSymbol? Parameter, TypeWithAnnotations Type, FlowAnalysisAnnotations Annotations, bool isExpandedParamsArgument) GetCorrespondingParameter(
8334ImmutableArray<ParameterSymbol> parametersOpt,
8344var parameter = Binder.GetCorrespondingParameter(argumentOrdinal, parametersOpt, argsToParamsOpt, expanded);
9166ParameterSymbol? parameterOpt,
9295void reportBadDelegateParameter(BindingDiagnosticBag bag, MethodSymbol sourceInvokeMethod, MethodSymbol targetInvokeMethod, ParameterSymbol parameter, bool topLevel, (TypeSymbol targetType, Location location) arg)
9366void reportBadDelegateParameter(BindingDiagnosticBag bag, MethodSymbol sourceInvokeMethod, MethodSymbol targetInvokeMethod, ParameterSymbol parameterSymbol, bool topLevel, Location location)
9421ParameterSymbol? parameterOpt = null,
9497static (MethodSymbol invokeSignature, ImmutableArray<ParameterSymbol>) getDelegateOrFunctionPointerInfo(TypeSymbol targetType)
9502_ => (null, ImmutableArray<ParameterSymbol>.Empty),
9979ParameterSymbol? parameterOpt,
10025var parameter = method.Parameters[0];
10198ParameterSymbol? parameterOpt,
10450private MethodSymbol CheckMethodGroupReceiverNullability(BoundMethodGroup group, ImmutableArray<ParameterSymbol> parameters, MethodSymbol method, bool invokedAsExtensionMethod)
10473foreach (var parameter in parameters)
10487ParameterSymbol? receiverParameter = isNewExtensionMethod ? method.ContainingType.ExtensionParameter : method.Parameters[0];
10580var parameter = node.ParameterSymbol;
10709BoundParameter { ParameterSymbol: ParameterSymbol parameter }
10874var receiverParameter = isNewExtension ? deconstructMethod.ContainingType.ExtensionParameter : deconstructMethod.Parameters[0];
10882var parameter = parameters[i + offset];
10902var parameter = parameters[i + offset];
11169ParameterSymbol? parameter = null;
11416private void ReportNullabilityMismatchInRefArgument(BoundExpression argument, TypeSymbol argumentType, ParameterSymbol parameter, TypeSymbol parameterType)
11428private void ReportNullabilityMismatchInArgument(SyntaxNode argument, TypeSymbol argumentType, ParameterSymbol parameter, TypeSymbol parameterType, bool forOutput)
11433private void ReportNullabilityMismatchInArgument(Location argumentLocation, TypeSymbol argumentType, ParameterSymbol? parameterOpt, TypeSymbol parameterType, bool forOutput)
11449private TypeWithAnnotations GetDeclaredParameterResult(ParameterSymbol parameter)
11476var extensionParameter = property.ContainingType.ExtensionParameter;
11478ImmutableArray<ParameterSymbol> parameters = [extensionParameter];
12118var parameter = method.Parameters[0];
12351var trueFalseParameter = trueFalseOperator.Parameters[0];
12792private void CheckExtensionMethodThisNullability(BoundExpression expr, Conversion conversion, ParameterSymbol parameter, TypeWithState result)
Generated\BoundNodes.xml.Generated.cs (17)
350public BoundParameterEqualsValue(SyntaxNode syntax, ParameterSymbol parameter, ImmutableArray<LocalSymbol> locals, BoundExpression value, bool hasErrors = false)
361public ParameterSymbol Parameter { get; }
366public BoundParameterEqualsValue Update(ParameterSymbol parameter, ImmutableArray<LocalSymbol> locals, BoundExpression value)
2378public BoundParameterId(SyntaxNode syntax, ParameterSymbol parameter, FieldSymbol? hoistedField, TypeSymbol type, bool hasErrors)
2389public BoundParameterId(SyntaxNode syntax, ParameterSymbol parameter, FieldSymbol? hoistedField, TypeSymbol type)
2401public ParameterSymbol Parameter { get; }
2407public BoundParameterId Update(ParameterSymbol parameter, FieldSymbol? hoistedField, TypeSymbol type)
4630public BoundParameter(SyntaxNode syntax, ParameterSymbol parameterSymbol, TypeSymbol type, bool hasErrors)
4640public BoundParameter(SyntaxNode syntax, ParameterSymbol parameterSymbol, TypeSymbol type)
4651public ParameterSymbol ParameterSymbol { get; }
4656public BoundParameter Update(ParameterSymbol parameterSymbol, TypeSymbol type)
10854ParameterSymbol parameter = this.VisitParameterSymbol(node.Parameter);
11226ParameterSymbol parameter = this.VisitParameterSymbol(node.Parameter);
11608ParameterSymbol parameterSymbol = this.VisitParameterSymbol(node.ParameterSymbol);
12435ParameterSymbol parameter = GetUpdatedSymbol(node, node.Parameter);
13209ParameterSymbol parameter = GetUpdatedSymbol(node, node.Parameter);
13772ParameterSymbol parameterSymbol = GetUpdatedSymbol(node, node.ParameterSymbol);
Symbols\Compilation_WellKnownMembers.cs (8)
251internal static Symbol? GetRuntimeMember(NamedTypeSymbol declaringType, in MemberDescriptor descriptor, SignatureComparer<MethodSymbol, FieldSymbol, PropertySymbol, TypeSymbol, ParameterSymbol> comparer, AssemblySymbol? accessWithinOpt)
257internal static Symbol? GetRuntimeMember(ImmutableArray<Symbol> members, in MemberDescriptor descriptor, SignatureComparer<MethodSymbol, FieldSymbol, PropertySymbol, TypeSymbol, ParameterSymbol> comparer, AssemblySymbol? accessWithinOpt)
1023foreach (var param in sig.Parameters)
1079internal class SpecialMembersSignatureComparer : SignatureComparer<MethodSymbol, FieldSymbol, PropertySymbol, TypeSymbol, ParameterSymbol>
1149protected override ImmutableArray<ParameterSymbol> GetParameters(MethodSymbol method)
1154protected override ImmutableArray<ParameterSymbol> GetParameters(PropertySymbol property)
1159protected override TypeSymbol GetParamType(ParameterSymbol parameter)
1188protected override bool IsByRefParam(ParameterSymbol parameter)
Symbols\Source\ParameterHelpers.cs (29)
180where TParameterSymbol : ParameterSymbol
215ImmutableArray<ParameterSymbol> parametersForNameConflict = parameters.Cast<TParameterSymbol, ParameterSymbol>();
262where TParameterSymbol : ParameterSymbol
327internal static void EnsureRefKindAttributesExist(PEModuleBuilder moduleBuilder, ImmutableArray<ParameterSymbol> parameters)
332internal static void EnsureRefKindAttributesExist(CSharpCompilation? compilation, ImmutableArray<ParameterSymbol> parameters, BindingDiagnosticBag diagnostics, bool modifyCompilation)
344private static void EnsureRefKindAttributesExist(CSharpCompilation compilation, ImmutableArray<ParameterSymbol> parameters, BindingDiagnosticBag? diagnostics, bool modifyCompilation, PEModuleBuilder? moduleBuilder)
346foreach (var parameter in parameters)
373internal static void EnsureParamCollectionAttributeExists(PEModuleBuilder moduleBuilder, ImmutableArray<ParameterSymbol> parameters)
381internal static void EnsureParamCollectionAttributeExists(CSharpCompilation compilation, ImmutableArray<ParameterSymbol> parameters, BindingDiagnosticBag diagnostics, bool modifyCompilation)
389internal static void EnsureNativeIntegerAttributeExists(PEModuleBuilder moduleBuilder, ImmutableArray<ParameterSymbol> parameters)
395internal static void EnsureNativeIntegerAttributeExists(CSharpCompilation? compilation, ImmutableArray<ParameterSymbol> parameters, BindingDiagnosticBag diagnostics, bool modifyCompilation)
412private static void EnsureNativeIntegerAttributeExists(CSharpCompilation compilation, ImmutableArray<ParameterSymbol> parameters, BindingDiagnosticBag? diagnostics, bool modifyCompilation, PEModuleBuilder? moduleBuilder)
415foreach (var parameter in parameters)
431internal static bool RequiresScopedRefAttribute(ParameterSymbol parameter)
447internal static bool IsRefScopedByDefault(ParameterSymbol parameter)
457internal static void EnsureScopedRefAttributeExists(PEModuleBuilder moduleBuilder, ImmutableArray<ParameterSymbol> parameters)
462internal static void EnsureScopedRefAttributeExists(CSharpCompilation? compilation, ImmutableArray<ParameterSymbol> parameters, BindingDiagnosticBag diagnostics, bool modifyCompilation)
474private static void EnsureScopedRefAttributeExists(CSharpCompilation compilation, ImmutableArray<ParameterSymbol> parameters, BindingDiagnosticBag? diagnostics, bool modifyCompilation, PEModuleBuilder? moduleBuilder)
476foreach (var parameter in parameters)
492internal static void EnsureNullableAttributeExists(PEModuleBuilder moduleBuilder, Symbol container, ImmutableArray<ParameterSymbol> parameters)
497internal static void EnsureNullableAttributeExists(CSharpCompilation? compilation, Symbol container, ImmutableArray<ParameterSymbol> parameters, BindingDiagnosticBag? diagnostics, bool modifyCompilation)
509private static void EnsureNullableAttributeExists(CSharpCompilation compilation, Symbol container, ImmutableArray<ParameterSymbol> parameters, BindingDiagnosticBag? diagnostics, bool modifyCompilation, PEModuleBuilder? moduleBuilder)
513foreach (var parameter in parameters)
530internal static void CheckUnderspecifiedGenericExtension(Symbol extensionMember, ImmutableArray<ParameterSymbol> parameters, BindingDiagnosticBag diagnostics)
552static void reportUnusedExtensionTypeParameters(Symbol extensionMember, ImmutableArray<ParameterSymbol> parameters, BindingDiagnosticBag diagnostics, NamedTypeSymbol extension, ParameterSymbol extensionParameter, PooledHashSet<TypeParameterSymbol> usedTypeParameters)
565foreach (var parameter in parameters)
595internal static Location GetParameterLocation(ParameterSymbol parameter) => parameter.GetNonNullSyntaxNode().Location;
Symbols\Source\SourceMemberContainerSymbol.cs (15)
4455private static bool ParametersMatchPropertyAccessor(PropertySymbol propertySymbol, bool getNotSet, ImmutableArray<ParameterSymbol> methodParams)
4466var methodParam = methodParams[i];
4486private static bool ParametersMatchEventAccessor(EventSymbol eventSymbol, ImmutableArray<ParameterSymbol> methodParams)
4879ctor.Parameters.SelectAsArray<ParameterSymbol, ParameterSymbol>(param => new SignatureOnlyParameterSymbol(param.TypeWithAnnotations,
4926ImmutableArray.Create<ParameterSymbol>(new SignatureOnlyParameterSymbol(
4979ImmutableArray.Create<ParameterSymbol>(new SignatureOnlyParameterSymbol(
5039ImmutableArray<ParameterSymbol>.Empty,
5107ImmutableArray<Symbol> addProperties(ImmutableArray<ParameterSymbol> recordParameters)
5111foreach (ParameterSymbol param in recordParameters)
5118ImmutableArray<ParameterSymbol>.Empty,
5189bool checkMemberNotHidden(Symbol symbol, ParameterSymbol param)
5213ImmutableArray<ParameterSymbol>.Empty,
5244ImmutableArray<ParameterSymbol>.Empty,
5306ImmutableArray.Create<ParameterSymbol>(new SignatureOnlyParameterSymbol(
Symbols\Source\SourceMemberContainerSymbol_ImplementationChecks.cs (13)
19internal delegate void ReportMismatchInParameterType<TArg>(BindingDiagnosticBag bag, MethodSymbol overriddenMethod, MethodSymbol overridingMethod, ParameterSymbol parameter, bool topLevel, TArg arg);
1157if (RequiresValidScopedOverrideForRefSafety(overriddenMethod, overridingMethod.TryGetThisParameter(out var thisParam) ? thisParam : null))
1229(BindingDiagnosticBag diagnostics, MethodSymbol overriddenMethod, MethodSymbol overridingMethod, ParameterSymbol overridingParameter, bool topLevel, Location location)
1298var baseParameter = baseParameters[i];
1301var overrideParameter = overrideParameters[parameterIndex];
1335var overrideParam = overrideParameters[i + overrideParameterOffset];
1336var baseParam = baseParameters[i];
1381internal static bool RequiresValidScopedOverrideForRefSafety(MethodSymbol? method, ParameterSymbol? overrideThisParameter)
1474var baseParameter = baseParameters[i];
1475var overrideParameter = overrideParameters[i + overrideParameterOffset];
1507ReportMismatchInParameterType<(ParameterSymbol BaseParameter, TArg Arg)> reportMismatchInParameterType,
1525var baseParameter = baseParameters[i];
1526var overrideParameter = overrideParameters[i + overrideParameterOffset];
Symbols\Synthesized\SynthesizedEmbeddedNullableAttributeSymbol.cs (7)
76private void GenerateByteArrayConstructorBody(SyntheticBoundNodeFactory factory, ArrayBuilder<BoundStatement> statements, ImmutableArray<ParameterSymbol> parameters)
90private void GenerateSingleByteConstructorBody(SyntheticBoundNodeFactory factory, ArrayBuilder<BoundStatement> statements, ImmutableArray<ParameterSymbol> parameters)
112private readonly ImmutableArray<ParameterSymbol> _parameters;
114private readonly Action<SyntheticBoundNodeFactory, ArrayBuilder<BoundStatement>, ImmutableArray<ParameterSymbol>> _getConstructorBody;
118Func<MethodSymbol, ImmutableArray<ParameterSymbol>> getParameters,
119Action<SyntheticBoundNodeFactory, ArrayBuilder<BoundStatement>, ImmutableArray<ParameterSymbol>> getConstructorBody) :
126public override ImmutableArray<ParameterSymbol> Parameters => _parameters;