| 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 |