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

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

Issue 1220043005: dart2js send stats, includes: (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: Created 5 years, 2 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 | « pkg/compiler/lib/src/typechecker.dart ('k') | pkg/compiler/pubspec.yaml » ('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) 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/backend_api.dart' show 9 import 'common/backend_api.dart' show
10 Backend; 10 Backend;
(...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after
80 bool isSubtypeOf(ClassElement x, ClassElement y); 80 bool isSubtypeOf(ClassElement x, ClassElement y);
81 81
82 /// Returns an iterable over the live classes that extend [cls] including 82 /// Returns an iterable over the live classes that extend [cls] including
83 /// [cls] itself. 83 /// [cls] itself.
84 Iterable<ClassElement> subclassesOf(ClassElement cls); 84 Iterable<ClassElement> subclassesOf(ClassElement cls);
85 85
86 /// Returns an iterable over the live classes that extend [cls] _not_ 86 /// Returns an iterable over the live classes that extend [cls] _not_
87 /// including [cls] itself. 87 /// including [cls] itself.
88 Iterable<ClassElement> strictSubclassesOf(ClassElement cls); 88 Iterable<ClassElement> strictSubclassesOf(ClassElement cls);
89 89
90 /// Returns an iterable over the directly instantiated that implement [cls]
91 /// possibly including [cls] itself, if it is live.
92 Iterable<ClassElement> subtypesOf(ClassElement cls);
93
90 /// Returns an iterable over the live classes that implement [cls] _not_ 94 /// Returns an iterable over the live classes that implement [cls] _not_
91 /// including [cls] if it is live. 95 /// including [cls] if it is live.
92 Iterable<ClassElement> strictSubtypesOf(ClassElement cls); 96 Iterable<ClassElement> strictSubtypesOf(ClassElement cls);
93 97
94 /// Returns `true` if [a] and [b] have any known common subtypes. 98 /// Returns `true` if [a] and [b] have any known common subtypes.
95 bool haveAnyCommonSubtypes(ClassElement a, ClassElement b); 99 bool haveAnyCommonSubtypes(ClassElement a, ClassElement b);
96 100
97 /// Returns `true` if any live class other than [cls] extends [cls]. 101 /// Returns `true` if any live class other than [cls] extends [cls].
98 bool hasAnyStrictSubclass(ClassElement cls); 102 bool hasAnyStrictSubclass(ClassElement cls);
99 103
(...skipping 111 matching lines...) Expand 10 before | Expand all | Expand 10 after
211 Iterable<ClassElement> strictSubclassesOf(ClassElement cls) { 215 Iterable<ClassElement> strictSubclassesOf(ClassElement cls) {
212 ClassHierarchyNode subclasses = _classHierarchyNodes[cls.declaration]; 216 ClassHierarchyNode subclasses = _classHierarchyNodes[cls.declaration];
213 if (subclasses == null) return const <ClassElement>[]; 217 if (subclasses == null) return const <ClassElement>[];
214 return subclasses.subclasses( 218 return subclasses.subclasses(
215 strict: true, 219 strict: true,
216 includeIndirectlyInstantiated: false, 220 includeIndirectlyInstantiated: false,
217 includeUninstantiated: false); 221 includeUninstantiated: false);
218 } 222 }
219 223
220 /// Returns an iterable over the directly instantiated that implement [cls] 224 /// Returns an iterable over the directly instantiated that implement [cls]
225 /// possibly including [cls] itself, if it is live.
226 Iterable<ClassElement> subtypesOf(ClassElement cls) {
227 ClassSet classSet = _classSets[cls.declaration];
228 if (classSet == null) {
229 return const <ClassElement>[];
230 } else {
231 return classSet.subtypes(
232 includeIndirectlyInstantiated: false,
233 includeUninstantiated: false);
234 }
235 }
236
237 /// Returns an iterable over the directly instantiated that implement [cls]
221 /// _not_ including [cls]. 238 /// _not_ including [cls].
222 Iterable<ClassElement> strictSubtypesOf(ClassElement cls) { 239 Iterable<ClassElement> strictSubtypesOf(ClassElement cls) {
223 ClassSet classSet = _classSets[cls.declaration]; 240 ClassSet classSet = _classSets[cls.declaration];
224 if (classSet == null) { 241 if (classSet == null) {
225 return const <ClassElement>[]; 242 return const <ClassElement>[];
226 } else { 243 } else {
227 return classSet.subtypes( 244 return classSet.subtypes(
228 strict: true, 245 strict: true,
229 includeIndirectlyInstantiated: false, 246 includeIndirectlyInstantiated: false,
230 includeUninstantiated: false); 247 includeUninstantiated: false);
(...skipping 444 matching lines...) Expand 10 before | Expand all | Expand 10 after
675 // function expressions's element. 692 // function expressions's element.
676 // TODO(herhut): Generate classes for function expressions earlier. 693 // TODO(herhut): Generate classes for function expressions earlier.
677 if (element is SynthesizedCallMethodElementX) { 694 if (element is SynthesizedCallMethodElementX) {
678 return getMightBePassedToApply(element.expression); 695 return getMightBePassedToApply(element.expression);
679 } 696 }
680 return functionsThatMightBePassedToApply.contains(element); 697 return functionsThatMightBePassedToApply.contains(element);
681 } 698 }
682 699
683 bool get hasClosedWorldAssumption => !compiler.hasIncrementalSupport; 700 bool get hasClosedWorldAssumption => !compiler.hasIncrementalSupport;
684 } 701 }
OLDNEW
« no previous file with comments | « pkg/compiler/lib/src/typechecker.dart ('k') | pkg/compiler/pubspec.yaml » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698