Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(242)

Side by Side Diff: utils/apidoc/html_diff_dump.dart

Issue 10389097: Move dart:dom to dart:dom_deprecated (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 8 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file. 3 // BSD-style license that can be found in the LICENSE file.
4 4
5 /** 5 /**
6 * A script for printing a JSON dump of HTML diff data. In particular, this 6 * A script for printing a JSON dump of HTML diff data. In particular, this
7 * lists a map of `dart:dom` methods that have been renamed to `dart:html` 7 * lists a map of `dart:dom_deprecated` methods that have been renamed to `dart: html`
8 * methods without changing their semantics, and `dart:dom` methods that have 8 * methods without changing their semantics, and `dart:dom_deprecated` methods t hat have
9 * been removed in `dart:html`. As a heuristic, a `dart:html` method doesn't 9 * been removed in `dart:html`. As a heuristic, a `dart:html` method doesn't
10 * change the semantics of the corresponding `dart:dom` method if it's the only 10 * change the semantics of the corresponding `dart:dom_deprecated` method if it' s the only
11 * corresponding HTML method and it has the corresponding return type. 11 * corresponding HTML method and it has the corresponding return type.
12 * 12 *
13 * The format of the output is as follows: 13 * The format of the output is as follows:
14 * 14 *
15 * { 15 * {
16 * "renamed": { domName: htmlName, ... }, 16 * "renamed": { domName: htmlName, ... },
17 * "removed": [name, ...] 17 * "removed": [name, ...]
18 * } 18 * }
19 * 19 *
20 * Note that the removed members are listed with the names they would have in 20 * Note that the removed members are listed with the names they would have in
(...skipping 24 matching lines...) Expand all
45 /** 45 /**
46 * Returns a string describing the name of a member. If [type] is passed, it's 46 * Returns a string describing the name of a member. If [type] is passed, it's
47 * used in place of the member's real type name. 47 * used in place of the member's real type name.
48 */ 48 */
49 String memberDesc(Member m, [Type type = null]) { 49 String memberDesc(Member m, [Type type = null]) {
50 if (type == null) type = m.declaringType; 50 if (type == null) type = m.declaringType;
51 return '${type.name}.${memberName(m)}'; 51 return '${type.name}.${memberName(m)}';
52 } 52 }
53 53
54 /** 54 /**
55 * Same as [memberDesc], but if [m] is a `dart:dom` type its `dart:html` 55 * Same as [memberDesc], but if [m] is a `dart:dom_deprecated` type its `dart:ht ml`
56 * typename is used instead. 56 * typename is used instead.
57 */ 57 */
58 String htmlishMemberDesc(Member m) { 58 String htmlishMemberDesc(Member m) {
59 var type = m.declaringType; 59 var type = m.declaringType;
60 final htmlTypes = diff.domTypesToHtml[type]; 60 final htmlTypes = diff.domTypesToHtml[type];
61 if (htmlTypes != null && htmlTypes.length == 1) { 61 if (htmlTypes != null && htmlTypes.length == 1) {
62 type = htmlTypes.iterator().next(); 62 type = htmlTypes.iterator().next();
63 } 63 }
64 return memberDesc(m, type); 64 return memberDesc(m, type);
65 } 65 }
66 66
67 bool isGetter(Member member) => member.name.startsWith('get:'); 67 bool isGetter(Member member) => member.name.startsWith('get:');
68 bool isSetter(Member member) => member.name.startsWith('set:'); 68 bool isSetter(Member member) => member.name.startsWith('set:');
69 69
70 /** 70 /**
71 * Add an entry to the map of `dart:dom` names to `dart:html` names if 71 * Add an entry to the map of `dart:dom_deprecated` names to `dart:html` names i f
72 * [domMember] was renamed to [htmlMembers] with the same semantics. 72 * [domMember] was renamed to [htmlMembers] with the same semantics.
73 */ 73 */
74 void maybeAddRename(Map<String, String> renamed, Member domMember, 74 void maybeAddRename(Map<String, String> renamed, Member domMember,
75 Collection<Member> htmlMembers) { 75 Collection<Member> htmlMembers) {
76 if (htmlMembers.length != 1) return; 76 if (htmlMembers.length != 1) return;
77 final htmlMember = htmlMembers.iterator().next(); 77 final htmlMember = htmlMembers.iterator().next();
78 if (memberName(domMember) != memberName(htmlMember) && 78 if (memberName(domMember) != memberName(htmlMember) &&
79 sameType(domMember.returnType, htmlMember.returnType)) { 79 sameType(domMember.returnType, htmlMember.returnType)) {
80 renamed[memberDesc(domMember)] = memberDesc(htmlMember); 80 renamed[memberDesc(domMember)] = memberDesc(htmlMember);
81 } 81 }
(...skipping 17 matching lines...) Expand all
99 if (domMember.canSet) { 99 if (domMember.canSet) {
100 maybeAddRename(renamed, domMember.setter, htmlMembers.filter(isSetter)); 100 maybeAddRename(renamed, domMember.setter, htmlMembers.filter(isSetter));
101 } 101 }
102 } else { 102 } else {
103 maybeAddRename(renamed, domMember, htmlMembers); 103 maybeAddRename(renamed, domMember, htmlMembers);
104 return; 104 return;
105 } 105 }
106 }); 106 });
107 107
108 final removed = <Set>[]; 108 final removed = <Set>[];
109 for (final type in world.libraries['dart:dom'].types.getValues()) { 109 for (final type in world.libraries['dart:dom_deprecated'].types.getValues()) {
110 if (type.members.getValues().every((m) => 110 if (type.members.getValues().every((m) =>
111 !diff.domToHtml.containsKey(m))) { 111 !diff.domToHtml.containsKey(m))) {
112 removed.add('${type.name}.*'); 112 removed.add('${type.name}.*');
113 } else { 113 } else {
114 for (final member in type.members.getValues()) { 114 for (final member in type.members.getValues()) {
115 if (!diff.domToHtml.containsKey(member)) { 115 if (!diff.domToHtml.containsKey(member)) {
116 if (member is PropertyMember) { 116 if (member is PropertyMember) {
117 if (member.canGet) removed.add(htmlishMemberDesc(member.getter)); 117 if (member.canGet) removed.add(htmlishMemberDesc(member.getter));
118 if (member.canSet) removed.add(htmlishMemberDesc(member.setter)); 118 if (member.canSet) removed.add(htmlishMemberDesc(member.setter));
119 } else { 119 } else {
120 removed.add(htmlishMemberDesc(member)); 120 removed.add(htmlishMemberDesc(member));
121 } 121 }
122 } else if (member is PropertyMember) { 122 } else if (member is PropertyMember) {
123 final htmlMembers = diff.domToHtml[member]; 123 final htmlMembers = diff.domToHtml[member];
124 if (member.canGet && !htmlMembers.some((m) => m.name.startsWith('get:' ))) { 124 if (member.canGet && !htmlMembers.some((m) => m.name.startsWith('get:' ))) {
125 removed.add(htmlishMemberDesc(member.getter)); 125 removed.add(htmlishMemberDesc(member.getter));
126 } 126 }
127 if (member.canSet && !htmlMembers.some((m) => m.name.startsWith('set:' ))) { 127 if (member.canSet && !htmlMembers.some((m) => m.name.startsWith('set:' ))) {
128 removed.add(htmlishMemberDesc(member.setter)); 128 removed.add(htmlishMemberDesc(member.setter));
129 } 129 }
130 } 130 }
131 } 131 }
132 } 132 }
133 } 133 }
134 134
135 print(JSON.stringify({'renamed': renamed, 'removed': removed})); 135 print(JSON.stringify({'renamed': renamed, 'removed': removed}));
136 } 136 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698