OLD | NEW |
1 This file describes the binary format of Dart Kernel. | 1 This file describes the binary format of Dart Kernel. |
2 | 2 |
3 Notation | 3 Notation |
4 -------- | 4 -------- |
5 Bitmasks are described with the syntax: | 5 Bitmasks are described with the syntax: |
6 ```scala | 6 ```scala |
7 Byte flags (flag1, flag2, ..., flagN) | 7 Byte flags (flag1, flag2, ..., flagN) |
8 ``` | 8 ``` |
9 where 'flag<N>' is the N-th least significant bit, | 9 where 'flag<N>' is the N-th least significant bit, |
10 (so flag1 is the least significant bit). | 10 (so flag1 is the least significant bit). |
(...skipping 973 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
984 // in the bound of type parameter N, but it takes up an index as if it was in | 984 // in the bound of type parameter N, but it takes up an index as if it was in |
985 // scope there. | 985 // scope there. |
986 // | 986 // |
987 // The type parameter can be bound by a Class, FunctionNode, or FunctionType. | 987 // The type parameter can be bound by a Class, FunctionNode, or FunctionType. |
988 // | 988 // |
989 // Note that constructors currently do not declare type parameters. Uses of | 989 // Note that constructors currently do not declare type parameters. Uses of |
990 // the class type parameters in a constructor refer to those declared on the | 990 // the class type parameters in a constructor refer to those declared on the |
991 // class. | 991 // class. |
992 UInt index; | 992 UInt index; |
993 | 993 |
994 // Byte offset in the binary for the type declaration. | 994 // Byte offset in the binary for the first type declaration of the |
995 // Note: This can also be 0, | 995 // Class or FunctionNode. |
996 // which is a 'forward reference' and is not to be used. | |
997 UInt typeParameterPosition; | 996 UInt typeParameterPosition; |
| 997 // The entry number in the list (starting at 0). |
| 998 UInt typeParameterIndex; |
998 Option<DartType> bound; | 999 Option<DartType> bound; |
999 } | 1000 } |
1000 | 1001 |
1001 type TypeParameter { | 1002 type TypeParameter { |
1002 // Note: there is no tag on TypeParameter | 1003 // Note: there is no tag on TypeParameter |
1003 StringReference name; // Cosmetic, may be empty, not unique. | 1004 StringReference name; // Cosmetic, may be empty, not unique. |
1004 DartType bound; // 'dynamic' if no explicit bound was given. | 1005 DartType bound; // 'dynamic' if no explicit bound was given. |
1005 } | 1006 } |
1006 | 1007 |
1007 ``` | 1008 ``` |
OLD | NEW |