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);
        }
Example #4
0
        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);
        }
Example #5
0
 public SourceAnonymousTypeSymbol(DeclaredSymbol containingSymbol, MergedDeclaration declaration, DiagnosticBag diagnostics)
     : base(containingSymbol, declaration, diagnostics)
 {
 }
Example #6
0
 internal ImplicitNamedTypeSymbol(NamespaceOrTypeSymbol containingSymbol, MergedDeclaration declaration, DiagnosticBag diagnostics)
     : base(containingSymbol, declaration, diagnostics)
 {
     Debug.Assert(declaration.IsImplicit || declaration.IsSubmission || declaration.IsScript);
 }
Example #7
0
 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;
 }