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

Side by Side Diff: sdk/lib/_internal/compiler/implementation/resolution/members.dart

Issue 11970011: Add an element for mixin applications. For now, the resolver complains about mixin applications -- … (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 7 years, 11 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 part of resolution; 5 part of resolution;
6 6
7 abstract class TreeElements { 7 abstract class TreeElements {
8 Element operator[](Node node); 8 Element operator[](Node node);
9 Selector getSelector(Send send); 9 Selector getSelector(Send send);
10 DartType getType(Node node); 10 DartType getType(Node node);
(...skipping 400 matching lines...) Expand 10 before | Expand all | Expand 10 after
411 } 411 }
412 }); 412 });
413 })); 413 }));
414 } 414 }
415 415
416 // TODO(johnniwinther): Remove this queue when resolution has been split into 416 // TODO(johnniwinther): Remove this queue when resolution has been split into
417 // syntax and semantic resolution. 417 // syntax and semantic resolution.
418 ClassElement currentlyResolvedClass; 418 ClassElement currentlyResolvedClass;
419 Queue<ClassElement> pendingClassesToBeResolved = new Queue<ClassElement>(); 419 Queue<ClassElement> pendingClassesToBeResolved = new Queue<ClassElement>();
420 420
421 void resolveMixinApplication(MixinApplicationElement element) {
422 // TODO(kasperl): Implement this.
423 assert(element.resolutionState == STATE_NOT_STARTED);
424 element.resolutionState = STATE_STARTED;
425 compiler.reportMessage(
426 compiler.spanFromSpannable(element.cachedNode),
427 MessageKind.GENERIC.error(['unimplemented mixin application']),
428 Diagnostic.ERROR);
429 element.resolutionState = STATE_DONE;
430 }
431
421 /** 432 /**
422 * Resolve the class [element]. 433 * Resolve the class [element].
423 * 434 *
424 * Before calling this method, [element] was constructed by the 435 * Before calling this method, [element] was constructed by the
425 * scanner and most fields are null or empty. This method fills in 436 * scanner and most fields are null or empty. This method fills in
426 * these fields and also ensure that the supertypes of [element] are 437 * these fields and also ensure that the supertypes of [element] are
427 * resolved. 438 * resolved.
428 * 439 *
429 * Warning: Do not call this method directly. Instead use 440 * Warning: Do not call this method directly. Instead use
430 * [:element.ensureResolved(compiler):]. 441 * [:element.ensureResolved(compiler):].
(...skipping 2966 matching lines...) Expand 10 before | Expand all | Expand 10 after
3397 return e; 3408 return e;
3398 } 3409 }
3399 3410
3400 /// Assumed to be called by [resolveRedirectingFactory]. 3411 /// Assumed to be called by [resolveRedirectingFactory].
3401 Element visitReturn(Return node) { 3412 Element visitReturn(Return node) {
3402 Node expression = node.expression; 3413 Node expression = node.expression;
3403 return finishConstructorReference(visit(expression), 3414 return finishConstructorReference(visit(expression),
3404 expression, expression); 3415 expression, expression);
3405 } 3416 }
3406 } 3417 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698