Binder\Binder.ValueChecks.cs (35)
42internal ParameterSymbol? Parameter { get; }
51internal MixableDestination(ParameterSymbol parameter, BoundExpression argument)
87internal ParameterSymbol? Parameter { get; }
93internal EscapeArgument(ParameterSymbol? parameter, BoundExpression argument, RefKind refKind, bool isArgList = false)
101public void Deconstruct(out ParameterSymbol? parameter, out BoundExpression argument, out RefKind refKind)
123internal ParameterSymbol? Parameter { get; }
136internal EscapeValue(ParameterSymbol? parameter, BoundExpression argument, EscapeLevel escapeLevel, bool isRefEscape)
144public void Deconstruct(out ParameterSymbol? parameter, out BoundExpression argument, out EscapeLevel escapeLevel, out bool isRefEscape)
919ParameterSymbol parameterSymbol = parameter.ParameterSymbol;
976static void reportReadOnlyParameterError(ParameterSymbol parameterSymbol, SyntaxNode node, BindValueKind valueKind, bool checkingReceiver, BindingDiagnosticBag diagnostics)
1032private static uint GetParameterValEscape(ParameterSymbol parameter)
1042private static EscapeLevel? GetParameterValEscapeLevel(ParameterSymbol parameter) =>
1045private static uint GetParameterRefEscape(ParameterSymbol parameter)
1057private static EscapeLevel? GetParameterRefEscapeLevel(ParameterSymbol parameter) =>
1060private bool CheckParameterValEscape(SyntaxNode node, ParameterSymbol parameter, uint escapeTo, BindingDiagnosticBag diagnostics)
1079private bool CheckParameterRefEscape(SyntaxNode node, BoundExpression parameter, ParameterSymbol parameterSymbol, uint escapeTo, bool checkingReceiver, BindingDiagnosticBag diagnostics)
1740ImmutableArray<ParameterSymbol> parameters,
1833ImmutableArray<ParameterSymbol> parameters,
1907ImmutableArray<ParameterSymbol> parameters,
1993ImmutableArray<ParameterSymbol> parameters,
2060ImmutableArray<ParameterSymbol> parameters,
2120var parameter = argIndex < parameters.Length ?
2148static bool isMixableParameter([NotNullWhen(true)] ParameterSymbol? parameter) =>
2174ParameterSymbol? thisParameter = null;
2214ImmutableArray<ParameterSymbol> parameters,
2290ImmutableArray<ParameterSymbol> parameters,
2350private static string GetInvocationParameterName(ParameterSymbol? parameter)
2367ParameterSymbol? parameter,
2420ImmutableArray<ParameterSymbol> parameters,
2522ImmutableArray<ParameterSymbol> parameters,
2621ImmutableArray<ParameterSymbol> parameters,
2970var thisParam = ((MethodSymbol)_symbol).ThisParameter;
3224var thisParam = ((MethodSymbol)_symbol).ThisParameter;
3495var thisParam = ((MethodSymbol)_symbol).ThisParameter;
3902var thisParam = ((MethodSymbol)_symbol).ThisParameter;
Binder\Binder_Invocation.cs (15)
1043ParameterSymbol receiverParameter = method.Parameters.First();
1164private BoundExpression GetDefaultParameterSpecialNoConversion(SyntaxNode syntax, ParameterSymbol parameter, BindingDiagnosticBag diagnostics)
1222internal static ParameterSymbol? GetCorrespondingParameter(
1224ImmutableArray<ParameterSymbol> parameters,
1229ParameterSymbol? parameter;
1266ImmutableArray<ParameterSymbol> parameters,
1281var parameter = GetCorrespondingParameter(i, parameters, argsToParamsOpt, expanded);
1320foreach (var parameter in parameters.AsSpan()[..lastIndex])
1346BoundExpression bindDefaultArgument(SyntaxNode syntax, ParameterSymbol parameter, Symbol? containingMember, bool enableCallerInfo, BindingDiagnosticBag diagnostics, ArrayBuilder<BoundExpression> argumentsBuilder, int argumentsCount, ImmutableArray<int> argsToParamsOpt)
1646var parameterListList = ArrayBuilder<ImmutableArray<ParameterSymbol>>.GetInstance();
1666var parameterListList = ArrayBuilder<ImmutableArray<ParameterSymbol>>.GetInstance();
1684private ImmutableArray<BoundExpression> BuildArgumentsForErrorRecovery(AnalyzedArguments analyzedArguments, IEnumerable<ImmutableArray<ParameterSymbol>> parameterListList)
1804private static TypeSymbol GetCorrespondingParameterType(AnalyzedArguments analyzedArguments, int i, ImmutableArray<ParameterSymbol> parameterList)
1810foreach (var parameter in parameterList)
1827return BuildArgumentsForErrorRecovery(analyzedArguments, Enumerable.Empty<ImmutableArray<ParameterSymbol>>());
Binder\Semantics\OverloadResolution\OverloadResolution.cs (24)
1033ParameterSymbol final = member.GetParameters().Last();
1037public static bool IsValidParamsParameter(ParameterSymbol final)
1040return final.IsParams && ((ParameterSymbol)final.OriginalDefinition).Type.IsSZArray();
1645private TypeSymbol GetParameterType(ParameterSymbol parameter, MemberAnalysisResult result)
1662private static ParameterSymbol GetParameter(int argIndex, MemberAnalysisResult result, ImmutableArray<ParameterSymbol> parameters)
1758var parameter1 = GetParameter(i, m1.Result, m1LeastOverriddenParameters);
1761var parameter2 = GetParameter(i, m2.Result, m2LeastOverriddenParameters);
1902var parameter1 = GetParameter(i, m1.Result, m1LeastOverriddenParameters);
1905var parameter2 = GetParameter(i, m2.Result, m2LeastOverriddenParameters);
2064var parameter1 = GetParameter(i, m1.Result, m1Original);
2067var parameter2 = GetParameter(i, m2.Result, m2Original);
2140ImmutableArray<ParameterSymbol> parameters1,
2142ImmutableArray<ParameterSymbol> parameters2)
2151var p1 = GetParameter(i, m1.Result, parameters1);
2152var p2 = GetParameter(i, m2.Result, parameters2);
2999private static bool IdenticalParameters(ImmutableArray<ParameterSymbol> p1, ImmutableArray<ParameterSymbol> p2)
3014var param1 = p1[i];
3015var param2 = p2[i];
3131ImmutableArray<ParameterSymbol> parameters = member.GetParameters();
3157var parameter = parameters[parm];
3182ParameterSymbol parameter,
3244var parameter = parameters[parm];
Compilation\CSharpSemanticModel.cs (12)
1783case ParameterSymbol _:
3216protected ParameterSymbol GetParameterSymbol(
3217ImmutableArray<ParameterSymbol> parameters,
3221foreach (var symbol in parameters)
3674var thisParam = GetThisParameter(boundNode.Type, containingType, containingMember, out resultKind);
3719private static ParameterSymbol GetThisParameter(TypeSymbol typeOfThis, NamedTypeSymbol containingType, Symbol containingMember, out LookupResultKind resultKind)
3728ParameterSymbol thisParam;
4489ParameterSymbol param = FindNamedParameter(containingInvocationInfo.Symbol.GetSymbol().GetParameters(), argumentName);
4506ParameterSymbol param = FindNamedParameter(invocationSym.GetSymbol().GetParameters(), argumentName);
4528private static ParameterSymbol FindNamedParameter(ImmutableArray<ParameterSymbol> parameters, string argumentName)
4530foreach (ParameterSymbol param in parameters)
FlowAnalysis\NullableWalker.cs (66)
224/// The delegate is invoked by <see cref="VisitConversion(BoundConversion, BoundExpression, Conversion, TypeWithAnnotations, TypeWithState, bool, bool, bool, AssignmentKind, ParameterSymbol, bool, bool, bool, Optional<LocalState>,bool, Location, ArrayBuilder<VisitResult>)"/>.
555ParameterSymbol methodThisParameter = MethodThisParameter;
605method.TryGetThisParameter(out var thisParameter);
1124foreach (var parameter in parameters)
1150foreach (var parameter in this.MethodParameters)
1183private void EnforceParameterNotNullWhenOnExit(SyntaxNode syntax, ImmutableArray<ParameterSymbol> parameters, bool sense, LocalState stateWhen)
1190foreach (var parameter in parameters)
1196private void ReportParameterIfBadConditionalState(SyntaxNode syntax, ParameterSymbol parameter, bool sense, LocalState stateWhen)
1205bool parameterHasBadConditionalState(ParameterSymbol parameter, bool sense, LocalState stateWhen)
1243private void EnforceNotNullIfNotNull(SyntaxNode? syntaxOpt, LocalState state, ImmutableArray<ParameterSymbol> parameters, ImmutableHashSet<string> inputParamNames, NullableFlowState outputState, ParameterSymbol? outputParam)
1250foreach (var inputParam in parameters)
1873var parameter = (ParameterSymbol)symbol;
1977var thisParameter = method?.ThisParameter;
2077if (symbol is ParameterSymbol { ContainingSymbol: SynthesizedPrimaryConstructor primaryConstructor } parameter &&
2089if (enclosingMemberMethod?.TryGetThisParameter(out ParameterSymbol methodThisParameter) == true &&
2161private static object GetParameterAsDiagnosticArgument(ParameterSymbol? parameterOpt)
2168private static object GetContainingSymbolAsDiagnosticArgument(ParameterSymbol? parameterOpt)
2230ParameterSymbol? parameterOpt = null,
2731var parameter = methodParameters[i];
2740private void EnterParameter(ParameterSymbol parameter, TypeWithAnnotations parameterType)
2767var parameter = equalsValue.Parameter;
4668ParameterSymbol parameter,
6009private FlowAnalysisAnnotations GetParameterAnnotations(ParameterSymbol parameter)
6141ImmutableArray<ParameterSymbol> parametersOpt,
6154private delegate (MethodSymbol? method, bool returnNotNull) ArgumentsCompletionDelegate(ImmutableArray<VisitArgumentResult> argumentResults, ImmutableArray<ParameterSymbol> parametersOpt, MethodSymbol? method);
6161ImmutableArray<ParameterSymbol> parametersOpt,
6188ImmutableArray<ParameterSymbol> parametersOpt,
6228var notNullParametersBuilder = parameterHasNotNullIfNotNull ? ArrayBuilder<ParameterSymbol>.GetInstance() : null;
6239(ParameterSymbol? parameter, TypeWithAnnotations parameterType, FlowAnalysisAnnotations parameterAnnotations, bool isExpandedParamsArgument) =
6297(ParameterSymbol? parameter, TypeWithAnnotations parameterType, FlowAnalysisAnnotations parameterAnnotations, _) =
6348return (ImmutableArray<VisitArgumentResult> results, ImmutableArray<ParameterSymbol> parametersOpt, MethodSymbol? method) =>
6480private ImmutableArray<FlowAnalysisAnnotations> GetParametersAnnotations(ImmutableArray<BoundExpression> arguments, ImmutableArray<ParameterSymbol> parametersOpt, ImmutableArray<int> argsToParamsOpt, bool expanded)
6553ParameterSymbol parameter,
6690ParameterSymbol parameter,
6694ArrayBuilder<ParameterSymbol>? notNullParametersOpt,
6785FlowAnalysisAnnotations notNullBasedOnParameters(FlowAnalysisAnnotations parameterAnnotations, ArrayBuilder<ParameterSymbol>? notNullParametersOpt, ParameterSymbol parameter)
6792foreach (var notNullParameter in notNullParametersOpt)
6986private (ParameterSymbol? Parameter, TypeWithAnnotations Type, FlowAnalysisAnnotations Annotations, bool isExpandedParamsArgument) GetCorrespondingParameter(
6988ImmutableArray<ParameterSymbol> parametersOpt,
6997var parameter = Binder.GetCorrespondingParameter(argumentOrdinal, parametersOpt, argsToParamsOpt, expanded);
7675ParameterSymbol? parameterOpt,
7798void reportBadDelegateParameter(BindingDiagnosticBag bag, MethodSymbol sourceInvokeMethod, MethodSymbol targetInvokeMethod, ParameterSymbol parameter, bool topLevel, (TypeSymbol targetType, Location location) arg)
7862void reportBadDelegateParameter(BindingDiagnosticBag bag, MethodSymbol sourceInvokeMethod, MethodSymbol targetInvokeMethod, ParameterSymbol parameterSymbol, bool topLevel, Location location)
7917ParameterSymbol? parameterOpt = null,
7994static (MethodSymbol invokeSignature, ImmutableArray<ParameterSymbol>) getDelegateOrFunctionPointerInfo(TypeSymbol targetType)
7999_ => (null, ImmutableArray<ParameterSymbol>.Empty),
8441ParameterSymbol? parameterOpt,
8486var parameter = method.Parameters[0];
8656ParameterSymbol? parameterOpt,
8908private MethodSymbol CheckMethodGroupReceiverNullability(BoundMethodGroup group, ImmutableArray<ParameterSymbol> parameters, MethodSymbol method, bool invokedAsExtensionMethod)
8928foreach (var parameter in parameters)
9026var parameter = node.ParameterSymbol;
9153BoundParameter { ParameterSymbol: ParameterSymbol parameter }
9326var parameter = parameters[i + offset];
9346var parameter = parameters[i + offset];
9542ParameterSymbol? parameter = null;
9729private void ReportArgumentWarnings(BoundExpression argument, TypeWithState argumentType, ParameterSymbol parameter)
9740private void ReportNullabilityMismatchInRefArgument(BoundExpression argument, TypeSymbol argumentType, ParameterSymbol parameter, TypeSymbol parameterType)
9752private void ReportNullabilityMismatchInArgument(SyntaxNode argument, TypeSymbol argumentType, ParameterSymbol parameter, TypeSymbol parameterType, bool forOutput)
9757private void ReportNullabilityMismatchInArgument(Location argumentLocation, TypeSymbol argumentType, ParameterSymbol? parameterOpt, TypeSymbol parameterType, bool forOutput)
9773private TypeWithAnnotations GetDeclaredParameterResult(ParameterSymbol parameter)
10345var parameter = method.Parameters[0];
10918private void CheckExtensionMethodThisNullability(BoundExpression expr, Conversion conversion, ParameterSymbol parameter, TypeWithState result)
Generated\BoundNodes.xml.Generated.cs (14)
356public BoundParameterEqualsValue(SyntaxNode syntax, ParameterSymbol parameter, ImmutableArray<LocalSymbol> locals, BoundExpression value, bool hasErrors = false)
367public ParameterSymbol Parameter { get; }
372public BoundParameterEqualsValue Update(ParameterSymbol parameter, ImmutableArray<LocalSymbol> locals, BoundExpression value)
2335public BoundParameterId(SyntaxNode syntax, ParameterSymbol parameter, FieldSymbol? hoistedField, TypeSymbol type, bool hasErrors)
2346public BoundParameterId(SyntaxNode syntax, ParameterSymbol parameter, FieldSymbol? hoistedField, TypeSymbol type)
2358public ParameterSymbol Parameter { get; }
2364public BoundParameterId Update(ParameterSymbol parameter, FieldSymbol? hoistedField, TypeSymbol type)
4521public BoundParameter(SyntaxNode syntax, ParameterSymbol parameterSymbol, TypeSymbol type, bool hasErrors)
4531public BoundParameter(SyntaxNode syntax, ParameterSymbol parameterSymbol, TypeSymbol type)
4542public ParameterSymbol ParameterSymbol { get; }
4547public BoundParameter Update(ParameterSymbol parameterSymbol, TypeSymbol type)
11812ParameterSymbol parameter = GetUpdatedSymbol(node, node.Parameter);
12590ParameterSymbol parameter = GetUpdatedSymbol(node, node.Parameter);
13131ParameterSymbol parameterSymbol = GetUpdatedSymbol(node, node.ParameterSymbol);
Symbols\Compilation_WellKnownMembers.cs (8)
242internal static Symbol? GetRuntimeMember(NamedTypeSymbol declaringType, in MemberDescriptor descriptor, SignatureComparer<MethodSymbol, FieldSymbol, PropertySymbol, TypeSymbol, ParameterSymbol> comparer, AssemblySymbol? accessWithinOpt)
248internal static Symbol? GetRuntimeMember(ImmutableArray<Symbol> members, in MemberDescriptor descriptor, SignatureComparer<MethodSymbol, FieldSymbol, PropertySymbol, TypeSymbol, ParameterSymbol> comparer, AssemblySymbol? accessWithinOpt)
977foreach (var param in sig.Parameters)
1033internal class SpecialMembersSignatureComparer : SignatureComparer<MethodSymbol, FieldSymbol, PropertySymbol, TypeSymbol, ParameterSymbol>
1103protected override ImmutableArray<ParameterSymbol> GetParameters(MethodSymbol method)
1108protected override ImmutableArray<ParameterSymbol> GetParameters(PropertySymbol property)
1113protected override TypeSymbol GetParamType(ParameterSymbol parameter)
1142protected override bool IsByRefParam(ParameterSymbol parameter)
Symbols\Source\ParameterHelpers.cs (21)
125where TParameterSymbol : ParameterSymbol
212withTypeParametersBinder.ValidateParameterNameConflicts(typeParameters, parameters.Cast<TParameterSymbol, ParameterSymbol>(), allowShadowingNames, diagnostics);
219internal static void EnsureIsReadOnlyAttributeExists(PEModuleBuilder moduleBuilder, ImmutableArray<ParameterSymbol> parameters)
224internal static void EnsureIsReadOnlyAttributeExists(CSharpCompilation? compilation, ImmutableArray<ParameterSymbol> parameters, BindingDiagnosticBag diagnostics, bool modifyCompilation)
236private static void EnsureIsReadOnlyAttributeExists(CSharpCompilation compilation, ImmutableArray<ParameterSymbol> parameters, BindingDiagnosticBag? diagnostics, bool modifyCompilation, PEModuleBuilder? moduleBuilder)
238foreach (var parameter in parameters)
254internal static void EnsureNativeIntegerAttributeExists(PEModuleBuilder moduleBuilder, ImmutableArray<ParameterSymbol> parameters)
260internal static void EnsureNativeIntegerAttributeExists(CSharpCompilation? compilation, ImmutableArray<ParameterSymbol> parameters, BindingDiagnosticBag diagnostics, bool modifyCompilation)
277private static void EnsureNativeIntegerAttributeExists(CSharpCompilation compilation, ImmutableArray<ParameterSymbol> parameters, BindingDiagnosticBag? diagnostics, bool modifyCompilation, PEModuleBuilder? moduleBuilder)
280foreach (var parameter in parameters)
296internal static bool RequiresScopedRefAttribute(ParameterSymbol parameter)
312internal static bool IsRefScopedByDefault(ParameterSymbol parameter)
322internal static void EnsureScopedRefAttributeExists(PEModuleBuilder moduleBuilder, ImmutableArray<ParameterSymbol> parameters)
327internal static void EnsureScopedRefAttributeExists(CSharpCompilation? compilation, ImmutableArray<ParameterSymbol> parameters, BindingDiagnosticBag diagnostics, bool modifyCompilation)
339private static void EnsureScopedRefAttributeExists(CSharpCompilation compilation, ImmutableArray<ParameterSymbol> parameters, BindingDiagnosticBag? diagnostics, bool modifyCompilation, PEModuleBuilder? moduleBuilder)
341foreach (var parameter in parameters)
357internal static void EnsureNullableAttributeExists(PEModuleBuilder moduleBuilder, Symbol container, ImmutableArray<ParameterSymbol> parameters)
362internal static void EnsureNullableAttributeExists(CSharpCompilation? compilation, Symbol container, ImmutableArray<ParameterSymbol> parameters, BindingDiagnosticBag? diagnostics, bool modifyCompilation)
374private static void EnsureNullableAttributeExists(CSharpCompilation compilation, Symbol container, ImmutableArray<ParameterSymbol> parameters, BindingDiagnosticBag? diagnostics, bool modifyCompilation, PEModuleBuilder? moduleBuilder)
378foreach (var parameter in parameters)
395private static Location GetParameterLocation(ParameterSymbol parameter) => parameter.GetNonNullSyntaxNode().Location;
Symbols\Source\SourceMemberContainerSymbol.cs (15)
3671private static bool ParametersMatchPropertyAccessor(PropertySymbol propertySymbol, bool getNotSet, ImmutableArray<ParameterSymbol> methodParams)
3682var methodParam = methodParams[i];
3702private static bool ParametersMatchEventAccessor(EventSymbol eventSymbol, ImmutableArray<ParameterSymbol> methodParams)
4027ctor.Parameters.SelectAsArray<ParameterSymbol, ParameterSymbol>(param => new SignatureOnlyParameterSymbol(param.TypeWithAnnotations,
4073ImmutableArray.Create<ParameterSymbol>(new SignatureOnlyParameterSymbol(
4121ImmutableArray.Create<ParameterSymbol>(new SignatureOnlyParameterSymbol(
4180ImmutableArray<ParameterSymbol>.Empty,
4250ImmutableArray<Symbol> addProperties(ImmutableArray<ParameterSymbol> recordParameters)
4254foreach (ParameterSymbol param in recordParameters)
4261ImmutableArray<ParameterSymbol>.Empty,
4330bool checkMemberNotHidden(Symbol symbol, ParameterSymbol param)
4354ImmutableArray<ParameterSymbol>.Empty,
4385ImmutableArray<ParameterSymbol>.Empty,
4447ImmutableArray.Create<ParameterSymbol>(new SignatureOnlyParameterSymbol(
Symbols\Source\SourceMemberContainerSymbol_ImplementationChecks.cs (8)
19internal delegate void ReportMismatchInParameterType<TArg>(BindingDiagnosticBag bag, MethodSymbol overriddenMethod, MethodSymbol overridingMethod, ParameterSymbol parameter, bool topLevel, TArg arg);
1225(BindingDiagnosticBag diagnostics, MethodSymbol overriddenMethod, MethodSymbol overridingMethod, ParameterSymbol overridingParameter, bool topLevel, Location location)
1294var baseParameter = baseParameters[i];
1297var overrideParameter = overrideParameters[parameterIndex];
1331var overrideParam = overrideParameters[i + overrideParameterOffset];
1332var baseParam = baseParameters[i];
1457var baseParameter = baseParameters[i];
1458var 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;
Microsoft.CodeAnalysis.CSharp.ExpressionEvaluator.ExpressionCompiler.UnitTests (2)