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

Side by Side Diff: pkg/compiler/lib/src/resolution/member_impl.dart

Issue 2012163003: Fix several element properties in serialization. (Closed) Base URL: https://github.com/dart-lang/sdk.git@master
Patch Set: dartfmt Created 4 years, 6 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
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 part of dart2js.resolution.compute_members; 5 part of dart2js.resolution.compute_members;
6 6
7 class DeclaredMember implements Member { 7 class DeclaredMember implements Member {
8 final Name name; 8 final Name name;
9 final Element element; 9 final Element element;
10 final InterfaceType declarer; 10 final InterfaceType declarer;
(...skipping 120 matching lines...) Expand 10 before | Expand all | Expand 10 after
131 131
132 Member get implementation => this; 132 Member get implementation => this;
133 133
134 DartType get type => declaration.type.substByContext(instance); 134 DartType get type => declaration.type.substByContext(instance);
135 135
136 FunctionType get functionType { 136 FunctionType get functionType {
137 return declaration.functionType.substByContext(instance); 137 return declaration.functionType.substByContext(instance);
138 } 138 }
139 139
140 DeclaredMember inheritFrom(InterfaceType newInstance) { 140 DeclaredMember inheritFrom(InterfaceType newInstance) {
141 assert(() { 141 assert(invariant(declaration.element, () {
142 // Assert that if [instance] contains type variables, then these are 142 // Assert that if [instance] contains type variables, then these are
143 // defined in the declaration of [newInstance] and will therefore be 143 // defined in the declaration of [newInstance] and will therefore be
144 // substituted into the context of [newInstance] in the created member. 144 // substituted into the context of [newInstance] in the created member.
145 ClassElement contextClass = Types.getClassContext(instance); 145 ClassElement contextClass = Types.getClassContext(instance);
146 return contextClass == null || contextClass == newInstance.element; 146 return contextClass == null || contextClass == newInstance.element;
147 }); 147 }, message: () {
148 return "Context mismatch: Context class "
149 "${Types.getClassContext(instance)} from $instance does match "
150 "the new instance $newInstance.";
151 }));
148 return _newInheritedMember(newInstance); 152 return _newInheritedMember(newInstance);
149 } 153 }
150 154
151 InheritedMember _newInheritedMember(InterfaceType newInstance) { 155 InheritedMember _newInheritedMember(InterfaceType newInstance) {
152 return new InheritedMember( 156 return new InheritedMember(
153 declaration, instance.substByContext(newInstance)); 157 declaration, instance.substByContext(newInstance));
154 } 158 }
155 159
156 Iterable<Member> get declarations => <Member>[this]; 160 Iterable<Member> get declarations => <Member>[this];
157 161
158 int get hashCode => declaration.hashCode + 17 * instance.hashCode; 162 int get hashCode => declaration.hashCode + 17 * instance.hashCode;
159 163
160 bool operator ==(other) { 164 bool operator ==(other) {
161 if (other is! InheritedMember) return false; 165 if (other is! InheritedMember) return false;
162 return declaration == other.declaration && instance == other.instance; 166 return declaration == other.declaration && instance == other.instance;
163 } 167 }
164 168
165 void printOn(StringBuffer sb, DartType type) { 169 void printOn(StringBuffer sb, DartType type) {
166 declaration.printOn(sb, type); 170 declaration.printOn(sb, type);
167 sb.write(' inherited from $instance'); 171 sb.write(' inherited from $instance');
168 } 172 }
169 173
170 String toString() { 174 String toString() {
171 StringBuffer sb = new StringBuffer(); 175 StringBuffer sb = new StringBuffer();
172 printOn(sb, instance); 176 printOn(sb, type);
173 return sb.toString(); 177 return sb.toString();
174 } 178 }
175 } 179 }
176 180
177 class InheritedAbstractMember extends InheritedMember { 181 class InheritedAbstractMember extends InheritedMember {
178 final DeclaredMember implementation; 182 final DeclaredMember implementation;
179 183
180 InheritedAbstractMember( 184 InheritedAbstractMember(
181 DeclaredMember declaration, InterfaceType instance, this.implementation) 185 DeclaredMember declaration, InterfaceType instance, this.implementation)
182 : super(declaration, instance); 186 : super(declaration, instance);
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after
237 241
238 bool get isGetter => false; 242 bool get isGetter => false;
239 243
240 bool get isMethod => false; 244 bool get isMethod => false;
241 245
242 bool get isMalformed => true; 246 bool get isMalformed => true;
243 247
244 String toString() => "erroneous member '$name' synthesized " 248 String toString() => "erroneous member '$name' synthesized "
245 "from ${inheritedMembers}"; 249 "from ${inheritedMembers}";
246 } 250 }
OLDNEW
« no previous file with comments | « pkg/compiler/lib/src/library_loader.dart ('k') | pkg/compiler/lib/src/serialization/element_serialization.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698