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

Side by Side Diff: pkg/kernel/lib/binary/ast_from_binary.dart

Issue 2986393002: Record Typedef reference into Kernel FunctionType and resynthesyze typedefs in Analyzer. (Closed)
Patch Set: Drop @informative for typedefReference. Created 3 years, 4 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
« no previous file with comments | « pkg/kernel/lib/ast.dart ('k') | pkg/kernel/lib/binary/ast_to_binary.dart » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 library kernel.ast_from_binary; 4 library kernel.ast_from_binary;
5 5
6 import 'dart:convert'; 6 import 'dart:convert';
7 import 'dart:typed_data'; 7 import 'dart:typed_data';
8 8
9 import '../ast.dart'; 9 import '../ast.dart';
10 import '../transformations/flags.dart'; 10 import '../transformations/flags.dart';
(...skipping 325 matching lines...) Expand 10 before | Expand all | Expand 10 after
336 336
337 Reference readMemberReference({bool allowNull: false}) { 337 Reference readMemberReference({bool allowNull: false}) {
338 var name = readCanonicalNameReference(); 338 var name = readCanonicalNameReference();
339 if (name == null && !allowNull) { 339 if (name == null && !allowNull) {
340 throw 'Expected a member reference to be valid but was `null`.'; 340 throw 'Expected a member reference to be valid but was `null`.';
341 } 341 }
342 return name?.getReference(); 342 return name?.getReference();
343 } 343 }
344 344
345 Reference readTypedefReference() { 345 Reference readTypedefReference() {
346 return readCanonicalNameReference().getReference(); 346 return readCanonicalNameReference()?.getReference();
347 } 347 }
348 348
349 Name readName() { 349 Name readName() {
350 String text = readStringReference(); 350 String text = readStringReference();
351 if (text.isNotEmpty && text[0] == '_') { 351 if (text.isNotEmpty && text[0] == '_') {
352 return new Name.byReference(text, readLibraryReference()); 352 return new Name.byReference(text, readLibraryReference());
353 } else { 353 } else {
354 return new Name(text); 354 return new Name(text);
355 } 355 }
356 } 356 }
(...skipping 812 matching lines...) Expand 10 before | Expand all | Expand 10 after
1169 return new InterfaceType.byReference( 1169 return new InterfaceType.byReference(
1170 readClassReference(), const <DartType>[]); 1170 readClassReference(), const <DartType>[]);
1171 case Tag.FunctionType: 1171 case Tag.FunctionType:
1172 int typeParameterStackHeight = typeParameterStack.length; 1172 int typeParameterStackHeight = typeParameterStack.length;
1173 var typeParameters = readAndPushTypeParameterList(); 1173 var typeParameters = readAndPushTypeParameterList();
1174 var requiredParameterCount = readUInt(); 1174 var requiredParameterCount = readUInt();
1175 var totalParameterCount = readUInt(); 1175 var totalParameterCount = readUInt();
1176 var positional = readDartTypeList(); 1176 var positional = readDartTypeList();
1177 var named = readNamedTypeList(); 1177 var named = readNamedTypeList();
1178 var positionalNames = readStringReferenceList(); 1178 var positionalNames = readStringReferenceList();
1179 var typedefReference = readTypedefReference();
1179 assert(positional.length + named.length == totalParameterCount); 1180 assert(positional.length + named.length == totalParameterCount);
1180 var returnType = readDartType(); 1181 var returnType = readDartType();
1181 typeParameterStack.length = typeParameterStackHeight; 1182 typeParameterStack.length = typeParameterStackHeight;
1182 return new FunctionType(positional, returnType, 1183 return new FunctionType(positional, returnType,
1183 typeParameters: typeParameters, 1184 typeParameters: typeParameters,
1184 requiredParameterCount: requiredParameterCount, 1185 requiredParameterCount: requiredParameterCount,
1185 namedParameters: named, 1186 namedParameters: named,
1186 positionalParameterNames: positionalNames); 1187 positionalParameterNames: positionalNames,
1188 typedefReference: typedefReference);
1187 case Tag.SimpleFunctionType: 1189 case Tag.SimpleFunctionType:
1188 var positional = readDartTypeList(); 1190 var positional = readDartTypeList();
1189 var positionalNames = readStringReferenceList(); 1191 var positionalNames = readStringReferenceList();
1190 var returnType = readDartType(); 1192 var returnType = readDartType();
1191 return new FunctionType(positional, returnType, 1193 return new FunctionType(positional, returnType,
1192 positionalParameterNames: positionalNames); 1194 positionalParameterNames: positionalNames);
1193 case Tag.TypeParameterType: 1195 case Tag.TypeParameterType:
1194 int index = readUInt(); 1196 int index = readUInt();
1195 readUInt(); // offset of parameter list in the binary. 1197 readUInt(); // offset of parameter list in the binary.
1196 readUInt(); // index in the list. 1198 readUInt(); // index in the list.
(...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after
1271 ..fileOffset = offset 1273 ..fileOffset = offset
1272 ..fileEqualsOffset = fileEqualsOffset; 1274 ..fileEqualsOffset = fileEqualsOffset;
1273 } 1275 }
1274 1276
1275 int readOffset() { 1277 int readOffset() {
1276 // Offset is saved as unsigned, 1278 // Offset is saved as unsigned,
1277 // but actually ranges from -1 and up (thus the -1) 1279 // but actually ranges from -1 and up (thus the -1)
1278 return readUInt() - 1; 1280 return readUInt() - 1;
1279 } 1281 }
1280 } 1282 }
OLDNEW
« no previous file with comments | « pkg/kernel/lib/ast.dart ('k') | pkg/kernel/lib/binary/ast_to_binary.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698