示例#1
0
        private object BuildCore(IType type)
        {
            if (type.CanExclude())
            {
                return(null);
            }

            switch (type.TypeKind)
            {
            case TypeKind.Interface:
            case TypeKind.Class:
            case TypeKind.Struct:
            case TypeKind.Primitive:
            case TypeKind.Delegate:
                return(BuildUserType(type));

            case TypeKind.GenericParameter:
                return(null);

            case TypeKind.Enum:
                Build(type.ValueType);
                return(BuildUserType(type));

            case TypeKind.Array:
                return(BuildArrayType(type));

            case TypeKind.Pointer:
                throw new NotSupportedException();

            case TypeKind.Reference:
            {
                Build(type.ElementType);
                return(Abc.BuiltinTypes.Object);
            }
            }

            return(null);
        }