Index: utils/dartdoc/dartdoc.dart |
diff --git a/utils/dartdoc/dartdoc.dart b/utils/dartdoc/dartdoc.dart |
index 60f4660c9fa395cb1777423172340194892d1dd7..a85f25fdf9946481bf88f91caab47f3f7f8139dc 100644 |
--- a/utils/dartdoc/dartdoc.dart |
+++ b/utils/dartdoc/dartdoc.dart |
@@ -305,7 +305,7 @@ docLibrary(Library library) { |
<div class="type"> |
<h4> |
${type.isClass ? "class" : "interface"} |
- ${a(typeUrl(type), "<strong>${type.name}</strong>")} |
+ ${a(typeUrl(type), "<strong>${typeName(type)}</strong>")} |
</h4> |
</div> |
'''); |
@@ -325,14 +325,14 @@ docType(Type type) { |
startFile(typeUrl(type)); |
- final typeName = '${type.isClass ? "Class" : "Interface"} ${type.name}'; |
- writeHeader('Library ${type.library.name} / $typeName'); |
+ final typeTitle = '${type.isClass ? "Class" : "Interface"} ${typeName(type)}'; |
+ writeHeader('Library ${type.library.name} / $typeTitle'); |
writeln( |
''' |
<h1>${a(libraryUrl(type.library), |
"Library <strong>${type.library.name}</strong>")}</h1> |
<h2>${type.isClass ? "Class" : "Interface"} |
- <strong>${type.name}</strong></h2> |
+ <strong>${typeName(type)}</strong></h2> |
'''); |
docInheritance(type); |
@@ -373,12 +373,21 @@ void docMembers(Type type) { |
} |
} |
-/** Document the superclass and superinterfaces of [Type]. */ |
+/** Document the superclass, superinterfaces and factory of [Type]. */ |
docInheritance(Type type) { |
- // Show the superclass and superinterface(s). |
final isSubclass = (type.parent != null) && !type.parent.isObject; |
- if (isSubclass || (type.interfaces != null && type.interfaces.length > 0)) { |
+ Type factory; |
+ if (type.definition is TypeDefinition) { |
+ TypeDefinition definition = type.definition; |
+ if (definition.factoryType != null) { |
+ factory = definition.factoryType.type; |
+ } |
+ } |
+ |
+ if (isSubclass || |
+ (type.interfaces != null && type.interfaces.length > 0) || |
+ (factory != null)) { |
writeln('<p>'); |
if (isSubclass) { |
@@ -392,12 +401,12 @@ docInheritance(Type type) { |
break; |
case 1: |
- write('Implements ${typeReference(type.interfaces[0])}.'); |
+ write('Implements ${typeReference(type.interfaces[0])}. '); |
break; |
case 2: |
write('''Implements ${typeReference(type.interfaces[0])} and |
- ${typeReference(type.interfaces[1])}.'''); |
+ ${typeReference(type.interfaces[1])}. '''); |
break; |
default: |
@@ -410,10 +419,14 @@ docInheritance(Type type) { |
write(', and '); |
} |
} |
- write('.'); |
+ write('. '); |
break; |
} |
} |
+ |
+ if (factory != null) { |
+ write('Has factory class ${typeReference(factory)}.'); |
+ } |
} |
} |
@@ -487,7 +500,7 @@ docMethod(Type type, MethodMember method, [String constructorName = null]) { |
write(')'); |
write(''' <a class="anchor-link" href="#${memberAnchor(method)}" |
- title="Permalink to ${type.name}.$name">#</a>'''); |
+ title="Permalink to ${typeName(type)}.$name">#</a>'''); |
writeln('</h4>'); |
docCode(method.span, showCode: true); |
@@ -521,7 +534,7 @@ docField(Type type, FieldMember field) { |
''' |
<strong>${field.name}</strong> <a class="anchor-link" |
href="#${memberAnchor(field)}" |
- title="Permalink to ${type.name}.${field.name}">#</a> |
+ title="Permalink to ${typeName(type)}.${field.name}">#</a> |
</h4> |
'''); |