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

Side by Side Diff: pkg/compiler/lib/src/elements/common.dart

Issue 1888393002: Fix some issues in element serialization. (Closed) Base URL: https://github.com/dart-lang/sdk.git@master
Patch Set: Fix comment. Created 4 years, 8 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
« no previous file with comments | « no previous file | pkg/compiler/lib/src/elements/elements.dart » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2015, 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 /// Mixins that implement convenience methods on [Element] subclasses. 5 /// Mixins that implement convenience methods on [Element] subclasses.
6 6
7 library elements.common; 7 library elements.common;
8 8
9 import '../common/names.dart' show Names, Uris; 9 import '../common/names.dart' show Names, Uris;
10 import '../core_types.dart' show CoreClasses; 10 import '../core_types.dart' show CoreClasses;
(...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after
81 @override 81 @override
82 bool get isMalformed => false; 82 bool get isMalformed => false;
83 83
84 @override 84 @override
85 bool get isWarnOnUse => kind == ElementKind.WARN_ON_USE; 85 bool get isWarnOnUse => kind == ElementKind.WARN_ON_USE;
86 86
87 @override 87 @override
88 bool get impliesType => (kind.category & ElementCategory.IMPLIES_TYPE) != 0; 88 bool get impliesType => (kind.category & ElementCategory.IMPLIES_TYPE) != 0;
89 89
90 @override 90 @override
91 bool get isAssignable {
92 if (isFinal || isConst) return false;
93 if (isFunction || isConstructor) return false;
94 return true;
95 }
96
97 @override
91 Element get declaration => this; 98 Element get declaration => this;
92 99
93 @override 100 @override
94 Element get implementation => this; 101 Element get implementation => this;
95 102
96 @override 103 @override
97 bool get isDeclaration => true; 104 bool get isDeclaration => true;
98 105
99 @override 106 @override
100 bool get isPatched => false; 107 bool get isPatched => false;
(...skipping 22 matching lines...) Expand all
123 ClassElement cls; 130 ClassElement cls;
124 for (Element e = this; e != null; e = e.enclosingElement) { 131 for (Element e = this; e != null; e = e.enclosingElement) {
125 if (e.isClass) { 132 if (e.isClass) {
126 // Record [e] instead of returning it directly. We need the last class 133 // Record [e] instead of returning it directly. We need the last class
127 // in the chain since the first classes might be closure classes. 134 // in the chain since the first classes might be closure classes.
128 cls = e.declaration; 135 cls = e.declaration;
129 } 136 }
130 } 137 }
131 return cls; 138 return cls;
132 } 139 }
140
141 @override
142 Element get outermostEnclosingMemberOrTopLevel {
143 // TODO(lrn): Why is this called "Outermost"?
144 // TODO(johnniwinther): Clean up this method: This method does not return
145 // the outermost for elements in closure classses, but some call-sites rely
146 // on that behavior.
147 for (Element e = this; e != null; e = e.enclosingElement) {
148 if (e.isClassMember || e.isTopLevel) {
149 return e;
150 }
151 }
152 return null;
153 }
133 } 154 }
134 155
135 abstract class LibraryElementCommon implements LibraryElement { 156 abstract class LibraryElementCommon implements LibraryElement {
136 @override 157 @override
137 bool get isDartCore => canonicalUri == Uris.dart_core; 158 bool get isDartCore => canonicalUri == Uris.dart_core;
138 159
139 @override 160 @override
140 bool get isPlatformLibrary => canonicalUri.scheme == 'dart'; 161 bool get isPlatformLibrary => canonicalUri.scheme == 'dart';
141 162
142 @override 163 @override
(...skipping 305 matching lines...) Expand 10 before | Expand all | Expand 10 after
448 469
449 abstract class FunctionSignatureCommon implements FunctionSignature { 470 abstract class FunctionSignatureCommon implements FunctionSignature {
450 void forEachRequiredParameter(void function(Element parameter)) { 471 void forEachRequiredParameter(void function(Element parameter)) {
451 requiredParameters.forEach(function); 472 requiredParameters.forEach(function);
452 } 473 }
453 474
454 void forEachOptionalParameter(void function(Element parameter)) { 475 void forEachOptionalParameter(void function(Element parameter)) {
455 optionalParameters.forEach(function); 476 optionalParameters.forEach(function);
456 } 477 }
457 478
458 Element get firstOptionalParameter => optionalParameters.first;
459
460 void forEachParameter(void function(Element parameter)) { 479 void forEachParameter(void function(Element parameter)) {
461 forEachRequiredParameter(function); 480 forEachRequiredParameter(function);
462 forEachOptionalParameter(function); 481 forEachOptionalParameter(function);
463 } 482 }
464 483
465 void orderedForEachParameter(void function(Element parameter)) { 484 void orderedForEachParameter(void function(Element parameter)) {
466 forEachRequiredParameter(function); 485 forEachRequiredParameter(function);
467 orderedOptionalParameters.forEach(function); 486 orderedOptionalParameters.forEach(function);
468 } 487 }
469 488
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after
531 550
532 @override 551 @override
533 void forEachLocalMember(void f(Element member)) { 552 void forEachLocalMember(void f(Element member)) {
534 constructors.forEach(f); 553 constructors.forEach(f);
535 if (mixin != null) 554 if (mixin != null)
536 mixin.forEachLocalMember((Element mixedInElement) { 555 mixin.forEachLocalMember((Element mixedInElement) {
537 if (mixedInElement.isInstanceMember) f(mixedInElement); 556 if (mixedInElement.isInstanceMember) f(mixedInElement);
538 }); 557 });
539 } 558 }
540 } 559 }
OLDNEW
« no previous file with comments | « no previous file | pkg/compiler/lib/src/elements/elements.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698