| 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 614 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 625 /// Mixin applications may not contain fields or procedures, as they implicitly | 625 /// Mixin applications may not contain fields or procedures, as they implicitly |
| 626 /// use those from its mixed-in type. However, the IR does not enforce this | 626 /// use those from its mixed-in type. However, the IR does not enforce this |
| 627 /// rule directly, as doing so can obstruct transformations. It is possible to | 627 /// rule directly, as doing so can obstruct transformations. It is possible to |
| 628 /// transform a mixin application to become a regular class, and vice versa. | 628 /// transform a mixin application to become a regular class, and vice versa. |
| 629 class Class extends NamedNode { | 629 class Class extends NamedNode { |
| 630 /// End offset in the source file it comes from. Valid values are from 0 and | 630 /// End offset in the source file it comes from. Valid values are from 0 and |
| 631 /// up, or -1 ([TreeNode.noOffset]) if the file end offset is not available | 631 /// up, or -1 ([TreeNode.noOffset]) if the file end offset is not available |
| 632 /// (this is the default if none is specifically set). | 632 /// (this is the default if none is specifically set). |
| 633 int fileEndOffset = TreeNode.noOffset; | 633 int fileEndOffset = TreeNode.noOffset; |
| 634 | 634 |
| 635 /// Offset of the declaration, set and used when writing the binary. | |
| 636 int binaryOffset = -1; | |
| 637 | |
| 638 /// The degree to which the contents of the class have been loaded. | 635 /// The degree to which the contents of the class have been loaded. |
| 639 ClassLevel level = ClassLevel.Body; | 636 ClassLevel level = ClassLevel.Body; |
| 640 | 637 |
| 641 /// Documentation comment of the class, or `null`. | 638 /// Documentation comment of the class, or `null`. |
| 642 @informative | 639 @informative |
| 643 String documentationComment; | 640 String documentationComment; |
| 644 | 641 |
| 645 /// List of metadata annotations on the class. | 642 /// List of metadata annotations on the class. |
| 646 /// | 643 /// |
| 647 /// This defaults to an immutable empty list. Use [addAnnotation] to add | 644 /// This defaults to an immutable empty list. Use [addAnnotation] to add |
| (...skipping 3747 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4395 /// different [FunctionType] objects. | 4392 /// different [FunctionType] objects. |
| 4396 class TypeParameter extends TreeNode { | 4393 class TypeParameter extends TreeNode { |
| 4397 String name; // Cosmetic name. | 4394 String name; // Cosmetic name. |
| 4398 | 4395 |
| 4399 /// The bound on the type variable. | 4396 /// The bound on the type variable. |
| 4400 /// | 4397 /// |
| 4401 /// Should not be null except temporarily during IR construction. Should | 4398 /// Should not be null except temporarily during IR construction. Should |
| 4402 /// be set to the root class for type parameters without an explicit bound. | 4399 /// be set to the root class for type parameters without an explicit bound. |
| 4403 DartType bound; | 4400 DartType bound; |
| 4404 | 4401 |
| 4405 /// Offset of the declaration, set and used when writing the binary. | |
| 4406 int binaryOffset = 0; | |
| 4407 | |
| 4408 TypeParameter([this.name, this.bound]); | 4402 TypeParameter([this.name, this.bound]); |
| 4409 | 4403 |
| 4410 accept(TreeVisitor v) => v.visitTypeParameter(this); | 4404 accept(TreeVisitor v) => v.visitTypeParameter(this); |
| 4411 | 4405 |
| 4412 visitChildren(Visitor v) { | 4406 visitChildren(Visitor v) { |
| 4413 bound.accept(v); | 4407 bound.accept(v); |
| 4414 } | 4408 } |
| 4415 | 4409 |
| 4416 transformChildren(Transformer v) { | 4410 transformChildren(Transformer v) { |
| 4417 bound = v.visitDartType(bound); | 4411 bound = v.visitDartType(bound); |
| (...skipping 328 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4746 if (typedef_.canonicalName == null) { | 4740 if (typedef_.canonicalName == null) { |
| 4747 throw '$typedef_ has no canonical name'; | 4741 throw '$typedef_ has no canonical name'; |
| 4748 } | 4742 } |
| 4749 return typedef_.canonicalName; | 4743 return typedef_.canonicalName; |
| 4750 } | 4744 } |
| 4751 | 4745 |
| 4752 /// Annotation describing information which is not part of Dart semantics; in | 4746 /// Annotation describing information which is not part of Dart semantics; in |
| 4753 /// other words, if this information (or any information it refers to) changes, | 4747 /// other words, if this information (or any information it refers to) changes, |
| 4754 /// static analysis and runtime behavior of the library are unaffected. | 4748 /// static analysis and runtime behavior of the library are unaffected. |
| 4755 const informative = null; | 4749 const informative = null; |
| OLD | NEW |