Binder\Binder_Expressions.cs (25)
492TryGetPrimaryConstructorParameterUsedAsValue(primaryConstructor, result) is (ParameterSymbol parameter, SyntaxNode syntax) &&
521ParameterSymbol parameter,
532ParameterSymbol parameter,
1835private ParameterSymbol GetShadowedPrimaryConstructorParameter(SimpleNameSyntax node, Symbol symbol, bool invoked, ArrayBuilder<Symbol> membersOpt)
1882if (singleSymbol is ParameterSymbol shadowedParameter &&
2085var parameter = (ParameterSymbol)symbol;
2618ParameterSymbol? thisSymbol = this.ContainingMemberOrLambda.EnclosingThisSymbol();
3564ImmutableArray<ParameterSymbol> parameters,
3620ImmutableArray<ParameterSymbol> parameters,
3653ImmutableArray<ParameterSymbol> parameters,
3736static ParameterSymbol getCorrespondingParameter(in MemberAnalysisResult result, ImmutableArray<ParameterSymbol> parameters, int arg)
3746ImmutableArray<ParameterSymbol> parameters,
3758var correspondingParameter = getCorrespondingParameter(in result, parameters, interpolatedStringArgNum);
3875var receiverParameter = ((NamedTypeSymbol)methodResult.Member.ContainingSymbol).ExtensionParameter;
3885var parameter = parameters[originalParameterIndex];
3905var parameter = parameters[originalParameterIndex];
3980private void CheckArgumentRefKind(RefKind argRefKind, BoundExpression argument, int arg, ParameterSymbol parameter,
5131var parametersPassedToBase = new OrderedSet<ParameterSymbol>();
5140if (TryGetPrimaryConstructorParameterUsedAsValue(primaryConstructor, analyzedArguments.Argument(i)) is (ParameterSymbol parameter, SyntaxNode syntax))
5144var baseParameter = GetCorrespondingParameter(i, resultMember.Parameters, argsToParamsOpt, expanded: true);
5237private static (ParameterSymbol, SyntaxNode) TryGetPrimaryConstructorParameterUsedAsValue(SynthesizedPrimaryConstructor primaryConstructor, BoundExpression boundExpression)
7757leftType = ((ParameterSymbol)leftSymbol).Type;
11006var parameter = property.Parameters[0];
Binder\Binder_Invocation.cs (17)
1294ParameterSymbol receiverParameter = method.Parameters.First();
1396private BoundExpression CheckAndConvertExtensionReceiver(BoundExpression receiver, ParameterSymbol extensionParameter, BindingDiagnosticBag diagnostics)
1465private BoundExpression GetDefaultParameterSpecialNoConversion(SyntaxNode syntax, ParameterSymbol parameter, BindingDiagnosticBag diagnostics)
1523internal static ParameterSymbol? GetCorrespondingParameter(
1525ImmutableArray<ParameterSymbol> parameters,
1530ParameterSymbol? parameter;
1568ImmutableArray<ParameterSymbol> parameters,
1584var parameter = GetCorrespondingParameter(i, parameters, argsToParamsOpt, expanded);
1645foreach (var parameter in parameters.AsSpan()[..lastIndex])
1701BoundExpression bindDefaultArgument(SyntaxNode syntax, ParameterSymbol parameter, Symbol? containingMember, bool enableCallerInfo, BindingDiagnosticBag diagnostics,
1873private BoundExpression CreateParamsCollection(SyntaxNode node, ParameterSymbol paramsParameter, ImmutableArray<BoundExpression> collectionArgs, BindingDiagnosticBag diagnostics)
2157var parameterListList = ArrayBuilder<ImmutableArray<ParameterSymbol>>.GetInstance();
2177var parameterListList = ArrayBuilder<ImmutableArray<ParameterSymbol>>.GetInstance();
2196private ImmutableArray<BoundExpression> BuildArgumentsForErrorRecovery(AnalyzedArguments analyzedArguments, IEnumerable<ImmutableArray<ParameterSymbol>> parameterListList, BindingDiagnosticBag diagnostics)
2332private static TypeSymbol GetCorrespondingParameterType(AnalyzedArguments analyzedArguments, int i, ImmutableArray<ParameterSymbol> parameterList)
2338foreach (var parameter in parameterList)
2355return BuildArgumentsForErrorRecovery(analyzedArguments, Enumerable.Empty<ImmutableArray<ParameterSymbol>>(), BindingDiagnosticBag.Discarded);
Binder\Binder.ValueChecks.cs (34)
105public ImmutableArray<ParameterSymbol> Parameters;
343internal ParameterSymbol? Parameter { get; }
352internal MixableDestination(ParameterSymbol parameter, BoundExpression argument)
388internal ParameterSymbol? Parameter { get; }
394internal EscapeArgument(ParameterSymbol? parameter, BoundExpression argument, RefKind refKind, bool isArgList = false)
402public void Deconstruct(out ParameterSymbol? parameter, out BoundExpression argument, out RefKind refKind)
424internal ParameterSymbol? Parameter { get; }
437internal EscapeValue(ParameterSymbol? parameter, BoundExpression argument, EscapeLevel escapeLevel, bool isRefEscape)
445public void Deconstruct(out ParameterSymbol? parameter, out BoundExpression argument, out EscapeLevel escapeLevel, out bool isRefEscape)
1409ParameterSymbol parameterSymbol = parameter.ParameterSymbol;
1466static void reportReadOnlyParameterError(ParameterSymbol parameterSymbol, SyntaxNode node, BindValueKind valueKind, bool checkingReceiver, BindingDiagnosticBag diagnostics)
1522private static SafeContext GetParameterValEscape(ParameterSymbol parameter)
1532private static EscapeLevel? GetParameterValEscapeLevel(ParameterSymbol parameter) =>
1535private static SafeContext GetParameterRefEscape(ParameterSymbol parameter)
1547private static EscapeLevel? GetParameterRefEscapeLevel(ParameterSymbol parameter) =>
1550private bool CheckParameterValEscape(SyntaxNode node, ParameterSymbol parameter, SafeContext escapeTo, BindingDiagnosticBag diagnostics)
1568private bool CheckParameterRefEscape(SyntaxNode node, BoundExpression parameter, ParameterSymbol parameterSymbol, SafeContext escapeTo, bool checkingReceiver, BindingDiagnosticBag diagnostics)
2430var extensionParameter = symbol.ContainingType.ExtensionParameter;
2713var parameter = argIndex < parameters.Length ?
2741static bool isMixableParameter([NotNullWhen(true)] ParameterSymbol? parameter) =>
2768ParameterSymbol? thisParameter = null;
2873ParameterSymbol? extensionReceiver = null;
2930return method?.TryGetThisParameter(out var thisParameter) == true && thisParameter is not null &&
2934static bool isRefToRefStruct(ParameterSymbol parameter)
3100private static string GetInvocationParameterName(ParameterSymbol? parameter)
3117ParameterSymbol? parameter,
3356private readonly ParameterSymbol _underlyingParameter;
3358internal TypeParameterThisParameterSymbol(ParameterSymbol underlyingParameter, TypeParameterSymbol type)
3757var thisParam = ((MethodSymbol)_symbol).ThisParameter;
4056var thisParam = ((MethodSymbol)_symbol).ThisParameter;
4368var thisParam = ((MethodSymbol)_symbol).ThisParameter;
5069var thisParam = ((MethodSymbol)_symbol).ThisParameter;
5744ImmutableArray.Create<ParameterSymbol>(new SignatureOnlyParameterSymbol(
5784ImmutableArray.Create<ParameterSymbol>(new SignatureOnlyParameterSymbol(
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>)"/>.
642ParameterSymbol methodThisParameter = MethodThisParameter;
649if (_symbol.TryGetInstanceExtensionParameter(out ParameterSymbol? extensionParameter))
695if (method.TryGetThisParameter(out var thisParameter) && thisParameter is object)
1315ImmutableArray<ParameterSymbol> parameters = method.GetParametersIncludingExtensionParameter(skipExtensionIfStatic: true);
1332foreach (var parameter in parameters)
1363ImmutableArray<ParameterSymbol> parameters = method.GetParametersIncludingExtensionParameter(skipExtensionIfStatic: true);
1364foreach (var parameter in parameters)
1397private void EnforceParameterNotNullWhenOnExit(SyntaxNode syntax, ImmutableArray<ParameterSymbol> parameters, bool sense, LocalState stateWhen)
1404foreach (var parameter in parameters)
1410private void ReportParameterIfBadConditionalState(SyntaxNode syntax, ParameterSymbol parameter, bool sense, LocalState stateWhen)
1419bool parameterHasBadConditionalState(ParameterSymbol parameter, bool sense, LocalState stateWhen)
1457private void EnforceNotNullIfNotNull(SyntaxNode? syntaxOpt, LocalState state, ImmutableArray<ParameterSymbol> parameters, ImmutableHashSet<string> inputParamNames, NullableFlowState outputState, ParameterSymbol? outputParam)
1464foreach (var inputParam in parameters)
2096case ParameterSymbol parameter:
2209var thisParameter = method?.ThisParameter;
2319if (symbol is ParameterSymbol { ContainingSymbol: SynthesizedPrimaryConstructor primaryConstructor } parameter &&
2331if (enclosingMemberMethod?.TryGetThisParameter(out ParameterSymbol? methodThisParameter) == true &&
2436private static object GetParameterAsDiagnosticArgument(ParameterSymbol? parameterOpt)
2443private static object GetContainingSymbolAsDiagnosticArgument(ParameterSymbol? parameterOpt)
2505ParameterSymbol? parameterOpt = null,
3079var parameter = methodParameters[i];
3088private void EnterParameter(ParameterSymbol parameter, TypeWithAnnotations parameterType)
3115var parameter = equalsValue.Parameter;
3213ImmutableArray<ParameterSymbol> parameters = method.GetParametersIncludingExtensionParameter(skipExtensionIfStatic: true);
4171var reinferredParameter = reinferredAddMethod.Parameters[argIndex];
4645getSymbolAndParameters(objectInitializer, containingType, out Symbol? symbol, out ImmutableArray<ParameterSymbol> parameters);
4712getSymbolAndParameters(objectInitializer, containingType, out Symbol? symbol, out ImmutableArray<ParameterSymbol> parameters);
4850out Symbol? symbol, out ImmutableArray<ParameterSymbol> parametersOpt)
5827BoundExpression expr, BoundExpression operand, Conversion conversion, ParameterSymbol parameter, TypeWithState operandType, bool isLifted,
5851private void VisitBinaryOperatorOperandConversionAndPostConditions(BoundExpression expr, BoundExpression operand, Conversion conversion, ParameterSymbol parameter, TypeWithState operandType, bool isLifted)
7057ImmutableArray<ParameterSymbol> parameters = AdjustParametersIfNeeded(method.Parameters, adjustForExtensionBlockMember, method);
7084private static ImmutableArray<ParameterSymbol> AdjustParametersIfNeeded(ImmutableArray<ParameterSymbol> parameters, bool isExtensionBlockMember, Symbol member)
7091ParameterSymbol? extensionParameter = member.ContainingType.ExtensionParameter;
7125ParameterSymbol? extensionParameter = member.ContainingType.ExtensionParameter;
7463private FlowAnalysisAnnotations GetParameterAnnotations(ParameterSymbol parameter)
7626private delegate (TMember? member, bool returnNotNull) ArgumentsCompletionDelegate<TMember>(ImmutableArray<VisitResult> argumentResults, ImmutableArray<ParameterSymbol> parametersOpt, TMember? member) where TMember : Symbol;
7646ImmutableArray<ParameterSymbol> parametersOpt,
7689ImmutableArray<ParameterSymbol> parametersOpt,
7745var notNullParametersBuilder = parameterHasNotNullIfNotNull ? ArrayBuilder<ParameterSymbol>.GetInstance() : null;
7757(ParameterSymbol? parameter, TypeWithAnnotations parameterType, FlowAnalysisAnnotations parameterAnnotations, bool isExpandedParamsArgument) =
7833(ParameterSymbol? parameter, TypeWithAnnotations parameterType, FlowAnalysisAnnotations parameterAnnotations, _) =
7886return (ImmutableArray<VisitResult> results, ImmutableArray<ParameterSymbol> parametersOpt, TMember? member) =>
7899static void expandParamsCollection(ref ImmutableArray<BoundExpression> arguments, ref ImmutableArray<RefKind> refKindsOpt, ImmutableArray<ParameterSymbol> parametersOpt, ref ImmutableArray<int> argsToParamsOpt, ref BitVector defaultArguments)
8040if (current.TryGetThisParameter(out var thisParameter) && thisParameter is not null)
8185private ImmutableArray<FlowAnalysisAnnotations> GetParametersAnnotations(ImmutableArray<BoundExpression> arguments, ImmutableArray<ParameterSymbol> parametersOpt, ImmutableArray<int> argsToParamsOpt, bool expanded)
8281ParameterSymbol parameter,
8419ParameterSymbol parameter,
8423ArrayBuilder<ParameterSymbol>? notNullParametersOpt,
8514FlowAnalysisAnnotations notNullBasedOnParameters(FlowAnalysisAnnotations parameterAnnotations, ArrayBuilder<ParameterSymbol>? notNullParametersOpt, ParameterSymbol parameter)
8521foreach (var notNullParameter in notNullParametersOpt)
8533void trackNullableStateForAssignment(TypeSymbol? receiverType, BoundExpression parameterValue, TypeWithAnnotations lValueType, int targetSlot, TypeWithState parameterWithState, bool isSuppressed, FlowAnalysisAnnotations parameterAnnotations, RefKind refKind, ParameterSymbol parameter)
8558static bool hasConditionalPostCondition(TypeSymbol? receiverType, FlowAnalysisAnnotations annotations, RefKind refKind, ParameterSymbol parameter)
8569static bool isUnionTryGetValueValue(TypeSymbol? receiverType, RefKind refKind, ParameterSymbol parameter)
8600static TypeWithState applyPostConditionsWhenTrue(TypeSymbol? receiverType, TypeWithState typeWithState, FlowAnalysisAnnotations annotations, RefKind refKind, ParameterSymbol parameter)
8735private (ParameterSymbol? Parameter, TypeWithAnnotations Type, FlowAnalysisAnnotations Annotations, bool isExpandedParamsArgument) GetCorrespondingParameter(
8737ImmutableArray<ParameterSymbol> parametersOpt,
8747var parameter = Binder.GetCorrespondingParameter(argumentOrdinal, parametersOpt, argsToParamsOpt, expanded);
9581ParameterSymbol? parameterOpt,
9767void reportBadDelegateParameter(BindingDiagnosticBag bag, MethodSymbol sourceInvokeMethod, MethodSymbol targetInvokeMethod, ParameterSymbol parameter, bool topLevel, (TypeSymbol targetType, Location location) arg)
9838void reportBadDelegateParameter(BindingDiagnosticBag bag, MethodSymbol sourceInvokeMethod, MethodSymbol targetInvokeMethod, ParameterSymbol parameterSymbol, bool topLevel, Location location)
9893ParameterSymbol? parameterOpt = null,
9971static (MethodSymbol invokeSignature, ImmutableArray<ParameterSymbol>) getDelegateOrFunctionPointerInfo(TypeSymbol targetType)
9976_ => (null, ImmutableArray<ParameterSymbol>.Empty),
10511ParameterSymbol? parameterOpt,
10556var parameter = method.Parameters[0];
10728var parameter = factory.Parameters[0];
10905ParameterSymbol? parameterOpt,
11157private MethodSymbol CheckMethodGroupReceiverNullability(BoundMethodGroup group, ImmutableArray<ParameterSymbol> parameters, MethodSymbol method, bool invokedAsExtensionMethod)
11180foreach (var parameter in parameters)
11194ParameterSymbol? receiverParameter = isExtensionBlockMethod ? method.ContainingType.ExtensionParameter : method.Parameters[0];
11287var parameter = node.ParameterSymbol;
11421BoundParameter { ParameterSymbol: ParameterSymbol parameter }
11587var receiverParameter = isExtensionBlockMethod ? deconstructMethod.ContainingType.ExtensionParameter : deconstructMethod.Parameters[0];
11595var parameter = parameters[i + offset];
11615var parameter = parameters[i + offset];
11887ParameterSymbol? parameter = null;
12150private void ReportNullabilityMismatchInRefArgument(BoundExpression argument, TypeSymbol argumentType, ParameterSymbol parameter, TypeSymbol parameterType)
12162private void ReportNullabilityMismatchInArgument(SyntaxNode argument, TypeSymbol argumentType, ParameterSymbol parameter, TypeSymbol parameterType, bool forOutput)
12167private void ReportNullabilityMismatchInArgument(Location argumentLocation, TypeSymbol argumentType, ParameterSymbol? parameterOpt, TypeSymbol parameterType, bool forOutput)
12183private TypeWithAnnotations GetDeclaredParameterResult(ParameterSymbol parameter)
12230ImmutableArray<ParameterSymbol> parameters,
12919var parameter = method.Parameters[0];
13152var trueFalseParameter = trueFalseOperator.Parameters[0];
13591private 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)
2425public BoundParameterId(SyntaxNode syntax, ParameterSymbol parameter, FieldSymbol? hoistedField, TypeSymbol type, bool hasErrors)
2436public BoundParameterId(SyntaxNode syntax, ParameterSymbol parameter, FieldSymbol? hoistedField, TypeSymbol type)
2448public ParameterSymbol Parameter { get; }
2454public BoundParameterId Update(ParameterSymbol parameter, FieldSymbol? hoistedField, TypeSymbol type)
4673public BoundParameter(SyntaxNode syntax, ParameterSymbol parameterSymbol, TypeSymbol type, bool hasErrors)
4683public BoundParameter(SyntaxNode syntax, ParameterSymbol parameterSymbol, TypeSymbol type)
4694public ParameterSymbol ParameterSymbol { get; }
4699public BoundParameter Update(ParameterSymbol parameterSymbol, TypeSymbol type)
11119ParameterSymbol parameter = this.VisitParameterSymbol(node.Parameter);
11498ParameterSymbol parameter = this.VisitParameterSymbol(node.Parameter);
11882ParameterSymbol parameterSymbol = this.VisitParameterSymbol(node.ParameterSymbol);
12735ParameterSymbol parameter = GetUpdatedSymbol(node, node.Parameter);
13531ParameterSymbol parameter = GetUpdatedSymbol(node, node.Parameter);
14094ParameterSymbol 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_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\Source\SourceMemberContainerSymbol.cs (15)
4653private static bool ParametersMatchPropertyAccessor(PropertySymbol propertySymbol, bool getNotSet, ImmutableArray<ParameterSymbol> methodParams)
4664var methodParam = methodParams[i];
4684private static bool ParametersMatchEventAccessor(EventSymbol eventSymbol, ImmutableArray<ParameterSymbol> methodParams)
5178ctor.Parameters.SelectAsArray<ParameterSymbol, ParameterSymbol>(param => new SignatureOnlyParameterSymbol(param.TypeWithAnnotations,
5225ImmutableArray.Create<ParameterSymbol>(new SignatureOnlyParameterSymbol(
5278ImmutableArray.Create<ParameterSymbol>(new SignatureOnlyParameterSymbol(
5338ImmutableArray<ParameterSymbol>.Empty,
5406ImmutableArray<Symbol> addProperties(ImmutableArray<ParameterSymbol> recordParameters)
5410foreach (ParameterSymbol param in recordParameters)
5417ImmutableArray<ParameterSymbol>.Empty,
5488bool checkMemberNotHidden(Symbol symbol, ParameterSymbol param)
5512ImmutableArray<ParameterSymbol>.Empty,
5543ImmutableArray<ParameterSymbol>.Empty,
5605ImmutableArray.Create<ParameterSymbol>(new SignatureOnlyParameterSymbol(
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;