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

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

Issue 2986093002: Revert two Kernel changes that were causing test failures. (Closed)
Patch Set: Revert "Migrate language/async_backwards... ... language/async_star_take..." 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/binary/ast_from_binary.dart ('k') | pkg/kernel/lib/verifier.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_to_binary; 4 library kernel.ast_to_binary;
5 5
6 import '../ast.dart'; 6 import '../ast.dart';
7 import '../import_table.dart'; 7 import '../import_table.dart';
8 import 'tag.dart'; 8 import 'tag.dart';
9 import 'dart:convert'; 9 import 'dart:convert';
10 import 'dart:typed_data'; 10 import 'dart:typed_data';
(...skipping 326 matching lines...) Expand 10 before | Expand all | Expand 10 after
337 writeStringReference(node.name ?? ''); 337 writeStringReference(node.name ?? '');
338 writeNodeList(node.combinators); 338 writeNodeList(node.combinators);
339 } 339 }
340 340
341 void visitCombinator(Combinator node) { 341 void visitCombinator(Combinator node) {
342 writeByte(node.isShow ? 1 : 0); 342 writeByte(node.isShow ? 1 : 0);
343 writeStringReferenceList(node.names); 343 writeStringReferenceList(node.names);
344 } 344 }
345 345
346 void visitTypedef(Typedef node) { 346 void visitTypedef(Typedef node) {
347 _variableIndexer = new VariableIndexer();
348 writeCanonicalNameReference(getCanonicalNameOfTypedef(node)); 347 writeCanonicalNameReference(getCanonicalNameOfTypedef(node));
349 writeOffset(node.fileOffset); 348 writeOffset(node.fileOffset);
350 writeStringReference(node.name); 349 writeStringReference(node.name);
351 writeUriReference(node.fileUri ?? ''); 350 writeUriReference(node.fileUri ?? '');
352 _typeParameterIndexer.enter(node.typeParameters); 351 _typeParameterIndexer.enter(node.typeParameters);
353 writeNodeList(node.typeParameters); 352 writeNodeList(node.typeParameters);
354 writeUInt30(node.requiredParameterCount);
355 writeVariableDeclarationList(node.positionalParameters);
356 writeVariableDeclarationList(node.namedParameters);
357 writeNode(node.type); 353 writeNode(node.type);
358 _typeParameterIndexer.exit(node.typeParameters); 354 _typeParameterIndexer.exit(node.typeParameters);
359 _variableIndexer = null;
360 } 355 }
361 356
362 void writeAnnotation(Expression annotation) { 357 void writeAnnotation(Expression annotation) {
363 _variableIndexer ??= new VariableIndexer(); 358 _variableIndexer ??= new VariableIndexer();
364 writeNode(annotation); 359 writeNode(annotation);
365 } 360 }
366 361
367 void writeAnnotationList(List<Expression> annotations) { 362 void writeAnnotationList(List<Expression> annotations) {
368 writeList(annotations, writeAnnotation); 363 writeList(annotations, writeAnnotation);
369 } 364 }
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
413 _variableIndexer = new VariableIndexer(); 408 _variableIndexer = new VariableIndexer();
414 writeByte(Tag.Constructor); 409 writeByte(Tag.Constructor);
415 writeCanonicalNameReference(getCanonicalNameOfMember(node)); 410 writeCanonicalNameReference(getCanonicalNameOfMember(node));
416 writeOffset(node.fileOffset); 411 writeOffset(node.fileOffset);
417 writeOffset(node.fileEndOffset); 412 writeOffset(node.fileEndOffset);
418 writeByte(node.flags); 413 writeByte(node.flags);
419 assert(node.parent is Class); 414 assert(node.parent is Class);
420 Class parent = node.parent; 415 Class parent = node.parent;
421 writeUInt30(parent.binaryOffset); 416 writeUInt30(parent.binaryOffset);
422 writeName(node.name ?? _emptyName); 417 writeName(node.name ?? _emptyName);
423 writeStringReference(node.documentationComment ?? '');
424 writeAnnotationList(node.annotations); 418 writeAnnotationList(node.annotations);
425 assert(node.function.typeParameters.isEmpty); 419 assert(node.function.typeParameters.isEmpty);
426 writeNode(node.function); 420 writeNode(node.function);
427 // Parameters are in scope in the initializers. 421 // Parameters are in scope in the initializers.
428 _variableIndexer.restoreScope(node.function.positionalParameters.length + 422 _variableIndexer.restoreScope(node.function.positionalParameters.length +
429 node.function.namedParameters.length); 423 node.function.namedParameters.length);
430 writeNodeList(node.initializers); 424 writeNodeList(node.initializers);
431 _variableIndexer = null; 425 _variableIndexer = null;
432 } 426 }
433 427
434 visitProcedure(Procedure node) { 428 visitProcedure(Procedure node) {
435 if (node.canonicalName == null) { 429 if (node.canonicalName == null) {
436 throw 'Missing canonical name for $node'; 430 throw 'Missing canonical name for $node';
437 } 431 }
438 _variableIndexer = new VariableIndexer(); 432 _variableIndexer = new VariableIndexer();
439 writeByte(Tag.Procedure); 433 writeByte(Tag.Procedure);
440 writeCanonicalNameReference(getCanonicalNameOfMember(node)); 434 writeCanonicalNameReference(getCanonicalNameOfMember(node));
441 writeOffset(node.fileOffset); 435 writeOffset(node.fileOffset);
442 writeOffset(node.fileEndOffset); 436 writeOffset(node.fileEndOffset);
443 writeByte(node.kind.index); 437 writeByte(node.kind.index);
444 writeByte(node.flags); 438 writeByte(node.flags);
445 if (node.parent is Class) { 439 if (node.parent is Class) {
446 Class parent = node.parent; 440 Class parent = node.parent;
447 writeUInt30(parent.binaryOffset); 441 writeUInt30(parent.binaryOffset);
448 } else { 442 } else {
449 writeUInt30(0); // 0 is a valid offset, but not for a class. 443 writeUInt30(0); // 0 is a valid offset, but not for a class.
450 } 444 }
451 writeName(node.name ?? ''); 445 writeName(node.name ?? '');
452 writeUriReference(node.fileUri ?? ''); 446 writeUriReference(node.fileUri ?? '');
453 writeStringReference(node.documentationComment ?? '');
454 writeAnnotationList(node.annotations); 447 writeAnnotationList(node.annotations);
455 writeOptionalNode(node.function); 448 writeOptionalNode(node.function);
456 _variableIndexer = null; 449 _variableIndexer = null;
457 } 450 }
458 451
459 visitField(Field node) { 452 visitField(Field node) {
460 if (node.canonicalName == null) { 453 if (node.canonicalName == null) {
461 throw 'Missing canonical name for $node'; 454 throw 'Missing canonical name for $node';
462 } 455 }
463 _variableIndexer = new VariableIndexer(); 456 _variableIndexer = new VariableIndexer();
464 writeByte(Tag.Field); 457 writeByte(Tag.Field);
465 writeCanonicalNameReference(getCanonicalNameOfMember(node)); 458 writeCanonicalNameReference(getCanonicalNameOfMember(node));
466 writeOffset(node.fileOffset); 459 writeOffset(node.fileOffset);
467 writeOffset(node.fileEndOffset); 460 writeOffset(node.fileEndOffset);
468 writeByte(node.flags); 461 writeByte(node.flags);
469 if (node.parent is Class) { 462 if (node.parent is Class) {
470 Class parent = node.parent; 463 Class parent = node.parent;
471 writeUInt30(parent.binaryOffset); 464 writeUInt30(parent.binaryOffset);
472 } else { 465 } else {
473 writeUInt30(0); // 0 is a valid offset, but not for a class. 466 writeUInt30(0); // 0 is a valid offset, but not for a class.
474 } 467 }
475 writeName(node.name); 468 writeName(node.name);
476 writeUriReference(node.fileUri ?? ''); 469 writeUriReference(node.fileUri ?? '');
477 writeStringReference(node.documentationComment ?? '');
478 writeAnnotationList(node.annotations); 470 writeAnnotationList(node.annotations);
479 writeNode(node.type); 471 writeNode(node.type);
480 writeOptionalNode(node.initializer); 472 writeOptionalNode(node.initializer);
481 _variableIndexer = null; 473 _variableIndexer = null;
482 } 474 }
483 475
484 visitInvalidInitializer(InvalidInitializer node) { 476 visitInvalidInitializer(InvalidInitializer node) {
485 writeByte(Tag.InvalidInitializer); 477 writeByte(Tag.InvalidInitializer);
486 writeByte(node.isSynthetic ? 1 : 0); 478 writeByte(node.isSynthetic ? 1 : 0);
487 } 479 }
(...skipping 883 matching lines...) Expand 10 before | Expand all | Expand 10 after
1371 put(node.name); 1363 put(node.name);
1372 node.visitChildren(this); 1364 node.visitChildren(this);
1373 } 1365 }
1374 1366
1375 visitClass(Class node) { 1367 visitClass(Class node) {
1376 putOptional(node.documentationComment); 1368 putOptional(node.documentationComment);
1377 putOptional(node.name); 1369 putOptional(node.name);
1378 node.visitChildren(this); 1370 node.visitChildren(this);
1379 } 1371 }
1380 1372
1381 @override
1382 visitConstructor(Constructor node) {
1383 putOptional(node.documentationComment);
1384 super.visitConstructor(node);
1385 }
1386
1387 @override
1388 visitField(Field node) {
1389 putOptional(node.documentationComment);
1390 super.visitField(node);
1391 }
1392
1393 visitNamedExpression(NamedExpression node) { 1373 visitNamedExpression(NamedExpression node) {
1394 put(node.name); 1374 put(node.name);
1395 node.visitChildren(this); 1375 node.visitChildren(this);
1396 } 1376 }
1397 1377
1398 @override
1399 visitProcedure(Procedure node) {
1400 putOptional(node.documentationComment);
1401 super.visitProcedure(node);
1402 }
1403
1404 visitStringLiteral(StringLiteral node) { 1378 visitStringLiteral(StringLiteral node) {
1405 put(node.value); 1379 put(node.value);
1406 } 1380 }
1407 1381
1408 visitIntLiteral(IntLiteral node) { 1382 visitIntLiteral(IntLiteral node) {
1409 if (node.value.abs() >> 30 != 0) { 1383 if (node.value.abs() >> 30 != 0) {
1410 put('${node.value}'); 1384 put('${node.value}');
1411 } 1385 }
1412 } 1386 }
1413 1387
(...skipping 127 matching lines...) Expand 10 before | Expand all | Expand 10 after
1541 _sink.add(_buffer.sublist(0, length)); 1515 _sink.add(_buffer.sublist(0, length));
1542 _buffer = new Uint8List(SIZE); 1516 _buffer = new Uint8List(SIZE);
1543 flushedLength += length; 1517 flushedLength += length;
1544 length = 0; 1518 length = 0;
1545 } 1519 }
1546 1520
1547 void flushAndDestroy() { 1521 void flushAndDestroy() {
1548 _sink.add(_buffer.sublist(0, length)); 1522 _sink.add(_buffer.sublist(0, length));
1549 } 1523 }
1550 } 1524 }
OLDNEW
« no previous file with comments | « pkg/kernel/lib/binary/ast_from_binary.dart ('k') | pkg/kernel/lib/verifier.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698