23 overrides of ExtensionParameter
Microsoft.CodeAnalysis.CSharp (22)
Symbols\AnonymousTypes\PublicSymbols\AnonymousManager.TypeOrDelegatePublicSymbol.cs (1)
50internal sealed override ParameterSymbol? ExtensionParameter => null;
Symbols\AnonymousTypes\SynthesizedSymbols\AnonymousType.TypeOrDelegateTemplateSymbol.cs (1)
128internal sealed override ParameterSymbol? ExtensionParameter => null;
Symbols\ArrayTypeSymbol.cs (1)
239internal sealed override ParameterSymbol? ExtensionParameter => null;
Symbols\DynamicTypeSymbol.cs (1)
110internal sealed override ParameterSymbol? ExtensionParameter => null;
Symbols\ErrorTypeSymbol.cs (1)
109internal sealed override ParameterSymbol? ExtensionParameter => null;
Symbols\FunctionPointers\FunctionPointerTypeSymbol.cs (1)
76internal sealed override ParameterSymbol? ExtensionParameter => null;
Symbols\FunctionTypeSymbol.cs (1)
102internal sealed override ParameterSymbol? ExtensionParameter => null;
Symbols\Metadata\PE\PENamedTypeSymbol.cs (1)
386internal sealed override ParameterSymbol? ExtensionParameter
Symbols\NativeIntegerTypeSymbol.cs (1)
188internal sealed override ParameterSymbol? ExtensionParameter => null;
Symbols\PointerTypeSymbol.cs (1)
110internal sealed override ParameterSymbol? ExtensionParameter => null;
Symbols\Retargeting\RetargetingNamedTypeSymbol.cs (1)
96internal sealed override ParameterSymbol ExtensionParameter
Symbols\Source\ImplicitNamedTypeSymbol.cs (1)
178internal sealed override ParameterSymbol ExtensionParameter => null;
Symbols\Source\SourceNamedTypeSymbol_Extension.cs (1)
1043internal sealed override ParameterSymbol? ExtensionParameter
Symbols\SubstitutedNamedTypeSymbol.cs (1)
496internal sealed override ParameterSymbol? ExtensionParameter
Symbols\Synthesized\ReadOnlyListType\SynthesizedReadOnlyListEnumeratorTypeSymbol.cs (1)
180internal sealed override ParameterSymbol? ExtensionParameter => null;
Symbols\Synthesized\ReadOnlyListType\SynthesizedReadOnlyListTypeSymbol.cs (1)
857internal sealed override ParameterSymbol? ExtensionParameter => null;
Symbols\Synthesized\SynthesizedContainer.cs (1)
50internal sealed override ParameterSymbol ExtensionParameter => null;
Symbols\Synthesized\SynthesizedEmbeddedAttributeSymbol.cs (1)
121internal sealed override ParameterSymbol ExtensionParameter => null;
Symbols\Synthesized\SynthesizedHotReloadExceptionSymbol.cs (1)
113internal sealed override ParameterSymbol? ExtensionParameter => null;
Symbols\Synthesized\SynthesizedInlineArrayTypeSymbol.cs (1)
111internal sealed override ParameterSymbol? ExtensionParameter => null;
Symbols\Synthesized\SynthesizedPrivateImplementationDetailsType.cs (1)
94internal sealed override ParameterSymbol? ExtensionParameter => null;
Symbols\TypeParameterSymbol.cs (1)
595internal sealed override ParameterSymbol ExtensionParameter => null;
Microsoft.CodeAnalysis.CSharp.Symbol.UnitTests (1)
Symbols\MockNamedTypeSymbol.cs (1)
342internal sealed override ParameterSymbol ExtensionParameter => null;
85 references to ExtensionParameter
Microsoft.CodeAnalysis.CSharp (77)
Binder\Binder.ValueChecks.cs (1)
2159var extensionParameter = symbol.ContainingType.ExtensionParameter;
Binder\Binder_Conversions.cs (1)
2996return method.ContainingType.ExtensionParameter;
Binder\Binder_Crefs.cs (2)
300if (!nested.IsExtension || nested.Arity != extensionArity || nested.ExtensionParameter is null) 310parameters: [constructedNested.ExtensionParameter],
Binder\Binder_Expressions.cs (3)
3795var receiverParameter = ((TypeSymbol)methodResult.Member.ContainingSymbol).ExtensionParameter; 8050Debug.Assert(propertySymbol.ContainingType.ExtensionParameter is not null); 8054receiver = CheckAndConvertExtensionReceiver(receiver, propertySymbol.ContainingType.ExtensionParameter, diagnostics);
Binder\Binder_Invocation.cs (1)
1292receiver = CheckAndConvertExtensionReceiver(receiver, method.ContainingType.ExtensionParameter, diagnostics);
Binder\Binder_Lookup.cs (1)
210if (extensionDeclaration.ExtensionParameter is null)
Binder\Binder_Operators.cs (5)
477Debug.Assert(method.ContainingType.ExtensionParameter is not null); 496leftConversion = CreateConversion(node, leftPlaceholder, conversion, isCast: false, conversionGroupOpt: null, method.ContainingType.ExtensionParameter.Type, diagnostics); 3433Debug.Assert(method.ContainingType.ExtensionParameter is not null); 3452operandConversion = CreateConversion(node, operandPlaceholder, conversion, isCast: false, conversionGroupOpt: null, method.ContainingType.ExtensionParameter.Type, diagnostics); 3733if (extensionDeclaration.ExtensionParameter is not { } extensionParameter ||
Binder\ForEachLoopBinder.cs (2)
252else if (getEnumeratorMethod.GetIsNewExtensionMember() && getEnumeratorMethod.ContainingType.ExtensionParameter.RefKind == RefKind.Ref) 1048builder.CollectionType = builder.GetEnumeratorInfo.Method.ContainingType.ExtensionParameter.Type;
Binder\InMethodBinder.cs (1)
340if (_methodSymbol.ContainingType.ExtensionParameter is { Name: not "" } receiver)
Binder\RefSafetyAnalysis.cs (1)
648return method.ContainingType.ExtensionParameter;
Binder\Semantics\Conversions\Conversions.cs (1)
347thisParameter = method.ContainingType.ExtensionParameter;
Binder\Semantics\Operators\BinaryOperatorOverloadResolution.cs (7)
1501if (extensionDeclaration.ExtensionParameter is null) 1586Debug.Assert(candidate.Method.ContainingType.ExtensionParameter is not null); 1604var extensionParameter = method.ContainingType.ExtensionParameter; 1613Debug.Assert(candidate.Method.ContainingType.ExtensionParameter is not null); 1617if (!candidate.Method.ContainingType.ExtensionParameter.Type.IsValidNullableTypeArgument() || 1618!Conversions.ConvertExtensionMethodThisArg(MakeNullable(candidate.Method.ContainingType.ExtensionParameter.Type), operand.Type, ref useSiteInfo, isMethodGroupConversion: false).Exists) 1623else if (!Conversions.ConvertExtensionMethodThisArg(candidate.Method.ContainingType.ExtensionParameter.Type, operand.Type, ref useSiteInfo, isMethodGroupConversion: false).Exists)
Binder\Semantics\Operators\UnaryOperatorOverloadResolution.cs (5)
150if (extensionDeclaration.ExtensionParameter is null) 227Debug.Assert(candidate.Method.ContainingType.ExtensionParameter is not null); 233if (!candidate.Method.ContainingType.ExtensionParameter.Type.IsValidNullableTypeArgument() || 234!Conversions.ConvertExtensionMethodThisArg(MakeNullable(candidate.Method.ContainingType.ExtensionParameter.Type), operand.Type, ref useSiteInfo, isMethodGroupConversion: false).Exists) 239else if (!Conversions.ConvertExtensionMethodThisArg(candidate.Method.ContainingType.ExtensionParameter.Type, operand.Type, ref useSiteInfo, isMethodGroupConversion: false).Exists)
Binder\Semantics\OverloadResolution\MethodTypeInference.cs (4)
3196Debug.Assert(extension.ExtensionParameter is not null); 3197Debug.Assert(!extension.ExtensionParameter.Type.IsDynamic()); 3206[extension.ExtensionParameter.TypeWithAnnotations], 3207[extension.ExtensionParameter.RefKind],
Binder\Semantics\OverloadResolution\OverloadResolution.cs (3)
2098ParameterSymbol? extensionParameter = member.ContainingType.ExtensionParameter; 3896Debug.Assert(member.ContainingType.ExtensionParameter is not null); 3897hasSomeRefKinds |= member.ContainingType.ExtensionParameter.RefKind != RefKind.None;
Binder\Semantics\OverloadResolution\OverloadResolution_ArgsToParameters.cs (1)
62return [symbol.ContainingType.ExtensionParameter.TypeWithAnnotations, .. symbol.GetParameterTypes()];
Binder\WithExtensionParameterBinder.cs (2)
28if (_type.ExtensionParameter is { Name: not "" } parameter && 46if (_type.ExtensionParameter is { Name: not "" } parameter && parameter.Name == name)
FlowAnalysis\NullableWalker.cs (7)
6504Debug.Assert(node.Method.ContainingType.ExtensionParameter is not null); 6505annotations = node.Method.ContainingType.ExtensionParameter.FlowAnalysisAnnotations; 6656ParameterSymbol? extensionParameter = method.ContainingType.ExtensionParameter; 6690ParameterSymbol? extensionParameter = method.ContainingType.ExtensionParameter; 10341ParameterSymbol? receiverParameter = isNewExtensionMethod ? method.ContainingType.ExtensionParameter : method.Parameters[0]; 10730var receiverParameter = isNewExtension ? deconstructMethod.ContainingType.ExtensionParameter : deconstructMethod.Parameters[0]; 11339var extensionParameter = property.ContainingType.ExtensionParameter;
Lowering\LocalRewriter\LocalRewriter.cs (1)
1144ParameterSymbol? extensionParameter = member.ContainingType.ExtensionParameter;
Lowering\LocalRewriter\LocalRewriter_Call.cs (2)
1245Debug.Assert(methodOrIndexer.ContainingType.ExtensionParameter is not null); 1246return methodOrIndexer.ContainingType.ExtensionParameter.Type as NamedTypeSymbol;
Lowering\LocalRewriter\LocalRewriter_CompoundAssignmentOperator.cs (1)
246property.ContainingType.ExtensionParameter is { RefKind: RefKind.None, Type.IsReferenceType: false };
Lowering\LocalRewriter\LocalRewriter_ObjectOrCollectionInitializerExpression.cs (1)
701(memberSymbol.GetIsNewExtensionMember() && !memberSymbol.IsStatic && ConversionsBase.IsValidExtensionMethodThisArgConversion(_compilation.Conversions.ClassifyConversionFromType(rewrittenReceiver.Type, memberSymbol.ContainingType.ExtensionParameter!.Type, isChecked: false, ref discardedUseSiteInfo))) ||
Symbols\Extensions\SourceExtensionImplementationMethodSymbol.cs (1)
25Debug.Assert(sourceMethod.IsStatic || sourceMethod.ContainingType.ExtensionParameter is not null);
Symbols\MemberSymbolExtensions.cs (3)
110&& symbol.ContainingType.ExtensionParameter is { } foundExtensionParameter) 185if (symbol.GetIsNewExtensionMember() && symbol.ContainingType.ExtensionParameter is { } extensionParameter) 196bool hasExtensionParameter = symbol.GetIsNewExtensionMember() && symbol.ContainingType.ExtensionParameter is { };
Symbols\Metadata\PE\PEParameterSymbol.cs (1)
905if (ContainingSymbol is { IsStatic: false, ContainingSymbol: TypeSymbol { IsExtension: true, ExtensionParameter.Name: var extensionParameterName } }
Symbols\PublicModel\TypeSymbol.cs (1)
155IParameterSymbol? ITypeSymbol.ExtensionParameter => UnderlyingTypeSymbol.ExtensionParameter?.GetPublicSymbol();
Symbols\Retargeting\RetargetingNamedTypeSymbol.cs (1)
102var extensionParameter = _underlyingType.ExtensionParameter is { } receiverParameter ? new RetargetingExtensionReceiverParameterSymbol(this, receiverParameter) : null;
Symbols\Source\ParameterHelpers.cs (2)
221if (owner.ContainingType.ExtensionParameter is { Name: not "" } receiver) 527if (extension.ExtensionParameter is not { } extensionParameter || extension.ContainingType.Arity != 0)
Symbols\Source\SourceComplexParameterSymbol.cs (1)
1269ParameterSymbol? extensionParameter = ContainingType.ExtensionParameter;
Symbols\Source\SourceMemberContainerSymbol.cs (2)
2509if (NormalizedExtension.ExtensionParameter is { } receiverParameter) 3872(method.IsStatic || type.ExtensionParameter is not null))
Symbols\Source\SourceMemberMethodSymbol.cs (1)
381if (this.GetIsNewExtensionMember() && ContainingType.ExtensionParameter is { } extensionParameter)
Symbols\Source\SourceNamedTypeSymbol_Extension.cs (3)
1140if (extension.ExtensionParameter is null) 1161Debug.Assert(result.ContainingType.ExtensionParameter is not null); 1163Conversion conversion = compilation.Conversions.ConvertExtensionMethodThisArg(parameterType: result.ContainingType.ExtensionParameter.Type, receiverType, ref discardedUseSiteInfo, isMethodGroupConversion: false);
Symbols\Source\SourceOrdinaryMethodSymbol.cs (1)
251else if (ContainingType is { IsExtension: true, ExtensionParameter.Name: "" } && !IsStatic)
Symbols\Source\SourcePropertySymbol.cs (2)
702if (ContainingType.ExtensionParameter is { Name: ParameterSymbol.ValueParameterName }) 708if (this.GetIsNewExtensionMember() && ContainingType.ExtensionParameter is { } extensionParameter &&
Symbols\Source\SourcePropertySymbolBase.cs (1)
1141else if (ContainingType is { IsExtension: true, ExtensionParameter.Name: "" } && !IsStatic)
Symbols\Source\SourceUserDefinedOperatorSymbolBase.cs (3)
81if (this.ContainingType is { IsExtension: true, ExtensionParameter.Type.IsStatic: true }) 385if (ContainingType is { IsExtension: true, ExtensionParameter: { Type.IsStatic: false } extensionParameter } && !IsStatic && 895if (ContainingType is { IsExtension: true, ExtensionParameter.Type: var extendedType })
Symbols\SubstitutedNamedTypeSymbol.cs (1)
514var unsubstitutedParameter = OriginalDefinition.ExtensionParameter;
Microsoft.CodeAnalysis.CSharp.Emit3.UnitTests (8)
Semantics\ExtensionTests.cs (8)
22180Assert.False(underlying.ExtensionParameter.HasInterpolatedStringHandlerArgumentError); 22181Assert.True(underlying.ExtensionParameter.InterpolatedStringHandlerArgumentIndexes.IsEmpty); 22233Assert.True(underlying.ExtensionParameter.HasInterpolatedStringHandlerArgumentError); 22234Assert.True(underlying.ExtensionParameter.InterpolatedStringHandlerArgumentIndexes.IsEmpty); 22357Assert.True(symbol.ExtensionParameter.HasInterpolatedStringHandlerArgumentError); 22358Assert.True(symbol.ExtensionParameter.InterpolatedStringHandlerArgumentIndexes.IsEmpty); 22404Assert.False(underlying.ExtensionParameter.HasInterpolatedStringHandlerArgumentError); 22405Assert.True(underlying.ExtensionParameter.InterpolatedStringHandlerArgumentIndexes.IsEmpty);