Index: utils/apidoc/html_diff_dump.dart |
diff --git a/utils/apidoc/html_diff_dump.dart b/utils/apidoc/html_diff_dump.dart |
index 0f1b64343ed2a6b03926d8b5b818d09a85bb3400..47f71bd7b6df3f5777bd8741693136af59b9000a 100644 |
--- a/utils/apidoc/html_diff_dump.dart |
+++ b/utils/apidoc/html_diff_dump.dart |
@@ -27,109 +27,90 @@ |
#import('dart:json'); |
#import('html_diff.dart'); |
-#import('../../frog/lang.dart'); |
+#import('../../lib/dartdoc/mirrors/mirrors.dart'); |
+#import('../../lib/dartdoc/mirrors/mirrors_util.dart'); |
HtmlDiff diff; |
/** Whether or not a domType represents the same type as an htmlType. */ |
-bool sameType(Type domType, Type htmlType) { |
+bool sameType(MemberMirror domMember, MemberMirror htmlMember) { |
+ TypeMirror domType = domMember is FieldMirror |
+ ? domMember.type() |
+ : domMember.returnType(); |
+ TypeMirror htmlType = htmlMember is FieldMirror |
+ ? htmlMember.type() |
+ : htmlMember.returnType(); |
if (domType.isVoid || htmlType.isVoid) { |
return domType.isVoid && htmlType.isVoid; |
} |
- final htmlTypes = diff.domTypesToHtml[domType]; |
+ final htmlTypes = diff.domTypesToHtml[domType.qualifiedName()]; |
return htmlTypes != null && htmlTypes.some((t) => t == htmlType); |
} |
/** Returns the name of a member, including `get:` if it's a field. */ |
-String memberName(Member m) => m is FieldMember ? 'get:${m.name}' : m.name; |
+String memberName(MemberMirror m) => m.simpleName(); |
/** |
* Returns a string describing the name of a member. If [type] is passed, it's |
* used in place of the member's real type name. |
*/ |
-String memberDesc(Member m, [Type type = null]) { |
- if (type == null) type = m.declaringType; |
- return '${type.name}.${memberName(m)}'; |
+String memberDesc(MemberMirror m, [ObjectMirror type = null]) { |
+ if (type == null) type = m.surroundingDeclaration(); |
+ return '${type.simpleName()}.${memberName(m)}'; |
} |
/** |
* Same as [memberDesc], but if [m] is a `dart:dom_deprecated` type |
* its `dart:html` typename is used instead. |
*/ |
-String htmlishMemberDesc(Member m) { |
- var type = m.declaringType; |
- final htmlTypes = diff.domTypesToHtml[type]; |
+String htmlishMemberDesc(MemberMirror m) { |
+ var type = m.surroundingDeclaration(); |
+ final htmlTypes = diff.domTypesToHtml[type.qualifiedName()]; |
if (htmlTypes != null && htmlTypes.length == 1) { |
type = htmlTypes.iterator().next(); |
} |
return memberDesc(m, type); |
} |
-bool isGetter(Member member) => member.name.startsWith('get:'); |
-bool isSetter(Member member) => member.name.startsWith('set:'); |
- |
/** |
* Add an entry to the map of `dart:dom_deprecated` names to |
* `dart:html` names if [domMember] was renamed to [htmlMembers] with |
* the same semantics. |
*/ |
-void maybeAddRename(Map<String, String> renamed, Member domMember, |
- Collection<Member> htmlMembers) { |
+void maybeAddRename(Map<String, String> renamed, |
+ MemberMirror domMember, |
+ Collection<MemberMirror> htmlMembers) { |
if (htmlMembers.length != 1) return; |
final htmlMember = htmlMembers.iterator().next(); |
if (memberName(domMember) != memberName(htmlMember) && |
- sameType(domMember.returnType, htmlMember.returnType)) { |
+ sameType(domMember, htmlMember)) { |
renamed[memberDesc(domMember)] = memberDesc(htmlMember); |
} |
} |
void main() { |
- var files = new NodeFileSystem(); |
- parseOptions('../../frog', [] /* args */, files); |
- initializeWorld(files); |
- |
- HtmlDiff.initialize(); |
+ var libPath = '../../'; |
+ HtmlDiff.initialize(libPath); |
diff = new HtmlDiff(); |
diff.run(); |
final renamed = <String>{}; |
- diff.domToHtml.forEach((domMember, htmlMembers) { |
- if (domMember is PropertyMember) { |
- if (domMember.canGet) { |
- maybeAddRename(renamed, domMember.getter, htmlMembers.filter(isGetter)); |
- } |
- if (domMember.canSet) { |
- maybeAddRename(renamed, domMember.setter, htmlMembers.filter(isSetter)); |
- } |
- } else { |
- maybeAddRename(renamed, domMember, htmlMembers); |
- return; |
- } |
+ diff.domToHtml.forEach((MemberMirror domMember, |
+ Set<MemberMirror> htmlMembers) { |
+ maybeAddRename(renamed, domMember, htmlMembers); |
}); |
- final removed = <Set>[]; |
- for (final type in world.libraries['dart:dom_deprecated'].types.getValues()) { |
- if (type.members.getValues().every((m) => |
+ final removed = <String>[]; |
+ |
+ for (InterfaceMirror type in HtmlDiff.dom.types().getValues()) { |
+ if (type.declaredMembers().getValues().every((m) => |
!diff.domToHtml.containsKey(m))) { |
- removed.add('${type.name}.*'); |
+ removed.add('${type.simpleName()}.*'); |
} else { |
- for (final member in type.members.getValues()) { |
+ for (MemberMirror member in type.declaredMembers().getValues()) { |
if (!diff.domToHtml.containsKey(member)) { |
- if (member is PropertyMember) { |
- if (member.canGet) removed.add(htmlishMemberDesc(member.getter)); |
- if (member.canSet) removed.add(htmlishMemberDesc(member.setter)); |
- } else { |
removed.add(htmlishMemberDesc(member)); |
- } |
- } else if (member is PropertyMember) { |
- final htmlMembers = diff.domToHtml[member]; |
- if (member.canGet && !htmlMembers.some((m) => m.name.startsWith('get:'))) { |
- removed.add(htmlishMemberDesc(member.getter)); |
- } |
- if (member.canSet && !htmlMembers.some((m) => m.name.startsWith('set:'))) { |
- removed.add(htmlishMemberDesc(member.setter)); |
- } |
} |
} |
} |