| 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));
|
| - }
|
| }
|
| }
|
| }
|
|
|