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

Side by Side Diff: frog/type.dart

Issue 8588060: Fixes to get Swarm demo working again. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: update client status Created 9 years, 1 month 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
None
OLDNEW
1 // Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2011, 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 class Type implements Named, Hashable { 5 class Type implements Named, Hashable {
6 final String name; 6 final String name;
7 bool isTested; 7 bool isTested;
8 8
9 /** 9 /**
10 * For core types (int, String, etc) this is the generated type assertion 10 * For core types (int, String, etc) this is the generated type assertion
(...skipping 90 matching lines...) Expand 10 before | Expand all | Expand 10 after
101 DefinedType get genericType() => this; 101 DefinedType get genericType() => this;
102 102
103 // TODO(jmesserly): what should these do for ParameterType? 103 // TODO(jmesserly): what should these do for ParameterType?
104 List<Type> get interfaces() => null; 104 List<Type> get interfaces() => null;
105 Type get parent() => null; 105 Type get parent() => null;
106 106
107 Map<String, Member> getAllMembers() => {}; 107 Map<String, Member> getAllMembers() => {};
108 108
109 int hashCode() => name.hashCode(); 109 int hashCode() => name.hashCode();
110 110
111 void _checkOverride(Member member) {
Jennifer Messerly 2011/11/18 18:51:29 this was extract:method
112 // always look in parents to check that any overloads are legal
113 var parentMember = _getMemberInParents(member.name);
114 if (parentMember != null) {
115 // TODO(jimhug): Ensure that this is only done once.
116 if (!member.isPrivate || member.library == parentMember.library) {
117 member.override(parentMember);
118 }
119 }
120 }
121
122 Member _createNotEqualMember() {
Jennifer Messerly 2011/11/18 18:51:29 this and _getMemberInParents are just moved from D
123 // Add a != method just like the == one.
124 MethodMember eq = members['\$eq'];
125 if (eq == null) {
126 world.internalError('INTERNAL: object does not define ==',
127 definition.span);
128 }
129 final ne = new MethodMember('\$ne', this, eq.definition);
130 ne.isGenerated = true;
131 ne.returnType = eq.returnType;
132 ne.parameters = eq.parameters;
133 ne.isStatic = eq.isStatic;
134 ne.isAbstract = eq.isAbstract;
135 // TODO - What else to fill in?
136 return ne;
137 }
138
139 Member _getMemberInParents(String memberName) {
140 // print('getting $memberName in parents of $name, $isClass');
141 // Now look in my parents.
142 if (isClass) {
143 if (parent != null) {
144 return parent.getMember(memberName);
145 } else if (isObject) { // Could also be a top type so need check.
146 // Create synthetic != method if needed.
147 if (memberName == '\$ne') {
148 var ret = _createNotEqualMember();
149 members[memberName] = ret;
150 return ret;
151 }
152 return null;
153 }
154 } else {
155 // TODO(jimhug): Will probably check types more than once - errors?
156 if (interfaces != null && interfaces.length > 0) {
157 for (var i in interfaces) {
158 var ret = i.getMember(memberName);
159 if (ret != null) {
160 return ret;
161 }
162 }
163 return null;
164 } else {
165 return world.objectType.getMember(memberName);
166 }
167 }
168 }
169
111 void ensureSubtypeOf(Type other, SourceSpan span, [bool typeErrors=false]) { 170 void ensureSubtypeOf(Type other, SourceSpan span, [bool typeErrors=false]) {
112 if (!isSubtypeOf(other)) { 171 if (!isSubtypeOf(other)) {
113 var msg = 'type $name is not a subtype of ${other.name}'; 172 var msg = 'type $name is not a subtype of ${other.name}';
114 if (typeErrors) { 173 if (typeErrors) {
115 world.error(msg, span); 174 world.error(msg, span);
116 } else { 175 } else {
117 world.warning(msg, span); 176 world.warning(msg, span);
118 } 177 }
119 } 178 }
120 } 179 }
(...skipping 294 matching lines...) Expand 10 before | Expand all | Expand 10 after
415 Definition get definition() => type.definition; 474 Definition get definition() => type.definition;
416 FactoryMap get factories() => type.factories; 475 FactoryMap get factories() => type.factories;
417 Collection<Type> get typeArgsInOrder() => type.typeArgsInOrder; 476 Collection<Type> get typeArgsInOrder() => type.typeArgsInOrder;
418 DefinedType get genericType() => type.genericType; 477 DefinedType get genericType() => type.genericType;
419 List<Type> get interfaces() => type.interfaces; 478 List<Type> get interfaces() => type.interfaces;
420 Type get parent() => type.parent; 479 Type get parent() => type.parent;
421 Map<String, Member> getAllMembers() => type.getAllMembers(); 480 Map<String, Member> getAllMembers() => type.getAllMembers();
422 bool get isNativeType() => type.isNativeType; 481 bool get isNativeType() => type.isNativeType;
423 } 482 }
424 483

error: old chunk mismatch

OLDNEW
« frog/gen.dart ('K') | « frog/member.dart ('k') | frog/value.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698