2015-05-31 7 views
2

Следующий код выполняет отлично на виртуальной машине, но терпит неудачу сDart Зеркала в JS: тип «_ListConstructorSentinel» не является подтипом типа «INT»

«„_ListConstructorSentinel“не является подтипом типа„INT“ "

при преобразовании в javascript через Dart2JS. Я использую «pub run test -p chrome» для запуска кода.

import "dart:mirrors"; 

main() { 
    TypeMirror tm = new TypeToken<List<String>>().typeMirror; 
    (tm as ClassMirror).newInstance(const Symbol(""), []); 
} 

class TypeToken<T> { 
    TypeMirror get typeMirror => reflectType(T); 
} 

StackTrace:

type '_ListConstructorSentinel' is not a subtype of type 'int' 
    error.dart.browser_test.dart.js 4385:15 dart.wrapException 
    error.dart.browser_test.dart.js 4604:13 dart.intTypeCheck 
    error.dart.browser_test.dart.js 36709:11 Isolate.dart.List.static.List_List.H.computeSignature.func 
    error.dart.browser_test.dart.js 13292:31 JsMethodMirror.dart.JsMethodMirror._invoke$2 
    error.dart.browser_test.dart.js 12724:21 JsClassMirror.dart.JsClassMirror._getInvokedInstance$3 
    error.dart.browser_test.dart.js 12054:30 JsTypeBoundClassMirror.<fn> 
    error.dart.browser_test.dart.js 12058:19 JsTypeBoundClassMirror.dart.JsTypeBoundClassMirror.newInstance$3 
    error.dart.browser_test.dart.js 85680:232 dart.main0 
    error.dart.browser_test.dart.js 15329:32 dart.Future.static.Future_Future$sync.H.computeSignature.func 
    error.dart.browser_test.dart.js 97668:16 IframeListener_start_closure.dart.IframeListener_start_closure.call$0 

Могу ли я делать то, что не должно быть разрешено, или это ошибка? Если это ошибка, есть ли способ обойти это?

Заранее благодарен!

+0

Зеркала не полностью поддерживаются dart2js. Возможно, это не поддерживается или ошибка. – Robert

+0

Итак, я попытался запустить его, используя «Запустить как JavaScript» и с «pub build». И я не получаю ошибку. Какую версию вы используете? – Robert

+0

Я сейчас не на своем ноутбуке, но если я правильно помню, я запускаю 1.10 стабильный канал на OSX (Macbook Pro). Я также использую «run run test -p chrome» для запуска остальных, поэтому я не уверен, что это тоже что-то странное. –

ответ

0

Похоже, это известная проблема: github.com/dart-lang/sdk/issues/21927