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

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

Issue 1627333002: Optimize subclass/subtype queries (Closed) Base URL: https://github.com/dart-lang/sdk.git@master
Patch Set: Use strictSubtypeCount Created 4 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
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 elements; 5 library elements;
6 6
7 import '../common.dart'; 7 import '../common.dart';
8 import '../common/resolution.dart' show 8 import '../common/resolution.dart' show
9 Resolution; 9 Resolution;
10 import '../compiler.dart' show 10 import '../compiler.dart' show
11 Compiler; 11 Compiler;
12 import '../constants/constructors.dart'; 12 import '../constants/constructors.dart';
13 import '../constants/expressions.dart'; 13 import '../constants/expressions.dart';
14 import '../core_types.dart' show
15 CoreClasses;
14 import '../dart_types.dart'; 16 import '../dart_types.dart';
15 import '../resolution/scope.dart' show 17 import '../resolution/scope.dart' show
16 Scope; 18 Scope;
17 import '../resolution/tree_elements.dart' show 19 import '../resolution/tree_elements.dart' show
18 TreeElements; 20 TreeElements;
19 import '../ordered_typeset.dart' show OrderedTypeSet; 21 import '../ordered_typeset.dart' show OrderedTypeSet;
20 import '../script.dart'; 22 import '../script.dart';
21 import '../tokens/token.dart' show 23 import '../tokens/token.dart' show
22 Token, 24 Token,
23 isUserDefinableOperator, 25 isUserDefinableOperator,
(...skipping 1399 matching lines...) Expand 10 before | Expand all | Expand 10 after
1423 bool get isUnnamedMixinApplication; 1425 bool get isUnnamedMixinApplication;
1424 1426
1425 bool get hasBackendMembers; 1427 bool get hasBackendMembers;
1426 bool get hasLocalScopeMembers; 1428 bool get hasLocalScopeMembers;
1427 1429
1428 /// Returns `true` if this class is `Object` from dart:core. 1430 /// Returns `true` if this class is `Object` from dart:core.
1429 bool get isObject; 1431 bool get isObject;
1430 1432
1431 /// Returns `true` if this class implements [Function] either by directly 1433 /// Returns `true` if this class implements [Function] either by directly
1432 /// implementing the interface or by providing a [call] method. 1434 /// implementing the interface or by providing a [call] method.
1433 bool implementsFunction(Compiler compiler); 1435 bool implementsFunction(CoreClasses coreClasses);
1434 1436
1435 /// Returns `true` if this class extends [cls] directly or indirectly. 1437 /// Returns `true` if this class extends [cls] directly or indirectly.
1436 /// 1438 ///
1437 /// This method is not to be used for checking type hierarchy and assignments, 1439 /// This method is not to be used for checking type hierarchy and assignments,
1438 /// because it does not take parameterized types into account. 1440 /// because it does not take parameterized types into account.
1439 bool isSubclassOf(ClassElement cls); 1441 bool isSubclassOf(ClassElement cls);
1440 1442
1441 /// Returns `true` if this class explicitly implements [intrface]. 1443 /// Returns `true` if this class explicitly implements [intrface].
1442 /// 1444 ///
1443 /// Note that, if [intrface] is the `Function` class, this method returns 1445 /// Note that, if [intrface] is the `Function` class, this method returns
(...skipping 273 matching lines...) Expand 10 before | Expand all | Expand 10 after
1717 bool get isDeclaredByField; 1719 bool get isDeclaredByField;
1718 1720
1719 /// Returns `true` if this member is abstract. 1721 /// Returns `true` if this member is abstract.
1720 bool get isAbstract; 1722 bool get isAbstract;
1721 1723
1722 /// If abstract, [implementation] points to the overridden concrete member, 1724 /// If abstract, [implementation] points to the overridden concrete member,
1723 /// if any. Otherwise [implementation] points to the member itself. 1725 /// if any. Otherwise [implementation] points to the member itself.
1724 Member get implementation; 1726 Member get implementation;
1725 } 1727 }
1726 1728
OLDNEW
« no previous file with comments | « no previous file | pkg/compiler/lib/src/elements/modelx.dart » ('j') | pkg/compiler/lib/src/universe/class_set.dart » ('J')

Powered by Google App Engine
This is Rietveld 408576698