private void BindBaseList(BaseListSyntax baseList, Symbol parent, out ClassOrStructSymbol baseType, out List <InterfaceSymbol> baseInterfaces)
        {
            baseType       = null;
            baseInterfaces = new List <InterfaceSymbol>();

            if (baseList != null)
            {
                var baseTypeTemp = Bind(baseList.BaseType, x => BindType(x, parent));
                switch (baseTypeTemp.TypeSymbol.Kind)
                {
                case SymbolKind.Class:
                case SymbolKind.Struct:
                    baseType = (ClassOrStructSymbol)baseTypeTemp.TypeSymbol;
                    break;

                case SymbolKind.Interface:
                    baseInterfaces.Add((InterfaceSymbol)baseTypeTemp.TypeSymbol);
                    break;
                }
            }
        }
Example #2
0
        private void BindBaseList(BaseListSyntax baseList, Symbol parent, out ClassOrStructSymbol baseType, out List<InterfaceSymbol> baseInterfaces)
        {
            baseType = null;
            baseInterfaces = new List<InterfaceSymbol>();

            if (baseList != null)
            {
                var baseTypeTemp = Bind(baseList.BaseType, x => BindType(x, parent));
                switch (baseTypeTemp.TypeSymbol.Kind)
                {
                    case SymbolKind.Class:
                    case SymbolKind.Struct:
                        baseType = (ClassOrStructSymbol) baseTypeTemp.TypeSymbol;
                        break;
                    case SymbolKind.Interface:
                        baseInterfaces.Add((InterfaceSymbol) baseTypeTemp.TypeSymbol);
                        break;
                }
            }
        }
Example #3
0
 internal ClassSymbol(ClassTypeSyntax syntax, Symbol parent, ClassOrStructSymbol baseType, ImmutableArray<InterfaceSymbol> baseInterfaces, Binder binder)
     : base(SymbolKind.Class, syntax.Name.Text, parent, baseType, baseInterfaces)
 {
     Syntax = syntax;
     Binder = binder;
 }
Example #4
0
 internal StructSymbol(StructTypeSyntax syntax, Symbol parent, ClassOrStructSymbol baseType, ImmutableArray<InterfaceSymbol> baseInterfaces)
     : base(SymbolKind.Struct, (syntax.Name != null) ? syntax.Name.Text : "<anonymous struct>", parent, baseType, baseInterfaces)
 {
     Syntax = syntax;
 }