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

Side by Side Diff: pkg/compiler/lib/src/world.dart

Issue 1683063002: Updates from comments. (Closed) Base URL: https://github.com/dart-lang/sdk.git@master
Patch Set: Fix test. Created 4 years, 9 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 library dart2js.world; 5 library dart2js.world;
6 6
7 import 'closure.dart' show 7 import 'closure.dart' show
8 SynthesizedCallMethodElementX; 8 SynthesizedCallMethodElementX;
9 import 'common.dart'; 9 import 'common.dart';
10 import 'common/backend_api.dart' show 10 import 'common/backend_api.dart' show
(...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after
92 /// Returns an iterable over the live classes that extend [cls] _not_ 92 /// Returns an iterable over the live classes that extend [cls] _not_
93 /// including [cls] itself. 93 /// including [cls] itself.
94 Iterable<ClassElement> strictSubclassesOf(ClassElement cls); 94 Iterable<ClassElement> strictSubclassesOf(ClassElement cls);
95 95
96 /// Returns the number of live classes that extend [cls] _not_ 96 /// Returns the number of live classes that extend [cls] _not_
97 /// including [cls] itself. 97 /// including [cls] itself.
98 int strictSubclassCount(ClassElement cls); 98 int strictSubclassCount(ClassElement cls);
99 99
100 /// Applies [f] to each live class that extend [cls] _not_ including [cls] 100 /// Applies [f] to each live class that extend [cls] _not_ including [cls]
101 /// itself. 101 /// itself.
102 void forEachStrictSubclassOf(ClassElement cls, ForEach f(ClassElement cls)); 102 void forEachStrictSubclassOf(ClassElement cls,
103 IterationStep f(ClassElement cls));
103 104
104 /// Returns `true` if [predicate] applies to any live class that extend [cls] 105 /// Returns `true` if [predicate] applies to any live class that extend [cls]
105 /// _not_ including [cls] itself. 106 /// _not_ including [cls] itself.
106 bool anyStrictSubclassOf(ClassElement cls, bool predicate(ClassElement cls)); 107 bool anyStrictSubclassOf(ClassElement cls, bool predicate(ClassElement cls));
107 108
108 /// Returns an iterable over the directly instantiated that implement [cls] 109 /// Returns an iterable over the directly instantiated that implement [cls]
109 /// possibly including [cls] itself, if it is live. 110 /// possibly including [cls] itself, if it is live.
110 Iterable<ClassElement> subtypesOf(ClassElement cls); 111 Iterable<ClassElement> subtypesOf(ClassElement cls);
111 112
112 /// Returns an iterable over the live classes that implement [cls] _not_ 113 /// Returns an iterable over the live classes that implement [cls] _not_
113 /// including [cls] if it is live. 114 /// including [cls] if it is live.
114 Iterable<ClassElement> strictSubtypesOf(ClassElement cls); 115 Iterable<ClassElement> strictSubtypesOf(ClassElement cls);
115 116
116 /// Returns the number of live classes that implement [cls] _not_ 117 /// Returns the number of live classes that implement [cls] _not_
117 /// including [cls] itself. 118 /// including [cls] itself.
118 int strictSubtypeCount(ClassElement cls); 119 int strictSubtypeCount(ClassElement cls);
119 120
120 /// Applies [f] to each live class that implements [cls] _not_ including [cls] 121 /// Applies [f] to each live class that implements [cls] _not_ including [cls]
121 /// itself. 122 /// itself.
122 void forEachStrictSubtypeOf(ClassElement cls, ForEach f(ClassElement cls)); 123 void forEachStrictSubtypeOf(ClassElement cls,
124 IterationStep f(ClassElement cls));
123 125
124 /// Returns `true` if [predicate] applies to any live class that implements 126 /// Returns `true` if [predicate] applies to any live class that implements
125 /// [cls] _not_ including [cls] itself. 127 /// [cls] _not_ including [cls] itself.
126 bool anyStrictSubtypeOf(ClassElement cls, bool predicate(ClassElement cls)); 128 bool anyStrictSubtypeOf(ClassElement cls, bool predicate(ClassElement cls));
127 129
128 /// Returns `true` if [a] and [b] have any known common subtypes. 130 /// Returns `true` if [a] and [b] have any known common subtypes.
129 bool haveAnyCommonSubtypes(ClassElement a, ClassElement b); 131 bool haveAnyCommonSubtypes(ClassElement a, ClassElement b);
130 132
131 /// Returns `true` if any live class other than [cls] extends [cls]. 133 /// Returns `true` if any live class other than [cls] extends [cls].
132 bool hasAnyStrictSubclass(ClassElement cls); 134 bool hasAnyStrictSubclass(ClassElement cls);
(...skipping 142 matching lines...) Expand 10 before | Expand all | Expand 10 after
275 /// Returns the number of live classes that extend [cls] _not_ 277 /// Returns the number of live classes that extend [cls] _not_
276 /// including [cls] itself. 278 /// including [cls] itself.
277 int strictSubclassCount(ClassElement cls) { 279 int strictSubclassCount(ClassElement cls) {
278 ClassHierarchyNode subclasses = _classHierarchyNodes[cls.declaration]; 280 ClassHierarchyNode subclasses = _classHierarchyNodes[cls.declaration];
279 if (subclasses == null) return 0; 281 if (subclasses == null) return 0;
280 return subclasses.instantiatedSubclassCount; 282 return subclasses.instantiatedSubclassCount;
281 } 283 }
282 284
283 /// Applies [f] to each live class that extend [cls] _not_ including [cls] 285 /// Applies [f] to each live class that extend [cls] _not_ including [cls]
284 /// itself. 286 /// itself.
285 void forEachStrictSubclassOf(ClassElement cls, ForEach f(ClassElement cls)) { 287 void forEachStrictSubclassOf(ClassElement cls,
288 IterationStep f(ClassElement cls)) {
286 ClassHierarchyNode subclasses = _classHierarchyNodes[cls.declaration]; 289 ClassHierarchyNode subclasses = _classHierarchyNodes[cls.declaration];
287 if (subclasses == null) return; 290 if (subclasses == null) return;
288 subclasses.forEachSubclass( 291 subclasses.forEachSubclass(
289 f, 292 f,
290 ClassHierarchyNode.DIRECTLY_INSTANTIATED, 293 ClassHierarchyNode.DIRECTLY_INSTANTIATED,
291 strict: true); 294 strict: true);
292 } 295 }
293 296
294 /// Returns `true` if [predicate] applies to any live class that extend [cls] 297 /// Returns `true` if [predicate] applies to any live class that extend [cls]
295 /// _not_ including [cls] itself. 298 /// _not_ including [cls] itself.
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
329 /// Returns the number of live classes that implement [cls] _not_ 332 /// Returns the number of live classes that implement [cls] _not_
330 /// including [cls] itself. 333 /// including [cls] itself.
331 int strictSubtypeCount(ClassElement cls) { 334 int strictSubtypeCount(ClassElement cls) {
332 ClassSet classSet = _classSets[cls.declaration]; 335 ClassSet classSet = _classSets[cls.declaration];
333 if (classSet == null) return 0; 336 if (classSet == null) return 0;
334 return classSet.instantiatedSubtypeCount; 337 return classSet.instantiatedSubtypeCount;
335 } 338 }
336 339
337 /// Applies [f] to each live class that implements [cls] _not_ including [cls] 340 /// Applies [f] to each live class that implements [cls] _not_ including [cls]
338 /// itself. 341 /// itself.
339 void forEachStrictSubtypeOf(ClassElement cls, ForEach f(ClassElement cls)) { 342 void forEachStrictSubtypeOf(ClassElement cls,
343 IterationStep f(ClassElement cls)) {
340 ClassSet classSet = _classSets[cls.declaration]; 344 ClassSet classSet = _classSets[cls.declaration];
341 if (classSet == null) return; 345 if (classSet == null) return;
342 classSet.forEachSubtype( 346 classSet.forEachSubtype(
343 f, 347 f,
344 ClassHierarchyNode.DIRECTLY_INSTANTIATED, 348 ClassHierarchyNode.DIRECTLY_INSTANTIATED,
345 strict: true); 349 strict: true);
346 } 350 }
347 351
348 /// Returns `true` if [predicate] applies to any live class that extend [cls] 352 /// Returns `true` if [predicate] applies to any live class that extend [cls]
349 /// _not_ including [cls] itself. 353 /// _not_ including [cls] itself.
(...skipping 482 matching lines...) Expand 10 before | Expand all | Expand 10 after
832 // function expressions's element. 836 // function expressions's element.
833 // TODO(herhut): Generate classes for function expressions earlier. 837 // TODO(herhut): Generate classes for function expressions earlier.
834 if (element is SynthesizedCallMethodElementX) { 838 if (element is SynthesizedCallMethodElementX) {
835 return getMightBePassedToApply(element.expression); 839 return getMightBePassedToApply(element.expression);
836 } 840 }
837 return functionsThatMightBePassedToApply.contains(element); 841 return functionsThatMightBePassedToApply.contains(element);
838 } 842 }
839 843
840 bool get hasClosedWorldAssumption => !compiler.hasIncrementalSupport; 844 bool get hasClosedWorldAssumption => !compiler.hasIncrementalSupport;
841 } 845 }
OLDNEW
« no previous file with comments | « pkg/compiler/lib/src/universe/class_set.dart ('k') | tests/compiler/dart2js/class_set_test.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698