320 references to Type
Microsoft.CodeAnalysis.CSharp (320)
Binder\Binder.CapturedParametersFinder.cs (2)
168if (IsTypeOrValueReceiver(enclosingBinder, id, parameter.Type, out SyntaxNode? memberAccessNode, out string? memberName, out int targetMemberArity, out bool invoked)) 171if (TreatAsInstanceMemberAccess(enclosingBinder, parameter.Type, memberAccessNode, memberName, targetMemberArity, invoked, lookupResult))
Binder\Binder.ValueChecks.cs (11)
353Debug.Assert(parameter.RefKind.IsWritableReference() && parameter.Type.IsRefLikeOrAllowsRefLikeType()); 2366(param is { RefKind: not RefKind.None, Type: { } type } && type.IsRefLikeOrAllowsRefLikeType())) && 2594(param is { RefKind: not RefKind.None, Type: { } type } && type.IsRefLikeOrAllowsRefLikeType())) && 2742parameter.Type.IsRefLikeOrAllowsRefLikeType() && 2936parameter.Type.IsRefLikeOrAllowsRefLikeType(); 3019if (parameter.Type.IsRefLikeOrAllowsRefLikeType() && parameter.RefKind != RefKind.Out && GetParameterValEscapeLevel(parameter) is { } valEscapeLevel) 3079if (parameter.Type.IsRefLikeOrAllowsRefLikeType()) 3757Debug.Assert(thisParam.Type.Equals(((BoundThisReference)expr).Type, TypeCompareKind.ConsiderEverything)); 4056Debug.Assert(thisParam.Type.Equals(((BoundThisReference)expr).Type, TypeCompareKind.ConsiderEverything)); 4368Debug.Assert(thisParam.Type.Equals(((BoundThisReference)expr).Type, TypeCompareKind.ConsiderEverything)); 5069Debug.Assert(thisParam.Type.Equals(((BoundThisReference)expr).Type, TypeCompareKind.ConsiderEverything));
Binder\Binder_Attributes.cs (2)
736parameter.Type.TypeKind == TypeKind.Array && 737!((TypeSymbol)reorderedArgument.TypeInternal!).Equals(parameter.Type, TypeCompareKind.AllIgnoreOptions))
Binder\Binder_Await.cs (2)
374BoundExpression argument = CreateConversion(placeholder, argumentConversion, destination: method.Parameters[0].Type, diagnostics); 474method.Parameters[0].Type,
Binder\Binder_Conversions.cs (17)
657method.Parameters[0].Type is ArrayTypeSymbol { IsSZArray: true, ElementType: TypeParameterSymbol }); 667static (readonlySpanType, method) => method.Parameters[0].Type.IsSpan() && 717arg.source.Equals(parameter.Type.OriginalDefinition, TypeCompareKind.ConsiderEverything) && 723((NamedTypeSymbol)parameter.Type).TypeArgumentsWithAnnotationsNoUseSiteDiagnostics[0].Type.Equals(typeArgument.Type, TypeCompareKind.ConsiderEverything) && 746Parameters: [{ Type.SpecialType: SpecialType.System_String }] 1436var collectionBuilderElementsPlaceholder = new BoundCollectionBuilderElementsPlaceholder(syntax, readonlySpanParameter.Type) { WasCompilerGenerated = true }; 1568if (method.Parameters is not [.., { RefKind: RefKind.None, Type: NamedTypeSymbol parameterType }] 1596parameterType = (NamedTypeSymbol)methodWithTargetTypeParameters.Parameters.Last().Type; 1636var parameterType = (NamedTypeSymbol)collectionBuilderMethod.Parameters.Last().Type; 2092bool thisTypeIsOpen = typeParameters.Any((typeParameter, parameter) => parameter.Type.ContainsTypeParameter(typeParameter), member.Parameters[0]); 2105if (!typeParameters.Any((typeParameter, parameter) => parameter.Type.ContainsTypeParameter(typeParameter), member.Parameters[1])) 2127TypeSymbol secondArgumentType = (constructed ?? member).Parameters[1].Type; 2154var conversion = conversions.ConvertExtensionMethodThisArg(constructed.Parameters[0].Type, receiverType, ref useSiteInfo, isMethodGroupConversion: false); 2161else if (typeParameters.Any((typeParameter, parameter) => !parameter.Type.ContainsTypeParameter(typeParameter), member.Parameters[0])) 3543(Conversions.ConvertExtensionMethodThisArg(GetReceiverParameter(method)!.Type, receiverOpt!.Type, ref useSiteInfo, isMethodGroupConversion: true).Exists && useSiteInfo.Diagnostics.IsNullOrEmpty())); 3567source: delegateParameter.Type, 3568destination: methodParameter.Type,
Binder\Binder_Crefs.cs (2)
711if (ContainsNestedTypeOfUnconstructedGenericType(parameterSymbols[i].Type)) 774if (ContainsNestedTypeOfUnconstructedGenericType(param.Type))
Binder\Binder_Expressions.cs (17)
550defaultValueBinder.GenerateConversionForAssignment(parameter.Type, valueBeforeConversion, diagnostics, ConversionForAssignmentFlags.DefaultParameter)); 2121if (IsBadLocalOrParameterCapture(parameter, parameter.Type, parameter.RefKind)) 2129else if (parameter.Type.IsRestrictedType(ignoreSpanLikeTypes: true)) 2131Error(diagnostics, ErrorCode.ERR_SpecialByRefInLambda, node, parameter.Type); 2135Debug.Assert(parameter.Type.IsRefLikeOrAllowsRefLikeType()); 2145(parameter.RefKind != RefKind.None || parameter.Type.IsRestrictedType()) && 2152else if (parameter.Type.IsRestrictedType(ignoreSpanLikeTypes: true)) 2154Error(diagnostics, ErrorCode.ERR_UnsupportedPrimaryConstructorParameterCapturingRefAny, node, parameter.Type); 2158Debug.Assert(parameter.Type.IsRefLikeOrAllowsRefLikeType()); 3665if (parameters[paramsIndex].Type.IsSZArray()) 3878placeholderType = receiverParameter.Type; 3899placeholderType = parameter.Type; 3918placeholderType = parameter.Type; 7757leftType = ((ParameterSymbol)leftSymbol).Type; 11461original.Parameters[parameterOffset] is { Type.SpecialType: SpecialType.System_Int32, RefKind: RefKind.None } && 11462original.Parameters[parameterOffset + 1] is { Type.SpecialType: SpecialType.System_Int32, RefKind: RefKind.None }; 11485original.Parameters[0] is { Type.SpecialType: SpecialType.System_Int32, RefKind: RefKind.None };
Binder\Binder_Invocation.cs (8)
690!candidate.Member.GetParameters().Last().Type.IsSZArray()) 1407receiver = CreateConversion(receiver, extensionParameter.Type, diagnostics); 1455var parameterType = parameter.Type; 1692TypeSymbol parameterType = parameter.Type; 1863TypeSymbol collectionType = paramsParameter.Type; 1997!shadowedParameter.Type.Equals(typeOrValue.Type, TypeCompareKind.AllIgnoreOptions)) // If the type and the name match, we would resolve to the same type rather than a value at the end. 2328if (parameter.Name == name) return parameter.Type; 2334return (i < parameterList.Length) ? parameterList[i].Type : null;
Binder\Binder_Operators.cs (7)
476BoundExpression rightConverted = CreateConversion(right, overloadResolutionResult.ValidResult.Result.ConversionForArg(isExtension ? 1 : 0), method.Parameters[0].Type, diagnostics); 506leftConversion = CreateConversion(node, leftPlaceholder, conversion, isCast: false, conversionGroupOpt: null, InConversionGroupFlags.Unspecified, method.ContainingType.ExtensionParameter.Type, diagnostics); 515rightType: method.Parameters[0].Type, 1649TypeSymbol parameterType = userDefinedOperator.Parameters[0].Type; 3612operandConversion = CreateConversion(node, operandPlaceholder, conversion, isCast: false, conversionGroupOpt: null, InConversionGroupFlags.Unspecified, method.ContainingType.ExtensionParameter.Type, diagnostics); 3925if (!((extensionParameter.Type.IsValueType && extensionParameter.RefKind == RefKind.Ref) || 3926(extensionParameter.Type.IsReferenceType && extensionParameter.RefKind == RefKind.None)))
Binder\Binder_Patterns.cs (3)
325Conversion conversion = conversions.ClassifyBuiltInConversion(type, candidate.Parameters[0].Type, isChecked: false, ref discardedUseSiteInfo); 360typeSet.Contains(declaredMethod.Parameters[0].Type); 525method.Parameters[0].Type);
Binder\Binder_Statements.cs (2)
2220Error(diagnostics, ErrorFacts.GetStaticClassParameterCode(useWarning: false), anonymousFunction.ParameterLocation(i), delegateParameters[i].Type); 2245var delegateParameterType = delegateParameters[i].Type;
Binder\Binder_Symbols.cs (2)
1499CheckWhatCandidatesWeHave(members, parameter.Type, plainName, 1512Error(diagnostics, ErrorCode.ERR_AmbiguousPrimaryConstructorParameterAsColorColorReceiver, receiver.Syntax, parameter.Name, parameter.Type, parameter);
Binder\DecisionDagBuilder.cs (1)
674targetType = deconstructMethod.Parameters[0].Type;
Binder\ExecutableCodeBinder.cs (1)
120else if (parameter.Type.IsPointerOrFunctionPointer() && !isReceiverParameter)
Binder\ForEachLoopBinder.cs (4)
1043builder.CollectionType = builder.GetEnumeratorInfo.Method.Parameters[0].Type; 1047builder.CollectionType = builder.GetEnumeratorInfo.Method.ContainingType.ExtensionParameter.Type; 1562var collectionConversion = this.Conversions.ClassifyConversionFromExpression(collectionExpr, result.Parameters[0].Type, isChecked: CheckOverflowAtRuntime, ref useSiteInfo); 1577result.Parameters[0].Type);
Binder\InMethodBinder.cs (1)
201if ((this.Flags & BinderFlags.InEEMethodBinder) != 0 && parameter.Type.IsDisplayClassType())
Binder\RefSafetyAnalysis.cs (1)
1041if (parameter?.Type?.IsRefLikeOrAllowsRefLikeType() != true ||
Binder\Semantics\AccessCheck.cs (1)
175if (!IsSymbolAccessibleCore(param.Type, within, throughTypeOpt: null, out failedThroughTypeCheck, compilation, ref useSiteInfo, basesBeingResolved))
Binder\Semantics\Conversions\Conversions.cs (4)
363if (thisParameter?.Type.IsReferenceType == false) 370thisParameter.Type); 445if (parameter.Type.IsDynamic()) 486if (!(method.IsExtensionBlockMember() && method.IsStatic) && !Binder.GetReceiverParameter(method).Type.IsReferenceType)
Binder\Semantics\Conversions\ConversionsBase.cs (1)
1540if (!delegateParameters[p].Type.Equals(anonymousFunction.ParameterType(p), TypeCompareKind.AllIgnoreOptions))
Binder\Semantics\Operators\BinaryOperatorOverloadResolution.cs (9)
1378op1Left = p[0].Type; 1379op1Right = p[1].Type; 1395op2Left = p[0].Type; 1396op2Right = p[1].Type; 1609return SourceUserDefinedOperatorSymbolBase.ExtensionOperatorParameterTypeMatchesExtendedType(method.Parameters[paramIndex].Type, extensionParameter.Type); 1619if (!candidate.Method.ContainingType.ExtensionParameter.Type.IsValidNullableTypeArgument() || 1620!Conversions.ConvertExtensionMethodThisArg(MakeNullable(candidate.Method.ContainingType.ExtensionParameter.Type), operand.Type, ref useSiteInfo, isMethodGroupConversion: false).Exists) 1625else if (!Conversions.ConvertExtensionMethodThisArg(candidate.Method.ContainingType.ExtensionParameter.Type, operand.Type, ref useSiteInfo, isMethodGroupConversion: false).Exists)
Binder\Semantics\Operators\UnaryOperatorOverloadResolution.cs (4)
227if (!candidate.Method.ContainingType.ExtensionParameter.Type.IsValidNullableTypeArgument() || 228!Conversions.ConvertExtensionMethodThisArg(MakeNullable(candidate.Method.ContainingType.ExtensionParameter.Type), operand.Type, ref useSiteInfo, isMethodGroupConversion: false).Exists) 233else if (!Conversions.ConvertExtensionMethodThisArg(candidate.Method.ContainingType.ExtensionParameter.Type, operand.Type, ref useSiteInfo, isMethodGroupConversion: false).Exists) 297result = Hash.Combine(result, typeComparer.GetHashCode(parameter.Type));
Binder\Semantics\OverloadResolution\MethodTypeInference.cs (7)
1037if (parameter.Type.ContainsTypeParameter(typeParameter)) 2451if ((sourceParam.Type.IsReferenceType || sourceParam.Type.IsFunctionPointer()) && sourceParam.RefKind == RefKind.None) 2801if ((sourceParam.Type.IsReferenceType || sourceParam.Type.IsFunctionPointer()) && sourceParam.RefKind == RefKind.None) 3126if (!anonymousFunction.ParameterType(p).Equals(fixedDelegateParameters[p].Type, TypeCompareKind.IgnoreDynamicAndTupleNames | TypeCompareKind.IgnoreNullableModifiersForReferenceTypes)) 3197Debug.Assert(!extension.ExtensionParameter.Type.IsDynamic());
Binder\Semantics\OverloadResolution\OverloadResolution.cs (8)
1321if ((final.IsParamsArray && final.Type.IsSZArray()) || 1322(final.IsParamsCollection && !final.Type.IsSZArray() && !disallowExpandedNonArrayParams && 1325return TryInferParamsCollectionIterationType(binder, final.OriginalDefinition.Type, out definitionElementType); 2560TypeSymbol t1 = m1LastParameter.Type; 2561TypeSymbol t2 = m2LastParameter.Type; 2584var type = parameter.Type; 3801if (!Conversions.HasIdentityConversion(param1.Type, param2.Type))
Binder\Semantics\OverloadResolution\OverloadResolutionResult.cs (2)
1253TypeSymbol parameterType = unwrapIfParamsCollection(badArg, parameter, isLastParameter) is TypeSymbol t ? t : parameter.Type; 1411parameter.Type is NamedTypeSymbol { IsInterpolatedStringHandlerType: true };
BoundTree\BoundDagEvaluation.cs (2)
328builder.Add(new BoundDagTemp(Syntax, parameter.Type, this, i)); 340return new BoundDagTemp(Syntax, parameter.Type, this, 0);
BoundTree\Constructors.cs (2)
472: this(syntax, parameterSymbol, parameterSymbol.Type, hasErrors) 477: this(syntax, parameterSymbol, parameterSymbol.Type)
CodeGen\CodeGenerator_RefSafety.cs (1)
97if (parameter.Type.IsRefLikeOrAllowsRefLikeType() && parameter.EffectiveScope != ScopedKind.ScopedValue)
CodeGen\EmitConversion.cs (2)
416if (parameters[0].Type.SpecialType != SpecialType.System_Object) continue; 417var p1t = parameters[1].Type.SpecialType;
CodeGen\EmitExpression.cs (2)
1437var parameterType = parameter.ParameterSymbol.Type; 3351EmitIndirectStore(parameter.ParameterSymbol.Type, parameter.Syntax);
Compiler\AnonymousTypeMethodBodySynthesizer.cs (1)
287retExpression = F.StaticCall(manager.System_String, formatMethod, F.Null(formatMethod.Parameters[0].Type), format, F.ArrayOrEmpty(manager.System_Object, arguments));
Compiler\ClsComplianceChecker.cs (2)
578if (!IsCompliantType(parameter.Type, context)) 580this.AddDiagnostic(ErrorCode.WRN_CLS_BadArgType, parameter.GetFirstLocation(), parameter.Type);
Compiler\MethodBodySynthesizer.cs (3)
186thisReference = new BoundThisReference(syntax, thisSymbol.Type) { WasCompilerGenerated = true }; 282field.IsStatic || field.ContainingSymbol is NamedTypeSymbol { IsExtension: true } ? null : new BoundThisReference(syntax, accessor.ThisParameter.Type), 380new BoundThisReference(syntax, thisParameter.Type) { WasCompilerGenerated = true };
Compiler\MethodBodySynthesizer.Lowered.cs (1)
87F.Null(text.Type)),
DocumentationComments\DocumentationCommentIDVisitor.PartVisitor.cs (1)
245Visit(symbol.Type, builder);
Emitter\EditAndContinue\CSharpSymbolMatcher.cs (4)
424var otherType = (TypeSymbol?)Visit(param.Type); 672_comparer.Equals(parameter.Type, other.Type); 940var translatedParamType = (TypeSymbol)Visit(param.Type);
Emitter\Model\ParameterSymbolAdapter.cs (2)
55return ((PEModuleBuilder)context.Module).Translate(AdaptedParameterSymbol.Type, 95type = AdaptedParameterSymbol.Type;
Emitter\Model\ParameterTypeInformation.cs (1)
53return ((PEModuleBuilder)context.Module).Translate(_underlyingParameter.Type, syntaxNodeOpt: (CSharpSyntaxNode)context.SyntaxNode, diagnostics: context.Diagnostics);
Emitter\NoPia\EmbeddedTypesManager.cs (1)
189ImmutableArray.Create(new TypedConstant(ctor.Parameters[0].Type, TypedConstantKind.Type, ctor.ContainingAssembly.GetSpecialType(SpecialType.System_Object))),
FlowAnalysis\AbstractFlowPass.cs (2)
1441&& !TypeIsImmutable(thisParameter.Type)) 3048return param.Type.IsNonNullableValueType();
FlowAnalysis\DefiniteAssignment.cs (2)
365if (methodThisParameter.Type.SpecialType.CanOptimizeBehavior()) 434TypeSymbol parameterType = parameter.Type;
FlowAnalysis\NullableWalker.cs (4)
3867(p1, p2) => p1.Type.Equals(p2.Type, TypeCompareKind.AllNullableIgnoreOptions | TypeCompareKind.IgnoreTupleNames)) && 12102parameterOpt?.Type.IsNonNullableValueType() == true && parameterType.IsNullableType() ? parameterOpt.Type : parameterType, // Compensate for operator lifting
Lowering\AsyncRewriter\AsyncRewriter.AsyncIteratorRewriter.cs (1)
216parameter.Type.Equals(F.Compilation.GetWellKnownType(WellKnownType.System_Threading_CancellationToken), TypeCompareKind.ConsiderEverything))
Lowering\AsyncRewriter\RuntimeAsyncRewriter.cs (2)
70if (thisParameter is { Type.IsValueType: true, RefKind: not RefKind.None }) 415Debug.Assert(thisParameter is not { Type.IsValueType: true, RefKind: RefKind.Ref });
Lowering\ClosureConversion\ClosureConversion.Analysis.Tree.cs (1)
689type = ((ParameterSymbol)capturedVariable).Type;
Lowering\ClosureConversion\ClosureConversion.cs (4)
247Debug.Assert(thisParameter is null || TypeSymbol.Equals(thisParameter.Type, thisType, TypeCompareKind.ConsiderEverything2)); 612if ((object)_currentFrameThis != null && TypeSymbol.Equals(_currentFrameThis.Type, frameClass, TypeCompareKind.ConsiderEverything2)) 625if (TypeSymbol.Equals(potentialParameter.Type.OriginalDefinition, frameClass, TypeCompareKind.ConsiderEverything2)) 912var frameType = (NamedTypeSymbol)loweredSymbol.Parameters[i].Type.OriginalDefinition;
Lowering\ClosureConversion\ExpressionLambdaRewriter.cs (6)
712var conversionInputType = method.Parameters[0].Type; 719? Convert(Visit(node.Operand), node.Operand.Type, method.Parameters[0].Type, node.Checked, false) 787unquoted = _bound.Call(_bound.MethodInfo(method, createDelegate.ContainingType), createDelegate, _bound.Typeof(delegateType, createDelegate.Parameters[0].Type), receiver); 794_bound.Typeof(delegateType, createDelegate.Parameters[0].Type), 796_bound.MethodInfo(method, createDelegate.Parameters[2].Type)); 867_bound.Typeof(_typeMap.SubstituteType(p.Type).Type, _bound.WellKnownType(WellKnownType.System_Type)), _bound.Literal(p.Name));
Lowering\DiagnosticsPass_ExpressionTrees.cs (1)
633_diagnostics.Add(ErrorCode.ERR_ExpressionTreeCantContainRefStruct, p.GetFirstLocation(), p.Type.Name);
Lowering\DiagnosticsPass_Warnings.cs (2)
369if (parameters.Length == 2 && TypeSymbol.Equals(parameters[0].Type, t, TypeCompareKind.ConsiderEverything2) && TypeSymbol.Equals(parameters[1].Type, t, TypeCompareKind.ConsiderEverything2))
Lowering\ExtensionMethodReferenceRewriter.cs (1)
123Debug.Assert(receiverOpt.Type!.Equals(method.Parameters[0].Type, TypeCompareKind.IgnoreNullableModifiersForReferenceTypes));
Lowering\Instrumentation\LocalStateTracingInstrumenter.cs (10)
314var parameterLogger = GetLocalOrParameterStoreLogger(parameter.Type, parameter, refAssignmentSourceIsLocal: null, _factory.Syntax); 322MakeStoreLoggerArguments(parameterLogger.Parameters[0], parameter, parameter.Type, _factory.Parameter(parameter), refAssignmentSourceIndex: null, _factory.Literal((ushort)ordinal))))); 430type = parameterSymbol.Type; 457if (parameter.Type.IsVoidPointer() && !targetType.IsPointerOrFunctionPointer()) 460Debug.Assert(!parameter.Type.IsManagedTypeNoUseSiteDiagnostics); 463(BoundExpression)new BoundAddressOfOperator(_factory.Syntax, value, isManaged: false, parameter.Type) : 464_factory.Sequence(new[] { value }, new BoundAddressOfOperator(_factory.Syntax, VariableRead(targetSymbol), isManaged: false, parameter.Type)); 469if (parameter.Type.SpecialType == SpecialType.System_String && targetType.SpecialType != SpecialType.System_String) 489Conversion c = _factory.ClassifyEmitConversion(value, parameter.Type); 491return ImmutableArray.Create(_factory.Convert(parameter.Type, value, c), index);
Lowering\Instrumentation\ModuleCancellationInstrumenter.cs (1)
186member is MethodSymbol { Parameters: [.., { RefKind: RefKind.None, Type: { } lastParamType }] parametersWithCancellationToken } overload &&
Lowering\LocalRewriter\LocalRewriter.cs (2)
1168Debug.Assert(Conversions.IsValidExtensionMethodThisArgConversion(this._compilation.Conversions.ClassifyConversionFromType(receiver.Type, extensionParameter.Type, isChecked: false, ref discardedUseSiteInfo))); 1172return MakeConversionNode(receiver, extensionParameter.Type, @checked: false, acceptFailingConversion: false, markAsChecked: markAsChecked);
Lowering\LocalRewriter\LocalRewriter.PatternLocalRewriter.cs (1)
262Debug.Assert(e.Property.GetMethod.Parameters[0].Type.SpecialType == SpecialType.System_Int32);
Lowering\LocalRewriter\LocalRewriter_BinaryOperator.cs (1)
770var parameterType = leftTruthOperator.Parameters[0].Type;
Lowering\LocalRewriter\LocalRewriter_Call.cs (9)
253case (not null, not null) when !methodThisParameter.Type.Equals(interceptorThisParameterForCompare.Type, TypeCompareKind.ObliviousNullableModifierMatchesAny) 296Debug.Assert(receiverOpt.Type.Equals(interceptor.Parameters[0].Type, TypeCompareKind.AllIgnoreOptions) 297|| (!receiverOpt.Type.IsReferenceType && interceptor.Parameters[0].Type.IsReferenceType)); 298receiverOpt = MakeConversionNode(receiverOpt, interceptor.Parameters[0].Type, @checked: false, markAsChecked: true); 1225var effectiveArgRefKind = GetEffectiveRefKind(paramRefKind, currentArgRefKind, parameters[i].Type, comRefKindMismatchPossible: false); 1329return ((MethodSymbol)methodOrIndexer).Parameters[0].Type as NamedTypeSymbol; 1335return methodOrIndexer.ContainingType.ExtensionParameter.Type as NamedTypeSymbol; 1455refKinds[p] = GetEffectiveRefKind(paramRefKind, argRefKind, parameters[p].Type, comRefKindMismatchPossible: true);
Lowering\LocalRewriter\LocalRewriter_CollectionExpression.cs (6)
187if (!ShouldUseIEnumerableBulkAddMethod(singleSpread.Expression.Type, toListOfElementType.Parameters[0].Type, singleSpread.EnumeratorInfoOpt?.GetEnumeratorInfo.Method)) 235ConversionsBase.HasIdentityConversion(parameter.Type, spreadType) && 376assertTypesAreCompatible(_compilation, arrayType, spanConstructor.Parameters[0].Type, isReadOnlySpan); 592var spanType = (NamedTypeSymbol)readonlySpanParameter.Type; 787&& ShouldUseIEnumerableBulkAddMethod(spreadExpression.Type!, linqToArrayMethod.Parameters[0].Type, spreadElement.EnumeratorInfoOpt?.GetEnumeratorInfo.Method)) 1350if (!ShouldUseIEnumerableBulkAddMethod(rewrittenSpreadOperand.Type, addRangeMethod.Parameters[0].Type, spreadElement.EnumeratorInfoOpt?.GetEnumeratorInfo.Method))
Lowering\LocalRewriter\LocalRewriter_CompoundAssignmentOperator.cs (1)
259return symbol.IsExtensionBlockMember() && !symbol.IsStatic && symbol.ContainingType.ExtensionParameter is { RefKind: RefKind.None, Type.IsReferenceType: false };
Lowering\LocalRewriter\LocalRewriter_Conversion.cs (4)
719Debug.Assert(method.Parameters[0].Type.IsStringType()); 1563Debug.Assert(conversion.Method.Parameters[0].Type.Equals(rewrittenOperand.Type, TypeCompareKind.AllIgnoreOptions)); 1879Conversion fromConversion = TryMakeConversion(syntax, conversion.UserDefinedFromConversion, fromType, meth.Parameters[0].Type, @checked: @checked); 1992Conversion fromConversion = TryMakeConversion(syntax, fromType, meth.Parameters[0].Type, @checked: @checked);
Lowering\LocalRewriter\LocalRewriter_Event.cs (3)
310TypeSymbol parameters0Type = addRemove.Parameters[0].Type; 316TypeSymbol parameters1Type = addRemove.Parameters[1].Type; 322BoundExpression eventInfo = _factory.New(ctor, _factory.Typeof(node.Event.ContainingType, ctor.Parameters[0].Type), _factory.Literal(node.Event.MetadataName));
Lowering\LocalRewriter\LocalRewriter_IndexerAccess.cs (1)
284MethodSymbol createSpan = getCreateSpanHelper(node, spanType: getItemOrSliceHelper.ContainingType, intType: (NamedTypeSymbol)getItemOrSliceHelper.Parameters[0].Type);
Lowering\LocalRewriter\LocalRewriter_ObjectOrCollectionInitializerExpression.cs (1)
702(memberSymbol.IsExtensionBlockMember() && !memberSymbol.IsStatic && ConversionsBase.IsValidExtensionMethodThisArgConversion(_compilation.Conversions.ClassifyConversionFromType(rewrittenReceiver.Type, memberSymbol.ContainingType.ExtensionParameter!.Type, isChecked: false, ref discardedUseSiteInfo))) ||
Lowering\StateMachineRewriter\IteratorAndAsyncCaptureWalker.cs (2)
149!parameter.Type.IsRestrictedType(), 230var type = (variable.Kind == SymbolKind.Local) ? ((LocalSymbol)variable).Type : ((ParameterSymbol)variable).Type;
Lowering\StateMachineRewriter\MethodToStateMachineRewriter.cs (1)
147thisParameter.Type.IsReferenceType &&
Lowering\StateMachineRewriter\StateMachineRewriter.cs (3)
259var proxyField = F.StateMachineFieldForRegularParameter(typeMap.SubstituteType(parameter.Type).Type, parameter.Name, parameter, isPublic: !PreserveInitialParameterValuesAndThreadId); 264var field = F.StateMachineFieldForRegularParameter(typeMap.SubstituteType(parameter.Type).Type, GeneratedNames.StateMachineParameterProxyFieldName(parameter.Name), parameter, isPublic: true); 448if (method.IsStatic || method.ThisParameter.Type.IsReferenceType)
Lowering\SyntheticBoundNodeFactory.cs (3)
230return new BoundThisReference(Syntax, CurrentFunction.ThisParameter.Type) { WasCompilerGenerated = true }; 251return new BoundParameter(Syntax, p, p.Type) { WasCompilerGenerated = true }; 1226NamedTypeSymbol baseType = CurrentFunction.ThisParameter.Type.BaseTypeNoUseSiteDiagnostics;
Symbols\Attributes\SourceAttributeData.cs (1)
282TypeSymbol parameterType = parameters[parameterIndex].Type;
Symbols\Compilation_WellKnownMembers.cs (1)
1185return parameter.Type;
Symbols\MemberSymbolExtensions.cs (2)
365extensionParameter.Type.ContainsPointerOrFunctionPointer()) 862return method.ReturnType.ContainsTupleNames() || method.Parameters.Any(static p => p.Type.ContainsTupleNames());
Symbols\Metadata\PE\PEEventSymbol.cs (1)
208TypeSymbol.Equals(_removeMethod.Parameters[0].Type, token, TypeCompareKind.ConsiderEverything2);
Symbols\Metadata\PE\PEParameterSymbol.cs (5)
714&& ContainingAssembly.TypeConversions.HasCallerLineNumberConversion(this.Type, ref discardedUseSiteInfo); 734&& ContainingAssembly.TypeConversions.HasCallerInfoStringConversion(this.Type, ref discardedUseSiteInfo); 755&& ContainingAssembly.TypeConversions.HasCallerInfoStringConversion(this.Type, ref discardedUseSiteInfo); 778&& ContainingAssembly.TypeConversions.HasCallerInfoStringConversion(this.Type, ref discardedUseSiteInfo); 882else if (paramNames.IsDefault || Type is not NamedTypeSymbol { IsInterpolatedStringHandlerType: true })
Symbols\NamedTypeSymbol.cs (4)
387if (!thisParam.Type.IsValidExtensionParameterType()) 393if (thisParam.RefKind == RefKind.Ref && !thisParam.Type.IsValueType) 399&& !thisParam.Type.IsValidInOrRefReadonlyExtensionParameterType()) 1906var candidate = factory.Parameters[0].Type;
Symbols\OverriddenOrHiddenMembersHelpers.cs (1)
670Debug.Assert(!param.Type.HasCustomModifiers(flagNonDefaultArraySizesOrLowerBounds: false));
Symbols\ParameterSymbol.cs (1)
475ITypeSymbolInternal IParameterSymbolInternal.Type => Type;
Symbols\ReducedExtensionMethodSymbol.cs (2)
53var conversion = conversions.ConvertExtensionMethodThisArg(method.Parameters[0].Type, receiverType, ref useSiteInfo, isMethodGroupConversion: false); 251return _reducedFrom.Parameters[0].Type;
Symbols\Source\CustomModifierUtils.cs (3)
132sourceParameter.Type.HasCustomModifiers(flagNonDefaultArraySizesOrLowerBounds: true) || 134destinationParameter.Type.HasCustomModifiers(flagNonDefaultArraySizesOrLowerBounds: true) || // Could happen if the associated property has custom modifiers. 144builder.Add(destinationParameter.WithCustomModifiersAndParams(sourceParameter.Type,
Symbols\Source\ParameterHelpers.cs (3)
558extensionParameter.Type.FindTypeParameters(usedTypeParameters); 567parameter.Type.FindTypeParameters(usedTypeParameters); 946TypeSymbol parameterType = parameter.Type;
Symbols\Source\SourceComplexParameterSymbol.cs (19)
356new BoundLiteral(parameterSyntax, defaultValue, Type)); 410if (Type.IsNullableType()) 412convertedExpression = binder.GenerateConversionForAssignment(Type.GetNullableUnderlyingType(), 905return RefKind != RefKind.None || (HasParamsModifier && Type.IsRefLikeOrAllowsRefLikeType()); 1015if (this.Type.IsReferenceType) 1039else if (!compilation.Conversions.ClassifyConversionFromType((TypeSymbol)arg.TypeInternal, this.Type, isChecked: false, ref useSiteInfo).Kind.IsImplicitConversion()) 1264if (!Type.Equals(this.DeclaringCompilation.GetWellKnownType(WellKnownType.System_Threading_CancellationToken))) 1287if (Type is not NamedTypeSymbol { IsInterpolatedStringHandlerType: true } handlerType) 1290diagnostics.Add(ErrorCode.ERR_TypeIsNotAnInterpolatedStringHandlerType, arguments.AttributeSyntaxOpt.Location, Type); 1566public sealed override bool IsParamsArray => (_parameterSyntaxKind & ParameterFlags.ParamsParameter) != 0 && this.Type.IsSZArray(); 1568public sealed override bool IsParamsCollection => (_parameterSyntaxKind & ParameterFlags.ParamsParameter) != 0 && !this.Type.IsSZArray(); 1596if (DeclaredScope == ScopedKind.ScopedValue && !Type.IsErrorOrRefLikeOrAllowsRefLikeType()) 1613var collectionTypeKind = ConversionsBase.GetCollectionExpressionTypeKind(DeclaringCompilation, Type, out TypeWithAnnotations elementTypeWithAnnotations); 1629binder.TryGetCollectionIterationType(syntax, Type, out elementTypeWithAnnotations); 1638withElement: null, syntax, Type, out MethodSymbol? constructor, isExpanded: out _, diagnostics, isParamsModifierValidation: true)) 1648if (!binder.HasCollectionExpressionApplicableAddMethod(syntax, Type, out ImmutableArray<MethodSymbol> addMethods, diagnostics)) 1657diagnostics.Add(ErrorCode.ERR_ParamsCollectionExtensionAddMethod, syntax, Type); 1690binder.TryGetCollectionIterationType(syntax, Type, out elementTypeWithAnnotations); 1699syntax, (NamedTypeSymbol)Type, diagnostics, forParams: true);
Symbols\Source\SourceConstructorSymbolBase.cs (1)
99parameter.Type.CheckAllConstraints(compilation, conversions, parameter.GetFirstLocation(), diagnostics);
Symbols\Source\SourceDelegateMethodSymbol.cs (3)
121diagnostics.Add(ErrorCode.ERR_BadVisDelegateParam, delegateType.GetFirstLocation(), delegateType, parameterSymbol.Type); 123else if (!delegateTypeIsFile && parameterSymbol.Type.HasFileLocalTypes()) 125diagnostics.Add(ErrorCode.ERR_FileTypeDisallowedInSignature, delegateType.GetFirstLocation(), parameterSymbol.Type, delegateType);
Symbols\Source\SourceMemberContainerSymbol.cs (4)
1518if (this.ExtensionParameter is { Type: NamedTypeSymbol { Name: var extendedTypeName } }) 4650if (!propertyParamType.Equals(methodParam.Type, TypeCompareKind.AllIgnoreOptions)) 4668eventSymbol.Type.Equals(methodParams[0].Type, TypeCompareKind.AllIgnoreOptions); 5102primaryAndCopyCtorAmbiguity = ctor.ParameterCount == 1 && ctor.Parameters[0].Type.Equals(this, TypeCompareKind.AllIgnoreOptions);
Symbols\Source\SourceMemberContainerSymbol_ImplementationChecks.cs (4)
1428p.Type.IsRefLikeOrAllowsRefLikeType())) 1438if ((overrideThisParameter is { RefKind: RefKind.Ref or RefKind.Out } && overrideThisParameter.Type.IsRefLikeOrAllowsRefLikeType()) || 1444else if (parameters.Any(p => (p.RefKind is RefKind.Ref or RefKind.Out) && p.Type.IsRefLikeOrAllowsRefLikeType())) 1460else if (parameters.Any(p => p.RefKind == RefKind.None && p.Type.IsRefLikeOrAllowsRefLikeType()))
Symbols\Source\SourceMemberMethodSymbol.cs (4)
377diagnostics.Add(code, GetFirstLocation(), this, parameter.Type); 386diagnostics.Add(code, GetFirstLocation(), this, extensionParameter.Type); 414if (param.Type.HasFileLocalTypes()) 416diagnostics.Add(ErrorCode.ERR_FileTypeDisallowedInSignature, GetFirstLocation(), param.Type, containingType);
Symbols\Source\SourceMethodSymbol.cs (3)
74else if (parameter.Type.IsPointerOrFunctionPointer() && !isExtensionParameter) 79else if (parameter.Type.IsRestrictedType()) 81diagnostics.Add(ErrorCode.ERR_BadSpecialByRefParameter, getLocation(parameter, location, isExtensionParameter), parameter.Type);
Symbols\Source\SourceMethodSymbolWithAttributes.cs (3)
1019Debug.Assert(arguments.Attribute.AttributeConstructor.Parameters is [{ Type.SpecialType: SpecialType.System_Int32 }, { Type.SpecialType: SpecialType.System_String }]); 1414checkAndReportManagedTypes(param.Type, param.RefKind, param.GetNonNullSyntaxNode(), isParam: true, diagnostics);
Symbols\Source\SourceNamedTypeSymbol.cs (2)
1992if (indexer.Parameters is [{ Type: { } type }] && 2023conversion.Parameters[0].Type.Equals(this, TypeCompareKind.AllIgnoreOptions) &&
Symbols\Source\SourceNamedTypeSymbol_Extension.cs (1)
1207Conversion conversion = conversions.ConvertExtensionMethodThisArg(parameterType: result.ContainingType.ExtensionParameter.Type, receiverType, ref discardedUseSiteInfo, isMethodGroupConversion: false);
Symbols\Source\SourceOrdinaryMethodOrUserDefinedOperatorSymbol.cs (1)
241parameter.Type.CheckAllConstraints(compilation, conversions, parameter.GetFirstLocation(), diagnostics);
Symbols\Source\SourceParameterSymbol.cs (2)
125newType = CustomModifierUtils.CopyTypeCustomModifiers(newType, this.Type, this.ContainingAssembly); 245else if (HasParamsModifier && Type.IsRefLikeOrAllowsRefLikeType())
Symbols\Source\SourcePropertySymbol.cs (6)
680if (!IsExplicitInterfaceImplementation && !this.IsNoMoreVisibleThan(param.Type, ref useSiteInfo)) 682diagnostics.Add(ErrorCode.ERR_BadVisIndexerParam, Location, this, param.Type); 684else if (param.Type.HasFileLocalTypes() && !containingTypeForFileTypeCheck.HasFileLocalTypes()) 686diagnostics.Add(ErrorCode.ERR_FileTypeDisallowedInSignature, Location, param.Type, containingTypeForFileTypeCheck); 708!this.IsNoMoreVisibleThan(extensionParameter.Type, ref useSiteInfo)) 710diagnostics.Add(ErrorCode.ERR_BadVisIndexerParam, Location, this, extensionParameter.Type);
Symbols\Source\SourcePropertySymbolBase.cs (1)
1850parameter.Type.CheckAllConstraints(DeclaringCompilation, conversions, parameter.GetFirstLocation(), diagnostics);
Symbols\Source\SourceUserDefinedOperatorSymbolBase.cs (5)
81if (this.ContainingType is { IsExtension: true, ExtensionParameter.Type.IsStatic: true }) 385if (ContainingType is { IsExtension: true, ExtensionParameter: { Type.IsStatic: false } extensionParameter } && !IsStatic && 408if (extensionParameter.Type.IsStructType()) 416switch (extensionParameter.Type) 895if (ContainingType is { IsExtension: true, ExtensionParameter.Type: var extendedType })
Symbols\SubstitutedMethodSymbol.cs (1)
170return reduced.Parameters[0].Type;
Symbols\SymbolDistinguisher.cs (1)
145symbol = ((ParameterSymbol)symbol).Type;
Symbols\Synthesized\Records\SynthesizedRecordBaseEquals.cs (1)
59if (parameter.Type.IsErrorType())
Symbols\Synthesized\Records\SynthesizedRecordClone.cs (1)
125ctor.Parameters[0].Type.Equals(ContainingType, TypeCompareKind.AllIgnoreOptions))
Symbols\Synthesized\Records\SynthesizedRecordCopyCtor.cs (1)
147method.Parameters[0].Type.Equals(containingType, TypeCompareKind.AllIgnoreOptions) &&
Symbols\Synthesized\Records\SynthesizedRecordDeconstruct.cs (1)
73if (!parameter.Type.Equals(type, TypeCompareKind.AllIgnoreOptions))
Symbols\Synthesized\Records\SynthesizedRecordEqualityOperator.cs (1)
47candidate.Parameters[0].Type.Equals(ContainingType, TypeCompareKind.AllIgnoreOptions))
Symbols\Synthesized\Records\SynthesizedRecordEquals.cs (1)
130TypeSymbol baseType = baseEquals.Parameters[0].Type;
Symbols\Synthesized\SynthesizedEntryPointSymbol.cs (2)
362var arguments = Parameters.SelectAsArray((p, s) => (BoundExpression)new BoundParameter(s, p, p.Type), _userMainReturnTypeSyntax); 388&& handleAsyncEntryPointMethod.Parameters[0].Type.Equals(userMain.ReturnType, TypeCompareKind.AllIgnoreOptions))
Symbols\Synthesized\SynthesizedHotReloadExceptionConstructorSymbol.cs (1)
59!parameter.Type.Equals(exceptionConstructor.ContainingType))
Symbols\Synthesized\SynthesizedIntrinsicOperatorSymbol.cs (2)
451if (!TypeSymbol.Equals(_parameters[i].Type, other._parameters[i].Type, compareKind))
Symbols\Synthesized\SynthesizedParameterSymbol.cs (2)
390public override bool IsParamsArray => _isParams && Type.IsSZArray(); 392public override bool IsParamsCollection => _isParams && !Type.IsSZArray();
Symbols\Synthesized\SynthesizedThrowSwitchExpressionExceptionMethod.cs (1)
33Debug.Assert(unmatchedValue.Type.SpecialType == SpecialType.System_Object);
Symbols\Synthesized\SynthesizedUnionCtor.cs (1)
84this.Parameters[0].Type.CheckAllConstraints(DeclaringCompilation, conversions, GetFirstLocation(), diagnostics);
Symbols\VarianceSafety.cs (1)
244param.Type,