Index: pkg/dartdoc/mirrors/dart2js_mirror.dart |
diff --git a/pkg/dartdoc/mirrors/dart2js_mirror.dart b/pkg/dartdoc/mirrors/dart2js_mirror.dart |
index 9993320640ab02ecdf8cffc2fd9c06279664163e..642afd12cab0491361fd0943b6ddba740c2a0d54 100644 |
--- a/pkg/dartdoc/mirrors/dart2js_mirror.dart |
+++ b/pkg/dartdoc/mirrors/dart2js_mirror.dart |
@@ -61,13 +61,11 @@ Dart2JsTypeMirror _convertTypeToTypeMirror( |
} else if (type is TypeVariableType) { |
return new Dart2JsTypeVariableMirror(system, type); |
} else if (type is FunctionType) { |
- if (type.element is TypedefElement) { |
- return new Dart2JsTypedefMirror(system, type.element); |
- } else { |
- return new Dart2JsFunctionTypeMirror(system, type, functionSignature); |
- } |
+ return new Dart2JsFunctionTypeMirror(system, type, functionSignature); |
} else if (type is VoidType) { |
return new Dart2JsVoidMirror(system, type); |
+ } else if (type is TypedefType) { |
+ return new Dart2JsTypedefMirror(system, type); |
} |
throw new IllegalArgumentException("Unexpected interface type $type"); |
} |
@@ -500,7 +498,8 @@ class Dart2JsLibraryMirror extends Dart2JsObjectMirror |
var type = new Dart2JsInterfaceMirror.fromLibrary(this, e); |
_types[type.canonicalName] = type; |
} else if (e.isTypedef()) { |
- var type = new Dart2JsTypedefMirror.fromLibrary(this, e); |
+ var type = new Dart2JsTypedefMirror.fromLibrary(this, |
+ e.computeType(system.compiler)); |
_types[type.canonicalName] = type; |
} |
} |
@@ -785,31 +784,31 @@ class Dart2JsInterfaceMirror extends Dart2JsObjectMirror |
} |
} |
-class Dart2JsTypedefMirror extends Dart2JsElementMirror |
+class Dart2JsTypedefMirror extends Dart2JsTypeElementMirror |
implements Dart2JsTypeMirror, TypedefMirror { |
final Dart2JsLibraryMirror _library; |
List<TypeVariableMirror> _typeVariables; |
TypeMirror _definition; |
- Dart2JsTypedefMirror(Dart2JsMirrorSystem system, TypedefElement _typedef) |
- : this._library = system.getLibrary(_typedef.getLibrary()), |
+ Dart2JsTypedefMirror(Dart2JsMirrorSystem system, TypedefType _typedef) |
+ : this._library = system.getLibrary(_typedef.element.getLibrary()), |
super(system, _typedef); |
Dart2JsTypedefMirror.fromLibrary(Dart2JsLibraryMirror library, |
- TypedefElement _typedef) |
+ TypedefType _typedef) |
: this._library = library, |
super(library.system, _typedef); |
- TypedefElement get _typedef() => _element; |
+ TypedefType get _typedef() => _type; |
String get canonicalName() => simpleName; |
String get qualifiedName() => '${library.qualifiedName}.${simpleName}'; |
Location get location() { |
- var node = _typedef.parseNode(_diagnosticListener); |
+ var node = _typedef.element.parseNode(_diagnosticListener); |
if (node !== null) { |
- var script = _typedef.getCompilationUnit().script; |
+ var script = _typedef.element.getCompilationUnit().script; |
var span = system.compiler.spanFromNode(node, script.uri); |
return new Dart2JsLocation(script, span); |
} |
@@ -899,7 +898,8 @@ class Dart2JsTypeVariableMirror extends Dart2JsTypeElementMirror |
_typeVariableType.element.enclosingElement); |
} else if (_typeVariableType.element.enclosingElement.isTypedef()) { |
_declarer = new Dart2JsTypedefMirror(system, |
- _typeVariableType.element.enclosingElement); |
+ _typeVariableType.element.enclosingElement.computeType( |
+ system.compiler)); |
} |
} |
return _declarer; |