Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(63)

Side by Side Diff: pkg/kernel/binary.md

Issue 2669303002: Support for modular mixin resolution. (Closed)
Patch Set: Update binary format Created 3 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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 179 matching lines...) Expand 10 before | Expand all | Expand 10 after
190 // hierarchy level, depending on its isTypeLevel flag. 190 // hierarchy level, depending on its isTypeLevel flag.
191 // If the enclosing library is not external, a class is always at body level. 191 // If the enclosing library is not external, a class is always at body level.
192 // 192 //
193 // See ClassLevel in ast.dart for the details of each loading level. 193 // See ClassLevel in ast.dart for the details of each loading level.
194 194
195 abstract type Class extends Node {} 195 abstract type Class extends Node {}
196 196
197 type NormalClass extends Class { 197 type NormalClass extends Class {
198 Byte tag = 2; 198 Byte tag = 2;
199 FileOffset fileOffset; 199 FileOffset fileOffset;
200 Byte flags (isAbstract, isTypeLevel); 200 Byte flags (isAbstract, xx); // where xx is index of class level
Kevin Millikin (Google) 2017/02/09 10:44:34 This should be spelled out explicitly here, even i
asgerf 2017/02/13 12:43:35 Done.
201 StringReference name; 201 StringReference name;
202 // An absolute path URI to the .dart file from which the class was created. 202 // An absolute path URI to the .dart file from which the class was created.
203 UriReference fileUri; 203 UriReference fileUri;
204 List<Expression> annotations; 204 List<Expression> annotations;
205 List<TypeParameter> typeParameters; 205 List<TypeParameter> typeParameters;
206 Option<InterfaceType> superClass; 206 Option<InterfaceType> superClass;
207 List<InterfaceType> implementedClasses; 207 List<InterfaceType> implementedClasses;
208 List<Field> fields; 208 List<Field> fields;
209 List<Constructor> constructors; 209 List<Constructor> constructors;
210 List<Procedure> procedures; 210 List<Procedure> procedures;
(...skipping 706 matching lines...) Expand 10 before | Expand all | Expand 10 after
917 917
918 /* enum BaseClassKind { None, Exact, Subclass, Subtype, } */ 918 /* enum BaseClassKind { None, Exact, Subclass, Subtype, } */
919 919
920 type InferredValue { 920 type InferredValue {
921 ClassReference baseClass; // May be NullReference if kind = None. 921 ClassReference baseClass; // May be NullReference if kind = None.
922 Byte kind; // Index into BaseClassKind. 922 Byte kind; // Index into BaseClassKind.
923 Byte valueBits; // See lib/type_propagation/type_propagation.dart 923 Byte valueBits; // See lib/type_propagation/type_propagation.dart
924 } 924 }
925 925
926 ``` 926 ```
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698