OLD | NEW |
1 // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2016, 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 /// ----------------------------------------------------------------------- | 5 /// ----------------------------------------------------------------------- |
6 /// ERROR HANDLING | 6 /// ERROR HANDLING |
7 /// ----------------------------------------------------------------------- | 7 /// ----------------------------------------------------------------------- |
8 /// | 8 /// |
9 /// As a rule of thumb, errors that can be detected statically are handled by | 9 /// As a rule of thumb, errors that can be detected statically are handled by |
10 /// the frontend, typically by translating the erroneous code into a 'throw' or | 10 /// the frontend, typically by translating the erroneous code into a 'throw' or |
(...skipping 598 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
609 /// Name of the class. | 609 /// Name of the class. |
610 /// | 610 /// |
611 /// Must be non-null and must be unique within the library. | 611 /// Must be non-null and must be unique within the library. |
612 /// | 612 /// |
613 /// The name may contain characters that are not valid in a Dart identifier, | 613 /// The name may contain characters that are not valid in a Dart identifier, |
614 /// in particular, the symbol '&' is used in class names generated for mixin | 614 /// in particular, the symbol '&' is used in class names generated for mixin |
615 /// applications. | 615 /// applications. |
616 String name; | 616 String name; |
617 bool isAbstract; | 617 bool isAbstract; |
618 | 618 |
| 619 /// Whether this class is an enum. |
| 620 @informative |
| 621 bool isEnum = false; |
| 622 |
619 /// Whether this class is a synthetic implementation created for each | 623 /// Whether this class is a synthetic implementation created for each |
620 /// mixed-in class. For example the following code: | 624 /// mixed-in class. For example the following code: |
621 /// class Z extends A with B, C, D {} | 625 /// class Z extends A with B, C, D {} |
622 /// class A {} | 626 /// class A {} |
623 /// class B {} | 627 /// class B {} |
624 /// class C {} | 628 /// class C {} |
625 /// class D {} | 629 /// class D {} |
626 /// ...creates: | 630 /// ...creates: |
627 /// abstract class A&B extends A mixedIn B {} | 631 /// abstract class A&B extends A mixedIn B {} |
628 /// abstract class A&B&C extends A&B mixedIn C {} | 632 /// abstract class A&B&C extends A&B mixedIn C {} |
(...skipping 4051 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4680 if (typedef_.canonicalName == null) { | 4684 if (typedef_.canonicalName == null) { |
4681 throw '$typedef_ has no canonical name'; | 4685 throw '$typedef_ has no canonical name'; |
4682 } | 4686 } |
4683 return typedef_.canonicalName; | 4687 return typedef_.canonicalName; |
4684 } | 4688 } |
4685 | 4689 |
4686 /// Annotation describing information which is not part of Dart semantics; in | 4690 /// Annotation describing information which is not part of Dart semantics; in |
4687 /// other words, if this information (or any information it refers to) changes, | 4691 /// other words, if this information (or any information it refers to) changes, |
4688 /// static analysis and runtime behavior of the library are unaffected. | 4692 /// static analysis and runtime behavior of the library are unaffected. |
4689 const informative = null; | 4693 const informative = null; |
OLD | NEW |