1 override of IsExtension
Microsoft.CodeAnalysis.CSharp (1)
Symbols\Metadata\PE\PENamedTypeSymbol.cs (1)
2011public override bool IsExtension => _lazyUncommonProperties?.extensionInfo is { };
120 references to IsExtension
Microsoft.CodeAnalysis.CSharp (112)
Binder\Binder_Crefs.cs (1)
300if (!nested.IsExtension || nested.Arity != extensionArity || nested.ExtensionParameter is null)
Binder\Binder_Expressions.cs (1)
507|| this.ContainingMemberOrLambda is TypeSymbol { IsExtension: true });
Binder\Binder_NameConflicts.cs (2)
70if (tp.ContainingSymbol is NamedTypeSymbol { IsExtension: true }) 90if (parameters[0] is { ContainingSymbol: NamedTypeSymbol { IsExtension: true }, Name: var receiverName } && receiverName == name)
Binder\Binder_Operators.cs (1)
3731Debug.Assert(extensionDeclaration.IsExtension);
Binder\Binder_Statements.cs (1)
3879if (containingType.IsStructType() || containingType.IsEnumType() || containingType.IsExtension)
Binder\Binder_Symbols.cs (1)
353&& containing is not TypeSymbol { IsExtension: true })
Binder\BinderFactory.BinderFactoryVisitor.cs (2)
785if (typeSymbol.IsExtension) 1255Debug.Assert(type.IsExtension);
Binder\InMethodBinder.cs (1)
296if (parameter.ContainingSymbol is NamedTypeSymbol { IsExtension: true })
Binder\Semantics\AccessCheck.cs (2)
332containingType.IsExtension && containingType.ContainingType is { } extensionEnclosingType ? extensionEnclosingType : containingType, 699return containingType.IsExtension ? ErrorCode.ERR_ProtectedInExtension
Binder\Semantics\Operators\BinaryOperatorOverloadResolution.cs (1)
1499Debug.Assert(extensionDeclaration.IsExtension);
Binder\Semantics\Operators\UnaryOperatorOverloadResolution.cs (1)
148Debug.Assert(extensionDeclaration.IsExtension);
Binder\WithClassTypeParametersBinder.cs (1)
70if (_namedType.IsExtension)
Compilation\SyntaxTreeSemanticModel.cs (1)
1402if (symbol is TypeSymbol { IsExtension: true } && symbol.HasLocationContainedWithin(this.SyntaxTree, declarationSpan, out var wasZeroWidthMatch))
Compiler\DocumentationCommentCompiler.cs (3)
227if (symbol.IsExtension && (SourceNamedTypeSymbol)symbol.ContainingType is { } containingType) 245if (member is NamedTypeSymbol { IsExtension: true }) 308Debug.Assert(extension.IsExtension);
Compiler\MethodCompiler.cs (2)
502if (containingType.IsExtension && ((SourceNamedTypeSymbol)containingType).TryGetOrCreateExtensionMarker() is { } marker) 554if (containingType.IsExtension &&
DocumentationComments\DocumentationCommentIDVisitor.cs (1)
73if (symbol.IsExtension)
DocumentationComments\DocumentationCommentIDVisitor.PartVisitor.cs (3)
179if ((object)containingSymbol != null && (containingSymbol.Name.Length != 0 || containingSymbol is NamedTypeSymbol { IsExtension: true })) 185builder.Append(symbol.IsExtension ? symbol.ExtensionGroupingName : symbol.Name); 193if (!symbol.IsExtension)
Emitter\Model\MethodSymbolAdapter.cs (4)
419return !AdaptedMethodSymbol.ContainingType.IsExtension && AdaptedMethodSymbol.IsExternal; 446return !AdaptedMethodSymbol.ContainingType.IsExtension && AdaptedMethodSymbol.GetDllImportData() != null; 455return AdaptedMethodSymbol.ContainingType.IsExtension ? null : AdaptedMethodSymbol.GetDllImportData(); 462return AdaptedMethodSymbol.ContainingType.IsExtension ? default : AdaptedMethodSymbol.ImplementationAttributes;
Emitter\Model\NamedTypeSymbolAdapter.cs (3)
293if (AdaptedNamedTypeSymbol.IsScriptClass || AdaptedNamedTypeSymbol.IsExtension) 660if (type.IsExtension) 798if (AdaptedNamedTypeSymbol.IsExtension)
Emitter\Model\PEModuleBuilder.cs (5)
385if (!((NamedTypeSymbol)member).IsExtension) // Tracked by https://github.com/dotnet/roslyn/issues/78963 : Figure out what to do about extensions, if anything 2123Debug.Assert(container is not NamedTypeSymbol { IsExtension: true } || nestedType.GetInternalSymbol() is FixedFieldImplementationType); 2129Debug.Assert(container is not NamedTypeSymbol { IsExtension: true }); 2135Debug.Assert(container is not NamedTypeSymbol { IsExtension: true }); 2141Debug.Assert(container is not NamedTypeSymbol { IsExtension: true });
FlowAnalysis\NullableWalker.cs (1)
9775var newExtensionFormOffset = parameterOpt?.ContainingType.IsExtension is true ? 1 : 0;
Lowering\LocalRewriter\DelegateCacheContainer.cs (1)
35(owner.ContainingType is { IsExtension: true } extensionType ? extensionType.TypeParameters : []).Concat(
Lowering\LocalRewriter\DelegateCacheRewriter.cs (2)
151if (enclosingSymbol is NamedTypeSymbol { IsExtension: true, Arity: > 0 }) 192if (enclosingSymbol is NamedTypeSymbol { IsExtension: true, Arity: > 0 } extensionType &&
Lowering\LocalRewriter\DynamicSiteContainer.cs (2)
19(topLevelMethod.ContainingSymbol is NamedTypeSymbol { IsExtension: true } extensionType ? extensionType.TypeParameters : []).Concat( 31if (containingSymbol is NamedTypeSymbol { IsExtension: true })
Lowering\LocalRewriter\LocalRewriter_Call.cs (1)
57Debug.Assert(!_factory.CurrentType.IsExtension); // When binding a simple name for a call, you cannot get a member inside an extension type
Symbols\Extensions\SynthesizedExtensionMarker.cs (1)
30Debug.Assert(extensionType.IsExtension);
Symbols\MemberSymbolExtensions.cs (2)
98return member is { ContainingSymbol: TypeSymbol { IsExtension: true }, OriginalDefinition: not SynthesizedExtensionMarker }; 103return member.ContainingSymbol is TypeSymbol { IsExtension: true };
Symbols\Metadata\PE\PEParameterSymbol.cs (1)
905if (ContainingSymbol is { IsStatic: false, ContainingSymbol: TypeSymbol { IsExtension: true, ExtensionParameter.Name: var extensionParameterName } }
Symbols\NamespaceSymbol.cs (1)
373if (nestedType.IsExtension)
Symbols\PublicModel\TypeSymbol.cs (2)
29if (UnderlyingTypeSymbol.IsExtension) 153bool ITypeSymbol.IsExtension => UnderlyingTypeSymbol.IsExtension;
Symbols\Retargeting\RetargetingNamedTypeSymbol.cs (1)
112Debug.Assert(this.IsExtension);
Symbols\Source\ExtensionGroupingInfo.cs (11)
35if (!type.IsExtension) 75if (!type1.IsExtension) 83if (!type2.IsExtension) 113Debug.Assert(extension.IsExtension); 173Debug.Assert(extension.IsExtension); 194Debug.Assert(extension.IsExtension); 214Debug.Assert(extension1.IsExtension); 215Debug.Assert(extension2.IsExtension); 249Debug.Assert(extension1.IsExtension); 250Debug.Assert(extension2.IsExtension); 461Debug.Assert(extension.IsExtension);
Symbols\Source\SourceDestructorSymbol.cs (1)
32if (syntax.Identifier.ValueText != containingType.Name && !containingType.IsExtension)
Symbols\Source\SourceMemberContainerSymbol.cs (11)
615if (this.IsExtension) 648if (this.IsExtension) 1353if (!t.IsExtension) 1850else if (IsExtension) 1951if (IsExtension) 2384if (IsExtension) 2418IEnumerable<IGrouping<string, NamedTypeSymbol>> extensionsByReceiverType = GetTypeMembers("").Where(static t => t.IsExtension).GroupBy(static t => ((SourceNamedTypeSymbol)t).ExtensionGroupingName); 2526if (this.IsExtension) 2862Debug.Assert(!this.IsExtension); 3932if (!this.IsExtension) 5868if (IsExtension)
Symbols\Source\SourceMemberMethodSymbol.cs (1)
397if (containingType is { IsExtension: true, ContainingType: { } enclosing })
Symbols\Source\SourceNamedTypeSymbol.cs (5)
1417if (this.IsExtension) 1829return IsExtension 1839return IsExtension 1998if (IsExtension && ContainingType?.IsExtension != true)
Symbols\Source\SourceNamedTypeSymbol_Extension.cs (8)
43Debug.Assert(this.IsExtension && this.IsDefinition); 266if (typeParameter.ContainingType.IsExtension) 369Debug.Assert(this.IsExtension && this.IsDefinition); 1015if (!IsExtension) 1033Debug.Assert(this.IsExtension); 1066Debug.Assert(IsExtension); 1102Debug.Assert(IsExtension); 1121Debug.Assert(IsExtension);
Symbols\Source\SourceNamespaceSymbol.cs (1)
316if (nts?.IsExtension == true) continue;
Symbols\Source\SourceOrdinaryMethodSymbol.cs (3)
251else if (ContainingType is { IsExtension: true, ExtensionParameter.Name: "" } && !IsStatic) 711bool isExtension = containingType.IsExtension; 1161if (tpEnclosing.ContainingSymbol is NamedTypeSymbol { IsExtension: true })
Symbols\Source\SourceParameterSymbol.cs (1)
111Debug.Assert((owner.Kind == SymbolKind.Method) || (owner.Kind == SymbolKind.Property) || owner is TypeSymbol { IsExtension: true });
Symbols\Source\SourcePropertyAccessorSymbol.cs (1)
558else if (ContainingType.IsExtension && IsInitOnly)
Symbols\Source\SourcePropertySymbol.cs (3)
383bool isExtension = containingType.IsExtension; 591if (containingType is { IsExtension: true, ContainingType: { } enclosing }) 674if (containingTypeForFileTypeCheck is { IsExtension: true, ContainingType: { } enclosing })
Symbols\Source\SourcePropertySymbolBase.cs (1)
1143else if (ContainingType is { IsExtension: true, ExtensionParameter.Name: "" } && !IsStatic)
Symbols\Source\SourceUserDefinedOperatorSymbolBase.cs (8)
81if (this.ContainingType is { IsExtension: true, ExtensionParameter.Type.IsStatic: true }) 178bool inExtension = containingType.IsExtension; 385if (ContainingType is { IsExtension: true, ExtensionParameter: { Type.IsStatic: false } extensionParameter } && !IsStatic && 806(ContainingType.IsExtension ? 875(ContainingType.IsExtension ? 895if (ContainingType is { IsExtension: true, ExtensionParameter.Type: var extendedType }) 950(ContainingType.IsExtension ? ErrorCode.ERR_BadExtensionShiftOperatorSignature : ErrorCode.ERR_BadShiftOperatorSignature), 972(ContainingType.IsExtension ? ErrorCode.ERR_BadExtensionBinaryOperatorSignature : ErrorCode.ERR_BadBinaryOperatorSignature),
Symbols\SubstitutedNamedTypeSymbol.cs (1)
509if (!this.IsExtension)
Symbols\Symbol.cs (2)
651if (namedType.IsSubmissionClass || namedType.IsExtension) 1761&& variable is ParameterSymbol { ContainingSymbol: TypeSymbol { IsExtension: true } })
Symbols\SymbolExtensions.cs (1)
825return parameter.ContainingSymbol is TypeSymbol { IsExtension: true };
Symbols\TypeSymbol.cs (1)
565/// Note: this may be null even if <see cref="IsExtension"/> is true, in error cases.
Microsoft.CodeAnalysis.CSharp.Emit3.UnitTests (8)
Semantics\ExtensionTests.cs (3)
49446Assert.False(comp.GlobalNamespace.GetTypeMember("E").GetTypeMembers().Single().IsExtension); 50364Debug.Assert(extension.IsExtension); 50373Debug.Assert(extension.IsExtension);
Semantics\ExtensionTests2.cs (5)
3271Assert.False(extension.IsExtension); 3814Assert.False(comp.GetTypeByMetadataName("E").GetTypeMembers().Single().IsExtension); 3872Assert.False(comp.GetTypeByMetadataName("E").GetTypeMembers().Single().IsExtension); 3928Assert.False(comp.GetTypeByMetadataName("E").GetTypeMembers().Single().IsExtension); 3989Assert.False(comp.GetTypeByMetadataName("E").GetTypeMembers().Single().IsExtension);