コード例 #1
0
ファイル: Idioms.cs プロジェクト: x335/WootzJs
        public JsExpression TypeOf(ITypeSymbol type)
        {
            var typeExpression = Type(type);
//            if (type.IsExported() && !type.IsBuiltIn() && !(type is TypeParameterSymbol))
//                typeExpression = typeExpression.Invoke();
            if (type.IsExported() && !type.IsBuiltIn() && type.TypeKind != TypeKind.TypeParameter && type.TypeKind != TypeKind.Array)
                typeExpression = typeExpression.Invoke();
            return typeExpression.Member(SpecialNames.GetTypeFromType).Invoke();
        }
コード例 #2
0
ファイル: Idioms.cs プロジェクト: x335/WootzJs
 public JsExpression TypeAndResolve(ITypeSymbol type)
 {
     if (!type.IsExported() || type.IsBuiltIn() || type.TypeKind == TypeKind.Array || type.TypeKind == TypeKind.TypeParameter)
         return Type(type);
     else 
         return Type(type).Invoke();
 }
コード例 #3
0
ファイル: Idioms.cs プロジェクト: x335/WootzJs
        public JsExpression MakeArrayType(ITypeSymbol elementType)
        {
            var jsElementType = Type(elementType);

            // If it's a normal type, we need to invoke it to ensure static initializers are executed.
            if (elementType.IsExported() && !elementType.IsBuiltIn() && elementType.TypeKind != TypeKind.TypeParameter && elementType.TypeKind != TypeKind.Array)
                jsElementType = jsElementType.Invoke();

            return Js.Reference(SpecialNames.MakeArrayType).Invoke(jsElementType);
        }