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

Side by Side Diff: pkg/front_end/lib/src/fasta/kernel/kernel_library_builder.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
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 4
5 library fasta.kernel_library_builder; 5 library fasta.kernel_library_builder;
6 6
7 import 'package:front_end/src/fasta/dill/dill_library_builder.dart'; 7 import 'package:front_end/src/fasta/dill/dill_library_builder.dart';
8 import 'package:front_end/src/fasta/export.dart'; 8 import 'package:front_end/src/fasta/export.dart';
9 import 'package:front_end/src/fasta/import.dart'; 9 import 'package:front_end/src/fasta/import.dart';
10 import 'package:kernel/ast.dart'; 10 import 'package:kernel/ast.dart';
(...skipping 484 matching lines...) Expand 10 before | Expand all | Expand 10 after
495 name: name, 495 name: name,
496 typeVariables: typeVariables, 496 typeVariables: typeVariables,
497 modifiers: modifiers, 497 modifiers: modifiers,
498 interfaces: interfaces, 498 interfaces: interfaces,
499 charOffset: charOffset); 499 charOffset: charOffset);
500 checkTypeVariables(typeVariables, supertype.builder); 500 checkTypeVariables(typeVariables, supertype.builder);
501 } 501 }
502 502
503 @override 503 @override
504 void addField( 504 void addField(
505 String documentationComment,
506 List<MetadataBuilder> metadata, 505 List<MetadataBuilder> metadata,
507 int modifiers, 506 int modifiers,
508 KernelTypeBuilder type, 507 KernelTypeBuilder type,
509 String name, 508 String name,
510 int charOffset, 509 int charOffset,
511 Token initializerTokenForInference, 510 Token initializerTokenForInference,
512 bool hasInitializer) { 511 bool hasInitializer) {
513 addBuilder( 512 addBuilder(
514 name, 513 name,
515 new KernelFieldBuilder( 514 new KernelFieldBuilder(metadata, type, name, modifiers, this,
516 documentationComment, 515 charOffset, initializerTokenForInference, hasInitializer),
517 metadata,
518 type,
519 name,
520 modifiers,
521 this,
522 charOffset,
523 initializerTokenForInference,
524 hasInitializer),
525 charOffset); 516 charOffset);
526 } 517 }
527 518
528 String computeAndValidateConstructorName(String name, int charOffset) { 519 String computeAndValidateConstructorName(String name, int charOffset) {
529 String className = currentDeclaration.name; 520 String className = currentDeclaration.name;
530 bool startsWithClassName = name.startsWith(className); 521 bool startsWithClassName = name.startsWith(className);
531 if (startsWithClassName && name.length == className.length) { 522 if (startsWithClassName && name.length == className.length) {
532 // Unnamed constructor or factory. 523 // Unnamed constructor or factory.
533 return ""; 524 return "";
534 } 525 }
535 int index = name.indexOf("."); 526 int index = name.indexOf(".");
536 if (startsWithClassName && index == className.length) { 527 if (startsWithClassName && index == className.length) {
537 // Named constructor or factory. 528 // Named constructor or factory.
538 return name.substring(index + 1); 529 return name.substring(index + 1);
539 } 530 }
540 if (index == -1) { 531 if (index == -1) {
541 // A legal name for a regular method, but not for a constructor. 532 // A legal name for a regular method, but not for a constructor.
542 return null; 533 return null;
543 } 534 }
544 String suffix = name.substring(index + 1); 535 String suffix = name.substring(index + 1);
545 addCompileTimeError( 536 addCompileTimeError(
546 templateIllegalMethodName.withArguments(name, "$className.$suffix"), 537 templateIllegalMethodName.withArguments(name, "$className.$suffix"),
547 charOffset, 538 charOffset,
548 fileUri); 539 fileUri);
549 return suffix; 540 return suffix;
550 } 541 }
551 542
552 void addProcedure( 543 void addProcedure(
553 String documentationComment,
554 List<MetadataBuilder> metadata, 544 List<MetadataBuilder> metadata,
555 int modifiers, 545 int modifiers,
556 KernelTypeBuilder returnType, 546 KernelTypeBuilder returnType,
557 String name, 547 String name,
558 List<TypeVariableBuilder> typeVariables, 548 List<TypeVariableBuilder> typeVariables,
559 List<FormalParameterBuilder> formals, 549 List<FormalParameterBuilder> formals,
560 ProcedureKind kind, 550 ProcedureKind kind,
561 int charOffset, 551 int charOffset,
562 int charOpenParenOffset, 552 int charOpenParenOffset,
563 int charEndOffset, 553 int charEndOffset,
564 String nativeMethodName, 554 String nativeMethodName,
565 {bool isTopLevel}) { 555 {bool isTopLevel}) {
566 // Nested declaration began in `OutlineBuilder.beginMethod` or 556 // Nested declaration began in `OutlineBuilder.beginMethod` or
567 // `OutlineBuilder.beginTopLevelMethod`. 557 // `OutlineBuilder.beginTopLevelMethod`.
568 endNestedDeclaration(name).resolveTypes(typeVariables, this); 558 endNestedDeclaration(name).resolveTypes(typeVariables, this);
569 ProcedureBuilder procedure; 559 ProcedureBuilder procedure;
570 String constructorName = 560 String constructorName =
571 isTopLevel ? null : computeAndValidateConstructorName(name, charOffset); 561 isTopLevel ? null : computeAndValidateConstructorName(name, charOffset);
572 if (constructorName != null) { 562 if (constructorName != null) {
573 name = constructorName; 563 name = constructorName;
574 procedure = new KernelConstructorBuilder( 564 procedure = new KernelConstructorBuilder(
575 documentationComment,
576 metadata, 565 metadata,
577 modifiers & ~abstractMask, 566 modifiers & ~abstractMask,
578 returnType, 567 returnType,
579 name, 568 name,
580 typeVariables, 569 typeVariables,
581 formals, 570 formals,
582 this, 571 this,
583 charOffset, 572 charOffset,
584 charOpenParenOffset, 573 charOpenParenOffset,
585 charEndOffset, 574 charEndOffset,
586 nativeMethodName); 575 nativeMethodName);
587 } else { 576 } else {
588 procedure = new KernelProcedureBuilder( 577 procedure = new KernelProcedureBuilder(
589 documentationComment,
590 metadata, 578 metadata,
591 modifiers, 579 modifiers,
592 returnType, 580 returnType,
593 name, 581 name,
594 typeVariables, 582 typeVariables,
595 formals, 583 formals,
596 kind, 584 kind,
597 this, 585 this,
598 charOffset, 586 charOffset,
599 charOpenParenOffset, 587 charOpenParenOffset,
600 charEndOffset, 588 charEndOffset,
601 nativeMethodName); 589 nativeMethodName);
602 } 590 }
603 checkTypeVariables(typeVariables, procedure); 591 checkTypeVariables(typeVariables, procedure);
604 addBuilder(name, procedure, charOffset); 592 addBuilder(name, procedure, charOffset);
605 if (nativeMethodName != null) { 593 if (nativeMethodName != null) {
606 addNativeMethod(procedure); 594 addNativeMethod(procedure);
607 } 595 }
608 } 596 }
609 597
610 void addFactoryMethod( 598 void addFactoryMethod(
611 String documentationComment,
612 List<MetadataBuilder> metadata, 599 List<MetadataBuilder> metadata,
613 int modifiers, 600 int modifiers,
614 ConstructorReferenceBuilder constructorNameReference, 601 ConstructorReferenceBuilder constructorNameReference,
615 List<FormalParameterBuilder> formals, 602 List<FormalParameterBuilder> formals,
616 ConstructorReferenceBuilder redirectionTarget, 603 ConstructorReferenceBuilder redirectionTarget,
617 int charOffset, 604 int charOffset,
618 int charOpenParenOffset, 605 int charOpenParenOffset,
619 int charEndOffset, 606 int charEndOffset,
620 String nativeMethodName) { 607 String nativeMethodName) {
621 KernelTypeBuilder returnType = addNamedType( 608 KernelTypeBuilder returnType = addNamedType(
622 currentDeclaration.parent.name, <KernelTypeBuilder>[], charOffset); 609 currentDeclaration.parent.name, <KernelTypeBuilder>[], charOffset);
623 // Nested declaration began in `OutlineBuilder.beginFactoryMethod`. 610 // Nested declaration began in `OutlineBuilder.beginFactoryMethod`.
624 DeclarationBuilder<KernelTypeBuilder> factoryDeclaration = 611 DeclarationBuilder<KernelTypeBuilder> factoryDeclaration =
625 endNestedDeclaration("#factory_method"); 612 endNestedDeclaration("#factory_method");
626 String name = constructorNameReference.name; 613 String name = constructorNameReference.name;
627 String constructorName = 614 String constructorName =
628 computeAndValidateConstructorName(name, charOffset); 615 computeAndValidateConstructorName(name, charOffset);
629 if (constructorName != null) { 616 if (constructorName != null) {
630 name = constructorName; 617 name = constructorName;
631 } 618 }
632 assert(constructorNameReference.suffix == null); 619 assert(constructorNameReference.suffix == null);
633 KernelProcedureBuilder procedure = new KernelProcedureBuilder( 620 KernelProcedureBuilder procedure = new KernelProcedureBuilder(
634 documentationComment,
635 metadata, 621 metadata,
636 staticMask | modifiers, 622 staticMask | modifiers,
637 returnType, 623 returnType,
638 name, 624 name,
639 <TypeVariableBuilder>[], 625 <TypeVariableBuilder>[],
640 formals, 626 formals,
641 ProcedureKind.Factory, 627 ProcedureKind.Factory,
642 this, 628 this,
643 charOffset, 629 charOffset,
644 charOpenParenOffset, 630 charOpenParenOffset,
(...skipping 279 matching lines...) Expand 10 before | Expand all | Expand 10 after
924 mixinApplicationClasses.putIfAbsent(name, () => builder); 910 mixinApplicationClasses.putIfAbsent(name, () => builder);
925 if (existing != builder) { 911 if (existing != builder) {
926 part.scope.local.remove(name); 912 part.scope.local.remove(name);
927 } 913 }
928 }); 914 });
929 super.includePart(part); 915 super.includePart(part);
930 nativeMethods.addAll(part.nativeMethods); 916 nativeMethods.addAll(part.nativeMethods);
931 boundlessTypeVariables.addAll(part.boundlessTypeVariables); 917 boundlessTypeVariables.addAll(part.boundlessTypeVariables);
932 } 918 }
933 } 919 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698