OLD | NEW |
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/resolution.dart' show | 7 import '../common/resolution.dart' show |
8 Resolution; | 8 Resolution; |
9 import '../compiler.dart' show | 9 import '../compiler.dart' show |
10 Compiler; | 10 Compiler; |
(...skipping 409 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
420 } | 420 } |
421 | 421 |
422 class Elements { | 422 class Elements { |
423 static bool isUnresolved(Element e) { | 423 static bool isUnresolved(Element e) { |
424 return e == null || e.isErroneous; | 424 return e == null || e.isErroneous; |
425 } | 425 } |
426 static bool isErroneous(Element e) => e != null && e.isErroneous; | 426 static bool isErroneous(Element e) => e != null && e.isErroneous; |
427 | 427 |
428 /// Unwraps [element] reporting any warnings attached to it, if any. | 428 /// Unwraps [element] reporting any warnings attached to it, if any. |
429 static Element unwrap(Element element, | 429 static Element unwrap(Element element, |
430 DiagnosticListener listener, | 430 DiagnosticReporter listener, |
431 Spannable spannable) { | 431 Spannable spannable) { |
432 if (element != null && element.isWarnOnUse) { | 432 if (element != null && element.isWarnOnUse) { |
433 WarnOnUseElement wrappedElement = element; | 433 WarnOnUseElement wrappedElement = element; |
434 element = wrappedElement.unwrap(listener, spannable); | 434 element = wrappedElement.unwrap(listener, spannable); |
435 } | 435 } |
436 return element; | 436 return element; |
437 } | 437 } |
438 | 438 |
439 static bool isClass(Element e) => e != null && e.kind == ElementKind.CLASS; | 439 static bool isClass(Element e) => e != null && e.kind == ElementKind.CLASS; |
440 static bool isTypedef(Element e) { | 440 static bool isTypedef(Element e) { |
(...skipping 358 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
799 } | 799 } |
800 | 800 |
801 /// An [Element] whose usage should cause one or more warnings. | 801 /// An [Element] whose usage should cause one or more warnings. |
802 abstract class WarnOnUseElement extends Element { | 802 abstract class WarnOnUseElement extends Element { |
803 /// The element whose usage cause a warning. | 803 /// The element whose usage cause a warning. |
804 Element get wrappedElement; | 804 Element get wrappedElement; |
805 | 805 |
806 /// Reports the attached warning and returns the wrapped element. | 806 /// Reports the attached warning and returns the wrapped element. |
807 /// [usageSpannable] is used to report messages on the reference of | 807 /// [usageSpannable] is used to report messages on the reference of |
808 /// [wrappedElement]. | 808 /// [wrappedElement]. |
809 Element unwrap(DiagnosticListener listener, Spannable usageSpannable); | 809 Element unwrap(DiagnosticReporter listener, Spannable usageSpannable); |
810 } | 810 } |
811 | 811 |
812 /// An ambiguous element represents multiple elements accessible by the same | 812 /// An ambiguous element represents multiple elements accessible by the same |
813 /// name. | 813 /// name. |
814 /// | 814 /// |
815 /// Ambiguous elements are created during handling of import/export scopes. If | 815 /// Ambiguous elements are created during handling of import/export scopes. If |
816 /// an ambiguous element is encountered during resolution a warning/error is | 816 /// an ambiguous element is encountered during resolution a warning/error is |
817 /// reported. | 817 /// reported. |
818 abstract class AmbiguousElement extends Element { | 818 abstract class AmbiguousElement extends Element { |
819 MessageKind get messageKind; | 819 MessageKind get messageKind; |
820 Map get messageArguments; | 820 Map get messageArguments; |
821 Element get existingElement; | 821 Element get existingElement; |
822 Element get newElement; | 822 Element get newElement; |
823 | 823 |
824 /// Compute the info messages associated with an error/warning on [context]. | 824 /// Compute the info messages associated with an error/warning on [context]. |
825 List<DiagnosticMessage> computeInfos( | 825 List<DiagnosticMessage> computeInfos( |
826 Element context, DiagnosticListener listener); | 826 Element context, DiagnosticReporter listener); |
827 } | 827 } |
828 | 828 |
829 // TODO(kasperl): This probably shouldn't be called an element. It's | 829 // TODO(kasperl): This probably shouldn't be called an element. It's |
830 // just an interface shared by classes and libraries. | 830 // just an interface shared by classes and libraries. |
831 abstract class ScopeContainerElement implements Element { | 831 abstract class ScopeContainerElement implements Element { |
832 Element localLookup(String elementName); | 832 Element localLookup(String elementName); |
833 | 833 |
834 void forEachLocalMember(f(Element element)); | 834 void forEachLocalMember(f(Element element)); |
835 } | 835 } |
836 | 836 |
(...skipping 871 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1708 bool get isDeclaredByField; | 1708 bool get isDeclaredByField; |
1709 | 1709 |
1710 /// Returns `true` if this member is abstract. | 1710 /// Returns `true` if this member is abstract. |
1711 bool get isAbstract; | 1711 bool get isAbstract; |
1712 | 1712 |
1713 /// If abstract, [implementation] points to the overridden concrete member, | 1713 /// If abstract, [implementation] points to the overridden concrete member, |
1714 /// if any. Otherwise [implementation] points to the member itself. | 1714 /// if any. Otherwise [implementation] points to the member itself. |
1715 Member get implementation; | 1715 Member get implementation; |
1716 } | 1716 } |
1717 | 1717 |
OLD | NEW |