OLD | NEW |
1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2013, 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.modelx; | 5 library elements.modelx; |
6 | 6 |
7 import 'dart:uri'; | 7 import 'dart:uri'; |
8 | 8 |
9 import 'elements.dart'; | 9 import 'elements.dart'; |
10 import '../../compiler.dart' as api; | 10 import '../../compiler.dart' as api; |
(...skipping 1682 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1693 } | 1693 } |
1694 | 1694 |
1695 /** | 1695 /** |
1696 * Returns true if [this] is a subclass of [cls]. | 1696 * Returns true if [this] is a subclass of [cls]. |
1697 * | 1697 * |
1698 * This method is not to be used for checking type hierarchy and | 1698 * This method is not to be used for checking type hierarchy and |
1699 * assignments, because it does not take parameterized types into | 1699 * assignments, because it does not take parameterized types into |
1700 * account. | 1700 * account. |
1701 */ | 1701 */ |
1702 bool isSubclassOf(ClassElement cls) { | 1702 bool isSubclassOf(ClassElement cls) { |
1703 for (ClassElement s = this; s != null; s = s.superclass) { | 1703 // Use [declaration] for both [this] and [cls], because |
| 1704 // declaration classes hold the superclass hierarchy. |
| 1705 cls = cls.declaration; |
| 1706 for (ClassElement s = declaration; s != null; s = s.superclass) { |
1704 if (identical(s, cls)) return true; | 1707 if (identical(s, cls)) return true; |
1705 } | 1708 } |
1706 return false; | 1709 return false; |
1707 } | 1710 } |
1708 | 1711 |
1709 bool isInterface() => false; | 1712 bool isInterface() => false; |
1710 bool isNative() => nativeTagInfo != null; | 1713 bool isNative() => nativeTagInfo != null; |
1711 void setNative(String name) { | 1714 void setNative(String name) { |
1712 nativeTagInfo = new SourceString(name); | 1715 nativeTagInfo = new SourceString(name); |
1713 } | 1716 } |
(...skipping 255 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1969 | 1972 |
1970 MetadataAnnotation ensureResolved(Compiler compiler) { | 1973 MetadataAnnotation ensureResolved(Compiler compiler) { |
1971 if (resolutionState == STATE_NOT_STARTED) { | 1974 if (resolutionState == STATE_NOT_STARTED) { |
1972 compiler.resolver.resolveMetadataAnnotation(this); | 1975 compiler.resolver.resolveMetadataAnnotation(this); |
1973 } | 1976 } |
1974 return this; | 1977 return this; |
1975 } | 1978 } |
1976 | 1979 |
1977 String toString() => 'MetadataAnnotation($value, $resolutionState)'; | 1980 String toString() => 'MetadataAnnotation($value, $resolutionState)'; |
1978 } | 1981 } |
OLD | NEW |