| Index: sdk/lib/_internal/dartdoc/lib/universe_serializer.dart
|
| diff --git a/sdk/lib/_internal/dartdoc/lib/universe_serializer.dart b/sdk/lib/_internal/dartdoc/lib/universe_serializer.dart
|
| index ba57411423e135d15c2f361a40f7304c9b14e84a..b104a43b99fef503196d2bc5b79629ae0db2624b 100755
|
| --- a/sdk/lib/_internal/dartdoc/lib/universe_serializer.dart
|
| +++ b/sdk/lib/_internal/dartdoc/lib/universe_serializer.dart
|
| @@ -12,10 +12,8 @@ import 'dartdoc.dart';
|
|
|
| // TODO(rnystrom): Use "package:" URL (#4968).
|
| import 'package:path/path.dart' as path;
|
| -import '../../compiler/implementation/mirrors/dart2js_mirror.dart' as dart2js;
|
| -import '../../compiler/implementation/mirrors/mirrors.dart';
|
| +import '../../compiler/implementation/mirrors/source_mirrors.dart';
|
| import '../../compiler/implementation/mirrors/mirrors_util.dart';
|
| -import '../../libraries.dart';
|
|
|
| String _stripUri(String uri) {
|
| String prefix = "/dart/";
|
| @@ -67,7 +65,8 @@ class Element {
|
|
|
| // TODO(jacobr): refactor the code so that lookupMdnComment does not need to
|
| // be passed to every Element constructor.
|
| - Element(Mirror mirror, this.kind, this.name, String id, this.comment,
|
| + Element(DeclarationMirror mirror, this.kind, this.name,
|
| + String id, this.comment,
|
| MdnComment lookupMdnComment(Mirror))
|
| : line = mirror.location.line.toString(),
|
| id = _escapeId(id),
|
| @@ -114,9 +113,9 @@ class Element {
|
| */
|
| bool _optionalBool(bool value) => value == true ? true : null;
|
|
|
| -Reference _optionalReference(Mirror mirror) {
|
| - return (mirror != null && mirror.simpleName != "Dynamic_" &&
|
| - mirror.simpleName != "dynamic") ?
|
| +Reference _optionalReference(DeclarationMirror mirror) {
|
| + return (mirror != null && nameOf(mirror) != "Dynamic_" &&
|
| + nameOf(mirror) != "dynamic") ?
|
| new Reference(mirror) : null;
|
| }
|
|
|
| @@ -151,7 +150,7 @@ class LibraryElement extends Element {
|
| */
|
| LibraryElement(LibraryMirror mirror,
|
| {MdnComment lookupMdnComment(Mirror), Set<String> includedChildren})
|
| - : super(mirror, 'library', _libraryName(mirror), mirror.simpleName,
|
| + : super(mirror, 'library', _libraryName(mirror), nameOf(mirror),
|
| computeComment(mirror), lookupMdnComment) {
|
| var requiredDependencies;
|
| // We don't need to track our required dependencies when generating a
|
| @@ -159,22 +158,26 @@ class LibraryElement extends Element {
|
| // another library.
|
| if (includedChildren == null)
|
| requiredDependencies = new Map<String, LibrarySubset>();
|
| - mirror.functions.forEach((childName, childMirror) {
|
| + methodsOf(mirror.declarations).forEach((childMirror) {
|
| + var childName = nameOf(childMirror);
|
| if (includedChildren == null || includedChildren.contains(childName))
|
| addChild(new MethodElement(childName, childMirror, lookupMdnComment));
|
| });
|
|
|
| - mirror.getters.forEach((childName, childMirror) {
|
| + gettersOf(mirror.declarations).forEach((childMirror) {
|
| + var childName = nameOf(childMirror);
|
| if (includedChildren == null || includedChildren.contains(childName))
|
| addChild(new GetterElement(childName, childMirror, lookupMdnComment));
|
| });
|
|
|
| - mirror.variables.forEach((childName, childMirror) {
|
| + variablesOf(mirror.declarations).forEach((childMirror) {
|
| + var childName = nameOf(childMirror);
|
| if (includedChildren == null || includedChildren.contains(childName))
|
| addChild(new VariableElement(childName, childMirror, lookupMdnComment));
|
| });
|
|
|
| - mirror.classes.forEach((className, classMirror) {
|
| + typesOf(mirror.declarations).forEach((classMirror) {
|
| + var className = nameOf(classMirror);
|
| if (includedChildren == null || includedChildren.contains(className)) {
|
| if (classMirror is TypedefMirror) {
|
| addChild(new TypedefElement(className, classMirror));
|
| @@ -245,8 +248,8 @@ class LibraryElement extends Element {
|
| * Returns whether the class implements or extends [Error] or [Exception].
|
| */
|
| bool _isThrowable(ClassMirror mirror) {
|
| - if (mirror.library.uri.toString() == 'dart:core' &&
|
| - mirror.simpleName == 'Error' || mirror.simpleName == 'Exception')
|
| + if (getLibrary(mirror).uri.toString() == 'dart:core' &&
|
| + nameOf(mirror) == 'Error' || nameOf(mirror) == 'Exception')
|
| return true;
|
| if (mirror.superclass != null && _isThrowable(mirror.superclass))
|
| return true;
|
| @@ -277,11 +280,12 @@ class ClassElement extends Element {
|
| * documentation for elements. [dependencies] is an optional map
|
| * tracking all classes dependend on by this [ClassElement].
|
| */
|
| - ClassElement(ClassMirror mirror,
|
| + ClassElement(ClassSourceMirror mirror,
|
| {Map<String, LibrarySubset> dependencies,
|
| MdnComment lookupMdnComment(Mirror)})
|
| - : super(mirror, 'class', mirror.simpleName, mirror.simpleName, computeComment(mirror),
|
| - lookupMdnComment),
|
| + : super(mirror, 'class', nameOf(mirror),
|
| + nameOf(mirror), computeComment(mirror),
|
| + lookupMdnComment),
|
| superclass = _optionalReference(mirror.superclass),
|
| isAbstract = _optionalBool(mirror.isAbstract),
|
| isThrowable = _optionalBool(_isThrowable(mirror)){
|
| @@ -289,10 +293,12 @@ class ClassElement extends Element {
|
| addCrossLibraryDependencies(clazz) {
|
| if (clazz == null) return;
|
|
|
| - if (mirror.library != clazz.library) {
|
| - var libraryStub = dependencies.putIfAbsent(clazz.library.simpleName,
|
| - () => new LibrarySubset(clazz.library));
|
| - libraryStub.includedChildren.add(clazz.simpleName);
|
| + var clazzLibrary = getLibrary(clazz);
|
| + if (getLibrary(mirror) != clazzLibrary) {
|
| + String name = nameOf(clazz);
|
| + var libraryStub = dependencies.putIfAbsent(name,
|
| + () => new LibrarySubset(clazzLibrary));
|
| + libraryStub.includedChildren.add(name);
|
| }
|
|
|
| for (var interface in clazz.superinterfaces) {
|
| @@ -312,22 +318,24 @@ class ClassElement extends Element {
|
| this.interfaces.add(_optionalReference(interface));
|
| }
|
|
|
| - mirror.methods.forEach((childName, childMirror) {
|
| - if (!childMirror.isConstructor && !childMirror.isGetter) {
|
| - addChild(new MethodElement(childName, childMirror, lookupMdnComment));
|
| - }
|
| + methodsOf(mirror.declarations).forEach((childMirror) {
|
| + String childName = nameOf(childMirror);
|
| + addChild(new MethodElement(childName, childMirror, lookupMdnComment));
|
| });
|
|
|
| - mirror.getters.forEach((childName, childMirror) {
|
| + gettersOf(mirror.declarations).forEach((childMirror) {
|
| + String childName = nameOf(childMirror);
|
| addChild(new GetterElement(childName, childMirror, lookupMdnComment));
|
| });
|
|
|
| - mirror.variables.forEach((childName, childMirror) {
|
| + variablesOf(mirror.declarations).forEach((childMirror) {
|
| + String childName = nameOf(childMirror);
|
| addChild(new VariableElement(childName, childMirror,
|
| lookupMdnComment));
|
| });
|
|
|
| - mirror.constructors.forEach((constructorName, methodMirror) {
|
| + constructorsOf(mirror.declarations).forEach((methodMirror) {
|
| + String constructorName = nameOf(methodMirror);
|
| addChild(new MethodElement(constructorName, methodMirror,
|
| lookupMdnComment, 'constructor'));
|
| });
|
| @@ -348,8 +356,8 @@ class GetterElement extends Element {
|
|
|
| GetterElement(String name, MethodMirror mirror,
|
| MdnComment lookupMdnComment(Mirror))
|
| - : super(mirror, 'property', mirror.simpleName, name, computeComment(mirror),
|
| - lookupMdnComment),
|
| + : super(mirror, 'property', nameOf(mirror),
|
| + name, computeComment(mirror), lookupMdnComment),
|
| ref = _optionalReference(mirror.returnType),
|
| isStatic = _optionalBool(mirror.isStatic);
|
| }
|
| @@ -406,12 +414,12 @@ class ParameterElement extends Element {
|
| */
|
| final Reference initializedField;
|
|
|
| - ParameterElement(ParameterMirror mirror)
|
| - : super(mirror, 'param', mirror.simpleName, mirror.simpleName, null,
|
| - null),
|
| + ParameterElement(ParameterSourceMirror mirror)
|
| + : super(mirror, 'param', nameOf(mirror),
|
| + nameOf(mirror), null, null),
|
| ref = _optionalReference(mirror.type),
|
| isOptional = _optionalBool(mirror.isOptional),
|
| - defaultValue = mirror.defaultValue,
|
| + defaultValue = '${mirror.defaultValue}',
|
| isNamed = _optionalBool(mirror.isNamed),
|
| initializedField = _optionalReference(mirror.initializedField) {
|
|
|
| @@ -425,7 +433,8 @@ class FunctionTypeElement extends Element {
|
| final Reference returnType;
|
|
|
| FunctionTypeElement(FunctionTypeMirror mirror)
|
| - : super(mirror, 'functiontype', mirror.simpleName, mirror.simpleName, null, null),
|
| + : super(mirror, 'functiontype', nameOf(mirror),
|
| + nameOf(mirror), null, null),
|
| returnType = _optionalReference(mirror.returnType) {
|
| for (var param in mirror.parameters) {
|
| addChild(new ParameterElement(param));
|
| @@ -449,10 +458,10 @@ class TypeParameterElement extends Element {
|
| */
|
| final Reference upperBound;
|
|
|
| - TypeParameterElement(TypeMirror mirror)
|
| - : super(mirror, 'typeparam', mirror.simpleName, mirror.simpleName, null,
|
| - null),
|
| - upperBound = mirror.upperBound != null && !mirror.upperBound.isObject ?
|
| + TypeParameterElement(TypeVariableMirror mirror)
|
| + : super(mirror, 'typeparam', nameOf(mirror),
|
| + nameOf(mirror), null, null),
|
| + upperBound = mirror.upperBound != null && !isObject(mirror.upperBound) ?
|
| new Reference(mirror.upperBound) : null;
|
| }
|
|
|
| @@ -469,7 +478,7 @@ class VariableElement extends Element {
|
|
|
| VariableElement(String name, VariableMirror mirror,
|
| MdnComment lookupMdnComment(Mirror))
|
| - : super(mirror, 'variable', mirror.simpleName, name,
|
| + : super(mirror, 'variable', nameOf(mirror), name,
|
| computeComment(mirror), lookupMdnComment),
|
| ref = _optionalReference(mirror.type),
|
| isStatic = _optionalBool(mirror.isStatic),
|
| @@ -485,10 +494,10 @@ class TypedefElement extends Element {
|
| final Reference returnType;
|
|
|
| TypedefElement(String name, TypedefMirror mirror)
|
| - : super(mirror, 'typedef', mirror.simpleName, name,
|
| + : super(mirror, 'typedef', nameOf(mirror), name,
|
| computeComment(mirror), null),
|
| - returnType = _optionalReference(mirror.value.returnType) {
|
| - for (var param in mirror.value.parameters) {
|
| + returnType = _optionalReference(mirror.referent.returnType) {
|
| + for (var param in mirror.referent.parameters) {
|
| addChild(new ParameterElement(param));
|
| }
|
| for (var typeVariable in mirror.originalDeclaration.typeVariables) {
|
| @@ -505,7 +514,7 @@ class Reference {
|
| final String refId;
|
| List<Reference> arguments;
|
|
|
| - Reference(Mirror mirror)
|
| + Reference(DeclarationMirror mirror)
|
| : name = displayName(mirror),
|
| refId = getId(mirror) {
|
| if (mirror is ClassMirror) {
|
| @@ -522,8 +531,8 @@ class Reference {
|
| // that this method can work with all element types not just LibraryElements.
|
| Reference.fromElement(LibraryElement e) : name = e.name, refId = e.id;
|
|
|
| - static String getId(Mirror mirror) {
|
| - String id = _escapeId(mirror.simpleName);
|
| + static String getId(DeclarationMirror mirror) {
|
| + String id = _escapeId(nameOf(mirror));
|
| if (mirror.owner != null) {
|
| id = '${getId(mirror.owner)}/$id';
|
| }
|
|
|