Binder\Binder.ValueChecks.cs (34)
125public ImmutableArray<ParameterSymbol> Parameters;
357internal ParameterSymbol? Parameter { get; }
366internal MixableDestination(ParameterSymbol parameter, BoundExpression argument)
402internal ParameterSymbol? Parameter { get; }
408internal EscapeArgument(ParameterSymbol? parameter, BoundExpression argument, RefKind refKind, bool isArgList = false)
416public void Deconstruct(out ParameterSymbol? parameter, out BoundExpression argument, out RefKind refKind)
438internal ParameterSymbol? Parameter { get; }
451internal EscapeValue(ParameterSymbol? parameter, BoundExpression argument, EscapeLevel escapeLevel, bool isRefEscape)
459public void Deconstruct(out ParameterSymbol? parameter, out BoundExpression argument, out EscapeLevel escapeLevel, out bool isRefEscape)
1412ParameterSymbol parameterSymbol = parameter.ParameterSymbol;
1469static void reportReadOnlyParameterError(ParameterSymbol parameterSymbol, SyntaxNode node, BindValueKind valueKind, bool checkingReceiver, BindingDiagnosticBag diagnostics)
1525private static SafeContext GetParameterValEscape(ParameterSymbol parameter)
1535private static EscapeLevel? GetParameterValEscapeLevel(ParameterSymbol parameter) =>
1538private static SafeContext GetParameterRefEscape(ParameterSymbol parameter)
1550private static EscapeLevel? GetParameterRefEscapeLevel(ParameterSymbol parameter) =>
1553private bool CheckParameterValEscape(SyntaxNode node, ParameterSymbol parameter, SafeContext escapeTo, BindingDiagnosticBag diagnostics)
1571private bool CheckParameterRefEscape(SyntaxNode node, BoundExpression parameter, ParameterSymbol parameterSymbol, SafeContext escapeTo, bool checkingReceiver, BindingDiagnosticBag diagnostics)
2432var extensionParameter = symbol.ContainingType.ExtensionParameter;
2715var parameter = argIndex < parameters.Length ?
2743static bool isMixableParameter([NotNullWhen(true)] ParameterSymbol? parameter) =>
2795ParameterSymbol? thisParameter = null;
2900ParameterSymbol? extensionReceiver = null;
2957return method?.TryGetThisParameter(out var thisParameter) == true && thisParameter is not null &&
2961static bool isRefToRefStruct(ParameterSymbol parameter)
3127private static string GetInvocationParameterName(ParameterSymbol? parameter)
3144ParameterSymbol? parameter,
3383private readonly ParameterSymbol _underlyingParameter;
3385internal TypeParameterThisParameterSymbol(ParameterSymbol underlyingParameter, TypeParameterSymbol type)
3777var thisParam = ((MethodSymbol)_symbol).ThisParameter;
4072var thisParam = ((MethodSymbol)_symbol).ThisParameter;
4384var thisParam = ((MethodSymbol)_symbol).ThisParameter;
5081var thisParam = ((MethodSymbol)_symbol).ThisParameter;
5752ImmutableArray.Create<ParameterSymbol>(new SignatureOnlyParameterSymbol(
5792ImmutableArray.Create<ParameterSymbol>(new SignatureOnlyParameterSymbol(
Binder\Binder_Expressions.cs (25)
492TryGetPrimaryConstructorParameterUsedAsValue(primaryConstructor, result) is (ParameterSymbol parameter, SyntaxNode syntax) &&
521ParameterSymbol parameter,
532ParameterSymbol parameter,
1832private ParameterSymbol GetShadowedPrimaryConstructorParameter(SimpleNameSyntax node, Symbol symbol, bool invoked, ArrayBuilder<Symbol> membersOpt)
1879if (singleSymbol is ParameterSymbol shadowedParameter &&
2082var parameter = (ParameterSymbol)symbol;
2615ParameterSymbol? thisSymbol = this.ContainingMemberOrLambda.EnclosingThisSymbol();
3561ImmutableArray<ParameterSymbol> parameters,
3617ImmutableArray<ParameterSymbol> parameters,
3650ImmutableArray<ParameterSymbol> parameters,
3733static ParameterSymbol getCorrespondingParameter(in MemberAnalysisResult result, ImmutableArray<ParameterSymbol> parameters, int arg)
3743ImmutableArray<ParameterSymbol> parameters,
3755var correspondingParameter = getCorrespondingParameter(in result, parameters, interpolatedStringArgNum);
3872var receiverParameter = ((NamedTypeSymbol)methodResult.Member.ContainingSymbol).ExtensionParameter;
3882var parameter = parameters[originalParameterIndex];
3902var parameter = parameters[originalParameterIndex];
3977private void CheckArgumentRefKind(RefKind argRefKind, BoundExpression argument, int arg, ParameterSymbol parameter,
5116var parametersPassedToBase = new OrderedSet<ParameterSymbol>();
5125if (TryGetPrimaryConstructorParameterUsedAsValue(primaryConstructor, analyzedArguments.Argument(i)) is (ParameterSymbol parameter, SyntaxNode syntax))
5129var baseParameter = GetCorrespondingParameter(i, resultMember.Parameters, argsToParamsOpt, expanded: true);
5222private static (ParameterSymbol, SyntaxNode) TryGetPrimaryConstructorParameterUsedAsValue(SynthesizedPrimaryConstructor primaryConstructor, BoundExpression boundExpression)
7727leftType = ((ParameterSymbol)leftSymbol).Type;
10286var parameter = property.Parameters[0];
Binder\Binder_Invocation.cs (17)
1269ParameterSymbol receiverParameter = method.Parameters.First();
1371private BoundExpression CheckAndConvertExtensionReceiver(BoundExpression receiver, ParameterSymbol extensionParameter, BindingDiagnosticBag diagnostics)
1428private BoundExpression GetDefaultParameterSpecialNoConversion(SyntaxNode syntax, ParameterSymbol parameter, BindingDiagnosticBag diagnostics)
1486internal static ParameterSymbol? GetCorrespondingParameter(
1488ImmutableArray<ParameterSymbol> parameters,
1493ParameterSymbol? parameter;
1531ImmutableArray<ParameterSymbol> parameters,
1547var parameter = GetCorrespondingParameter(i, parameters, argsToParamsOpt, expanded);
1608foreach (var parameter in parameters.AsSpan()[..lastIndex])
1664BoundExpression bindDefaultArgument(SyntaxNode syntax, ParameterSymbol parameter, Symbol? containingMember, bool enableCallerInfo, BindingDiagnosticBag diagnostics,
1836private BoundExpression CreateParamsCollection(SyntaxNode node, ParameterSymbol paramsParameter, ImmutableArray<BoundExpression> collectionArgs, BindingDiagnosticBag diagnostics)
2120var parameterListList = ArrayBuilder<ImmutableArray<ParameterSymbol>>.GetInstance();
2140var parameterListList = ArrayBuilder<ImmutableArray<ParameterSymbol>>.GetInstance();
2159private ImmutableArray<BoundExpression> BuildArgumentsForErrorRecovery(AnalyzedArguments analyzedArguments, IEnumerable<ImmutableArray<ParameterSymbol>> parameterListList, BindingDiagnosticBag diagnostics)
2295private static TypeSymbol GetCorrespondingParameterType(AnalyzedArguments analyzedArguments, int i, ImmutableArray<ParameterSymbol> parameterList)
2301foreach (var parameter in parameterList)
2318return BuildArgumentsForErrorRecovery(analyzedArguments, Enumerable.Empty<ImmutableArray<ParameterSymbol>>(), BindingDiagnosticBag.Discarded);
Binder\Semantics\OverloadResolution\OverloadResolution.cs (23)
1320ParameterSymbol final = member.GetParameters().Last();
2543var m1LastParameter = m1LeastOverriddenParameters[^1];
2544var m2LastParameter = m2LeastOverriddenParameters[^1];
2548var parameter1 = getParameterOrExtensionParameter(i, m1.Result, m1LeastOverriddenParameters, m1.LeastOverriddenMember);
2549var parameter2 = getParameterOrExtensionParameter(i, m2.Result, m2LeastOverriddenParameters, m2.LeastOverriddenMember);
2577static TypeSymbol getParameterTypeAndRefKind(int i, MemberAnalysisResult memberResolutionResult, ImmutableArray<ParameterSymbol> parameters,
2580ParameterSymbol parameter = getParameterOrExtensionParameter(i, memberResolutionResult, parameters, member);
2598static ParameterSymbol getParameterOrExtensionParameter(int argIndex, MemberAnalysisResult result, ImmutableArray<ParameterSymbol> parameters, TMember member)
2605ParameterSymbol? extensionParameter = member.ContainingType.ExtensionParameter;
2619ImmutableArray<ParameterSymbol> parameters1,
2621ImmutableArray<ParameterSymbol> parameters2)
2629var p1 = getParameterOrExtensionParameter(i, m1.Result, parameters1, m1.Member);
2630var p2 = getParameterOrExtensionParameter(i, m2.Result, parameters2, m2.Member);
2685private static RefKind GetParameterBetternessRefKind<TMember>(ParameterSymbol parameter, TMember member) where TMember : Symbol
3778private static bool IdenticalParameters(ImmutableArray<ParameterSymbol> p1, ImmutableArray<ParameterSymbol> p2)
3793var param1 = p1[i];
3794var param2 = p2[i];
3904ImmutableArray<ParameterSymbol> parameters = member.GetParametersIncludingExtensionParameter(skipExtensionIfStatic: false);
3938var parameter = parameters[parm];
3963ParameterSymbol parameter,
4075var 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)
1810case ParameterSymbol _:
3234protected ParameterSymbol GetParameterSymbol(
3235ImmutableArray<ParameterSymbol> parameters,
3239foreach (var symbol in parameters)
3705var thisParam = GetThisParameter(boundNode.Type, containingType, containingMember, out resultKind);
3750private static ParameterSymbol GetThisParameter(TypeSymbol typeOfThis, NamedTypeSymbol containingType, Symbol containingMember, out LookupResultKind resultKind)
3759ParameterSymbol thisParam;
4536ParameterSymbol param = FindNamedParameter(containingInvocationInfo.Symbol.GetSymbol().GetParameters(), argumentName);
4553ParameterSymbol param = FindNamedParameter(invocationSym.GetSymbol().GetParameters(), argumentName);
4575private static ParameterSymbol FindNamedParameter(ImmutableArray<ParameterSymbol> parameters, string argumentName)
4577foreach (ParameterSymbol param in parameters)
FlowAnalysis\NullableWalker.cs (88)
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, int, Location, ArrayBuilder<VisitResult>)"/>.
640ParameterSymbol methodThisParameter = MethodThisParameter;
647if (_symbol.TryGetInstanceExtensionParameter(out ParameterSymbol? extensionParameter))
693if (method.TryGetThisParameter(out var thisParameter) && thisParameter is object)
1278ImmutableArray<ParameterSymbol> parameters = method.GetParametersIncludingExtensionParameter(skipExtensionIfStatic: true);
1295foreach (var parameter in parameters)
1326ImmutableArray<ParameterSymbol> parameters = method.GetParametersIncludingExtensionParameter(skipExtensionIfStatic: true);
1327foreach (var parameter in parameters)
1360private void EnforceParameterNotNullWhenOnExit(SyntaxNode syntax, ImmutableArray<ParameterSymbol> parameters, bool sense, LocalState stateWhen)
1367foreach (var parameter in parameters)
1373private void ReportParameterIfBadConditionalState(SyntaxNode syntax, ParameterSymbol parameter, bool sense, LocalState stateWhen)
1382bool parameterHasBadConditionalState(ParameterSymbol parameter, bool sense, LocalState stateWhen)
1420private void EnforceNotNullIfNotNull(SyntaxNode? syntaxOpt, LocalState state, ImmutableArray<ParameterSymbol> parameters, ImmutableHashSet<string> inputParamNames, NullableFlowState outputState, ParameterSymbol? outputParam)
1427foreach (var inputParam in parameters)
2059case ParameterSymbol parameter:
2078var parameter = factory.Parameters[0];
2184var thisParameter = method?.ThisParameter;
2284if (symbol is ParameterSymbol { ContainingSymbol: SynthesizedPrimaryConstructor primaryConstructor } parameter &&
2296if (enclosingMemberMethod?.TryGetThisParameter(out ParameterSymbol? methodThisParameter) == true &&
2392private static object GetParameterAsDiagnosticArgument(ParameterSymbol? parameterOpt)
2399private static object GetContainingSymbolAsDiagnosticArgument(ParameterSymbol? parameterOpt)
2461ParameterSymbol? parameterOpt = null,
3028var parameter = methodParameters[i];
3037private void EnterParameter(ParameterSymbol parameter, TypeWithAnnotations parameterType)
3064var parameter = equalsValue.Parameter;
3162ImmutableArray<ParameterSymbol> parameters = method.GetParametersIncludingExtensionParameter(skipExtensionIfStatic: true);
4120var reinferredParameter = reinferredAddMethod.Parameters[argIndex];
4604ImmutableArray<ParameterSymbol> parameters = ((PropertySymbol?)symbol)?.Parameters ?? default;
5771BoundExpression expr, BoundExpression operand, Conversion conversion, ParameterSymbol parameter, TypeWithState operandType, bool isLifted,
5795private void VisitBinaryOperatorOperandConversionAndPostConditions(BoundExpression expr, BoundExpression operand, Conversion conversion, ParameterSymbol parameter, TypeWithState operandType, bool isLifted)
7001ImmutableArray<ParameterSymbol> parameters = AdjustParametersIfNeeded(method.Parameters, adjustForExtensionBlockMember, method);
7027private static ImmutableArray<ParameterSymbol> AdjustParametersIfNeeded(ImmutableArray<ParameterSymbol> parameters, bool isExtensionBlockMember, Symbol member)
7034ParameterSymbol? extensionParameter = member.ContainingType.ExtensionParameter;
7068ParameterSymbol? extensionParameter = member.ContainingType.ExtensionParameter;
7386private FlowAnalysisAnnotations GetParameterAnnotations(ParameterSymbol parameter)
7541private delegate (TMember? member, bool returnNotNull) ArgumentsCompletionDelegate<TMember>(ImmutableArray<VisitResult> argumentResults, ImmutableArray<ParameterSymbol> parametersOpt, TMember? member) where TMember : Symbol;
7561ImmutableArray<ParameterSymbol> parametersOpt,
7604ImmutableArray<ParameterSymbol> parametersOpt,
7660var notNullParametersBuilder = parameterHasNotNullIfNotNull ? ArrayBuilder<ParameterSymbol>.GetInstance() : null;
7672(ParameterSymbol? parameter, TypeWithAnnotations parameterType, FlowAnalysisAnnotations parameterAnnotations, bool isExpandedParamsArgument) =
7748(ParameterSymbol? parameter, TypeWithAnnotations parameterType, FlowAnalysisAnnotations parameterAnnotations, _) =
7801return (ImmutableArray<VisitResult> results, ImmutableArray<ParameterSymbol> parametersOpt, TMember? member) =>
7814static void expandParamsCollection(ref ImmutableArray<BoundExpression> arguments, ref ImmutableArray<RefKind> refKindsOpt, ImmutableArray<ParameterSymbol> parametersOpt, ref ImmutableArray<int> argsToParamsOpt, ref BitVector defaultArguments)
7955if (current.TryGetThisParameter(out var thisParameter) && thisParameter is not null)
8100private ImmutableArray<FlowAnalysisAnnotations> GetParametersAnnotations(ImmutableArray<BoundExpression> arguments, ImmutableArray<ParameterSymbol> parametersOpt, ImmutableArray<int> argsToParamsOpt, bool expanded)
8196ParameterSymbol parameter,
8334ParameterSymbol parameter,
8338ArrayBuilder<ParameterSymbol>? notNullParametersOpt,
8429FlowAnalysisAnnotations notNullBasedOnParameters(FlowAnalysisAnnotations parameterAnnotations, ArrayBuilder<ParameterSymbol>? notNullParametersOpt, ParameterSymbol parameter)
8436foreach (var notNullParameter in notNullParametersOpt)
8448void trackNullableStateForAssignment(TypeSymbol? receiverType, BoundExpression parameterValue, TypeWithAnnotations lValueType, int targetSlot, TypeWithState parameterWithState, bool isSuppressed, FlowAnalysisAnnotations parameterAnnotations, RefKind refKind, ParameterSymbol parameter)
8473static bool hasConditionalPostCondition(TypeSymbol? receiverType, FlowAnalysisAnnotations annotations, RefKind refKind, ParameterSymbol parameter)
8484static bool isUnionTryGetValueValue(TypeSymbol? receiverType, RefKind refKind, ParameterSymbol parameter)
8515static TypeWithState applyPostConditionsWhenTrue(TypeSymbol? receiverType, TypeWithState typeWithState, FlowAnalysisAnnotations annotations, RefKind refKind, ParameterSymbol parameter)
8650private (ParameterSymbol? Parameter, TypeWithAnnotations Type, FlowAnalysisAnnotations Annotations, bool isExpandedParamsArgument) GetCorrespondingParameter(
8652ImmutableArray<ParameterSymbol> parametersOpt,
8662var parameter = Binder.GetCorrespondingParameter(argumentOrdinal, parametersOpt, argsToParamsOpt, expanded);
9496ParameterSymbol? parameterOpt,
9682void reportBadDelegateParameter(BindingDiagnosticBag bag, MethodSymbol sourceInvokeMethod, MethodSymbol targetInvokeMethod, ParameterSymbol parameter, bool topLevel, (TypeSymbol targetType, Location location) arg)
9753void reportBadDelegateParameter(BindingDiagnosticBag bag, MethodSymbol sourceInvokeMethod, MethodSymbol targetInvokeMethod, ParameterSymbol parameterSymbol, bool topLevel, Location location)
9808ParameterSymbol? parameterOpt = null,
9886static (MethodSymbol invokeSignature, ImmutableArray<ParameterSymbol>) getDelegateOrFunctionPointerInfo(TypeSymbol targetType)
9891_ => (null, ImmutableArray<ParameterSymbol>.Empty),
10426ParameterSymbol? parameterOpt,
10471var parameter = method.Parameters[0];
10637var parameter = factory.Parameters[0];
10814ParameterSymbol? parameterOpt,
11066private MethodSymbol CheckMethodGroupReceiverNullability(BoundMethodGroup group, ImmutableArray<ParameterSymbol> parameters, MethodSymbol method, bool invokedAsExtensionMethod)
11089foreach (var parameter in parameters)
11103ParameterSymbol? receiverParameter = isExtensionBlockMethod ? method.ContainingType.ExtensionParameter : method.Parameters[0];
11196var parameter = node.ParameterSymbol;
11325BoundParameter { ParameterSymbol: ParameterSymbol parameter }
11490var receiverParameter = isExtensionBlockMethod ? deconstructMethod.ContainingType.ExtensionParameter : deconstructMethod.Parameters[0];
11498var parameter = parameters[i + offset];
11518var parameter = parameters[i + offset];
11790ParameterSymbol? parameter = null;
12053private void ReportNullabilityMismatchInRefArgument(BoundExpression argument, TypeSymbol argumentType, ParameterSymbol parameter, TypeSymbol parameterType)
12065private void ReportNullabilityMismatchInArgument(SyntaxNode argument, TypeSymbol argumentType, ParameterSymbol parameter, TypeSymbol parameterType, bool forOutput)
12070private void ReportNullabilityMismatchInArgument(Location argumentLocation, TypeSymbol argumentType, ParameterSymbol? parameterOpt, TypeSymbol parameterType, bool forOutput)
12086private TypeWithAnnotations GetDeclaredParameterResult(ParameterSymbol parameter)
12113var extensionParameter = property.ContainingType.ExtensionParameter;
12115ImmutableArray<ParameterSymbol> parameters = [extensionParameter];
12773var parameter = method.Parameters[0];
13006var trueFalseParameter = trueFalseOperator.Parameters[0];
13445private void CheckExtensionMethodThisNullability(BoundExpression expr, Conversion conversion, ParameterSymbol parameter, TypeWithState result)
Generated\BoundNodes.xml.Generated.cs (17)
355public BoundParameterEqualsValue(SyntaxNode syntax, ParameterSymbol parameter, ImmutableArray<LocalSymbol> locals, BoundExpression value, bool hasErrors = false)
366public ParameterSymbol Parameter { get; }
371public BoundParameterEqualsValue Update(ParameterSymbol parameter, ImmutableArray<LocalSymbol> locals, BoundExpression value)
2428public BoundParameterId(SyntaxNode syntax, ParameterSymbol parameter, FieldSymbol? hoistedField, TypeSymbol type, bool hasErrors)
2439public BoundParameterId(SyntaxNode syntax, ParameterSymbol parameter, FieldSymbol? hoistedField, TypeSymbol type)
2451public ParameterSymbol Parameter { get; }
2457public BoundParameterId Update(ParameterSymbol parameter, FieldSymbol? hoistedField, TypeSymbol type)
4690public BoundParameter(SyntaxNode syntax, ParameterSymbol parameterSymbol, TypeSymbol type, bool hasErrors)
4700public BoundParameter(SyntaxNode syntax, ParameterSymbol parameterSymbol, TypeSymbol type)
4711public ParameterSymbol ParameterSymbol { get; }
4716public BoundParameter Update(ParameterSymbol parameterSymbol, TypeSymbol type)
11124ParameterSymbol parameter = this.VisitParameterSymbol(node.Parameter);
11502ParameterSymbol parameter = this.VisitParameterSymbol(node.Parameter);
11884ParameterSymbol parameterSymbol = this.VisitParameterSymbol(node.ParameterSymbol);
12737ParameterSymbol parameter = GetUpdatedSymbol(node, node.Parameter);
13528ParameterSymbol parameter = GetUpdatedSymbol(node, node.Parameter);
14091ParameterSymbol 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)
1047foreach (var param in sig.Parameters)
1103internal class SpecialMembersSignatureComparer : SignatureComparer<MethodSymbol, FieldSymbol, PropertySymbol, TypeSymbol, ParameterSymbol>
1173protected override ImmutableArray<ParameterSymbol> GetParameters(MethodSymbol method)
1178protected override ImmutableArray<ParameterSymbol> GetParameters(PropertySymbol property)
1183protected override TypeSymbol GetParamType(ParameterSymbol parameter)
1212protected 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)
585internal static Location GetParameterLocation(ParameterSymbol parameter) => parameter.GetNonNullSyntaxNode().Location;
Symbols\Source\SourceMemberContainerSymbol.cs (15)
4627private static bool ParametersMatchPropertyAccessor(PropertySymbol propertySymbol, bool getNotSet, ImmutableArray<ParameterSymbol> methodParams)
4638var methodParam = methodParams[i];
4658private static bool ParametersMatchEventAccessor(EventSymbol eventSymbol, ImmutableArray<ParameterSymbol> methodParams)
5143ctor.Parameters.SelectAsArray<ParameterSymbol, ParameterSymbol>(param => new SignatureOnlyParameterSymbol(param.TypeWithAnnotations,
5190ImmutableArray.Create<ParameterSymbol>(new SignatureOnlyParameterSymbol(
5243ImmutableArray.Create<ParameterSymbol>(new SignatureOnlyParameterSymbol(
5303ImmutableArray<ParameterSymbol>.Empty,
5371ImmutableArray<Symbol> addProperties(ImmutableArray<ParameterSymbol> recordParameters)
5375foreach (ParameterSymbol param in recordParameters)
5382ImmutableArray<ParameterSymbol>.Empty,
5453bool checkMemberNotHidden(Symbol symbol, ParameterSymbol param)
5477ImmutableArray<ParameterSymbol>.Empty,
5508ImmutableArray<ParameterSymbol>.Empty,
5570ImmutableArray.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);
1180if (RequiresValidScopedOverrideForRefSafety(overriddenMethod, overridingMethod.TryGetThisParameter(out var thisParam) ? thisParam : null))
1260(BindingDiagnosticBag diagnostics, MethodSymbol overriddenMethod, MethodSymbol overridingMethod, ParameterSymbol overridingParameter, bool topLevel, Location location)
1329var baseParameter = baseParameters[i];
1332var overrideParameter = overrideParameters[parameterIndex];
1366var overrideParam = overrideParameters[i + overrideParameterOffset];
1367var baseParam = baseParameters[i];
1412internal static bool RequiresValidScopedOverrideForRefSafety(MethodSymbol? method, ParameterSymbol? overrideThisParameter)
1505var baseParameter = baseParameters[i];
1506var overrideParameter = overrideParameters[i + overrideParameterOffset];
1538ReportMismatchInParameterType<(ParameterSymbol BaseParameter, TArg Arg)> reportMismatchInParameterType,
1556var baseParameter = baseParameters[i];
1557var 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;