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

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

Issue 1421003004: Add CoreClasses (Closed) Base URL: https://github.com/dart-lang/sdk.git@master
Patch Set: Updated cf. comment. Created 5 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
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 library dart2js.resolution.compute_members; 5 library dart2js.resolution.compute_members;
6 6
7 import '../common.dart'; 7 import '../common.dart';
8 import '../common/names.dart' show 8 import '../common/names.dart' show
9 Identifiers; 9 Identifiers;
10 import '../common/resolution.dart' show 10 import '../common/resolution.dart' show
(...skipping 296 matching lines...) Expand 10 before | Expand all | Expand 10 after
307 } 307 }
308 // TODO(johnniwinther): If [cls] is not abstract, check that for all 308 // TODO(johnniwinther): If [cls] is not abstract, check that for all
309 // interface members, there is a class member whose type is a subtype of 309 // interface members, there is a class member whose type is a subtype of
310 // the interface member. 310 // the interface member.
311 } 311 }
312 312
313 /// Checks that [cls], if it implements Function, has defined call(). 313 /// Checks that [cls], if it implements Function, has defined call().
314 void checkImplementsFunctionWithCall() { 314 void checkImplementsFunctionWithCall() {
315 assert(!cls.isAbstract); 315 assert(!cls.isAbstract);
316 316
317 if (cls.asInstanceOf(compiler.functionClass) == null) return; 317 ClassElement functionClass = compiler.coreClasses.functionClass;
318 if (cls.asInstanceOf(functionClass) == null) return;
318 if (cls.lookupMember(Identifiers.call) != null) return; 319 if (cls.lookupMember(Identifiers.call) != null) return;
319 // TODO(johnniwinther): Make separate methods for backend exceptions. 320 // TODO(johnniwinther): Make separate methods for backend exceptions.
320 // Avoid warnings on backend implementation classes for closures. 321 // Avoid warnings on backend implementation classes for closures.
321 if (compiler.backend.isBackendLibrary(cls.library)) return; 322 if (compiler.backend.isBackendLibrary(cls.library)) return;
322 323
323 reportMessage(compiler.functionClass, MessageKind.UNIMPLEMENTED_METHOD, () { 324 reportMessage(functionClass, MessageKind.UNIMPLEMENTED_METHOD, () {
324 reporter.reportWarningMessage( 325 reporter.reportWarningMessage(
325 cls, 326 cls,
326 MessageKind.UNIMPLEMENTED_METHOD_ONE, 327 MessageKind.UNIMPLEMENTED_METHOD_ONE,
327 {'class': cls.name, 328 {'class': cls.name,
328 'name': Identifiers.call, 329 'name': Identifiers.call,
329 'method': Identifiers.call, 330 'method': Identifiers.call,
330 'declarer': compiler.functionClass.name}); 331 'declarer': functionClass.name});
331 }); 332 });
332 } 333 }
333 334
334 /// Checks that a class member exists for every interface member. 335 /// Checks that a class member exists for every interface member.
335 void checkInterfaceImplementation(); 336 void checkInterfaceImplementation();
336 337
337 /// Check that [declared] is a valid override of [superMember]. 338 /// Check that [declared] is a valid override of [superMember].
338 void checkValidOverride(Member declared, MemberSignature superMember) { 339 void checkValidOverride(Member declared, MemberSignature superMember) {
339 if (superMember == null) { 340 if (superMember == null) {
340 // No override. 341 // No override.
(...skipping 606 matching lines...) Expand 10 before | Expand all | Expand 10 after
947 message: "Members have not been fully computed for $this.")); 948 message: "Members have not been fully computed for $this."));
948 if (interfaceMembersAreClassMembers) { 949 if (interfaceMembersAreClassMembers) {
949 classMembers.forEach((_, member) { 950 classMembers.forEach((_, member) {
950 if (!member.isStatic) f(member); 951 if (!member.isStatic) f(member);
951 }); 952 });
952 } else { 953 } else {
953 interfaceMembers.forEach((_, member) => f(member)); 954 interfaceMembers.forEach((_, member) => f(member));
954 } 955 }
955 } 956 }
956 } 957 }
OLDNEW
« no previous file with comments | « pkg/compiler/lib/src/resolution/class_hierarchy.dart ('k') | pkg/compiler/lib/src/resolution/constructors.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698