protected virtual NamedTypeSymbol BuildTypeSymbol(MergedDeclaration declaration, DiagnosticBag diagnostics) { Debug.Assert(declaration.IsType); if (declaration.Name != null) { return(BuildNamedTypeSymbol(declaration, diagnostics)); } else { return(BuildAnonymousTypeSymbol(declaration, diagnostics)); } }
protected virtual Symbol BuildMemberSymbol(MergedDeclaration declaration, DiagnosticBag diagnostics) { Debug.Assert(!declaration.IsType, "Use BuildTypeSymbol to create type symbols."); Debug.Assert(!declaration.IsNamespace, "Use BuildNamespaceSymbol to create namespace symbols."); if (declaration.Name != null) { return(BuildNamedMemberSymbol(declaration, diagnostics)); } else { return(BuildAnonymousMemberSymbol(declaration, diagnostics)); } }
public SourceMemberContainerTypeSymbol( DeclaredSymbol containingSymbol, MergedDeclaration declaration, DiagnosticBag diagnostics) { _containingSymbol = containingSymbol; _declaration = declaration; if (declaration.Kind != null) { _modelObject = declaration.GetModelObject(containingSymbol?.ModelObject as MutableObjectBase, containingSymbol.ModelBuilder, diagnostics); Debug.Assert(_modelObject != null); } foreach (var singleDeclaration in declaration.Declarations) { diagnostics.AddRange(singleDeclaration.Diagnostics); } _state = SymbolCompletionState.Create(containingSymbol.Language); }
public SourceNamespaceSymbol( SourceModuleSymbol module, Symbol container, MergedDeclaration declaration, DiagnosticBag diagnostics) { Debug.Assert(declaration != null); _module = module; _container = container; _declaration = declaration; if (declaration.Kind != null) { _modelObject = declaration.GetModelObject(container?.ModelObject as MutableObjectBase, module.ModelBuilder, diagnostics); Debug.Assert(_modelObject != null); } foreach (var singleDeclaration in declaration.Declarations) { diagnostics.AddRange(singleDeclaration.Diagnostics); } _state = SymbolCompletionState.Create(module.Language); }
public SourceAnonymousTypeSymbol(DeclaredSymbol containingSymbol, MergedDeclaration declaration, DiagnosticBag diagnostics) : base(containingSymbol, declaration, diagnostics) { }
internal ImplicitNamedTypeSymbol(NamespaceOrTypeSymbol containingSymbol, MergedDeclaration declaration, DiagnosticBag diagnostics) : base(containingSymbol, declaration, diagnostics) { Debug.Assert(declaration.IsImplicit || declaration.IsSubmission || declaration.IsScript); }
public SourceNamedTypeSymbol(DeclaredSymbol containingSymbol, MergedDeclaration declaration, DiagnosticBag diagnostics) : base(containingSymbol, declaration, diagnostics) { Debug.Assert(!declaration.IsImplicit && !declaration.IsSubmission && !declaration.IsScript); }
protected virtual Symbol BuildAnonymousMemberSymbol(MergedDeclaration declaration, DiagnosticBag diagnostics) { return(new SourceMemberSymbol(_symbol, declaration, diagnostics)); }
protected virtual NamedTypeSymbol BuildAnonymousTypeSymbol(MergedDeclaration declaration, DiagnosticBag diagnostics) { Debug.Assert(declaration.IsType && declaration.Name == null); return(new SourceAnonymousTypeSymbol(_symbol, declaration, diagnostics)); }
protected virtual NamespaceSymbol BuildNamespaceSymbol(MergedDeclaration declaration, DiagnosticBag diagnostics) { Debug.Assert(declaration.IsNamespace); return(new SourceNamespaceSymbol((SourceModuleSymbol)_symbol.ContainingModule, _symbol, declaration, diagnostics)); }
public SourceDeclaration(DeclaredSymbol symbol, MergedDeclaration declaration, SymbolCompletionState state) { _symbol = symbol; _state = state; _declaration = declaration; }