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

Side by Side Diff: pkg/front_end/lib/src/fasta/kernel/builder_accessors.dart

Issue 2746013003: [fasta] Add and correct even more offsets (Closed)
Patch Set: Removed formalParametersToken parameter Created 3 years, 9 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.builder_accessors; 5 library fasta.builder_accessors;
6 6
7 export 'frontend_accessors.dart' show wrapInvalid; 7 export 'frontend_accessors.dart' show wrapInvalid;
8 8
9 import 'frontend_accessors.dart' show Accessor; 9 import 'frontend_accessors.dart' show Accessor;
10 10
(...skipping 335 matching lines...) Expand 10 before | Expand all | Expand 10 after
346 if (builder == null) { 346 if (builder == null) {
347 return buildThrowNoSuchMethodError(arguments); 347 return buildThrowNoSuchMethodError(arguments);
348 } 348 }
349 if (builder.hasProblem) { 349 if (builder.hasProblem) {
350 result = helper.buildProblemExpression(builder, name.name); 350 result = helper.buildProblemExpression(builder, name.name);
351 } else { 351 } else {
352 Member target = builder.target; 352 Member target = builder.target;
353 if (target != null) { 353 if (target != null) {
354 if (target is Field) { 354 if (target is Field) {
355 result = buildMethodInvocation( 355 result = buildMethodInvocation(
356 new StaticGet(target), new Name("call"), arguments, charOffset, 356 new StaticGet(target),
357 new Name("call"),
358 arguments,
359 charOffset + (target.name?.name?.length ?? 0),
357 isNullAware: isNullAware); 360 isNullAware: isNullAware);
358 } else { 361 } else {
359 result = helper.buildStaticInvocation(target, arguments); 362 result = helper.buildStaticInvocation(target, arguments)
363 ..fileOffset = charOffset;
360 } 364 }
361 } else { 365 } else {
362 result = buildThrowNoSuchMethodError(arguments); 366 result = buildThrowNoSuchMethodError(arguments)
367 ..fileOffset = charOffset;
363 } 368 }
364 } 369 }
365 } else { 370 } else {
366 result = buildMethodInvocation( 371 result = buildMethodInvocation(
367 helper.toValue(receiver), name, arguments, charOffset, 372 helper.toValue(receiver), name, arguments, charOffset,
368 isNullAware: isNullAware); 373 isNullAware: isNullAware);
369 } 374 }
370 return result..fileOffset = charOffset; 375 return result;
371 } 376 }
372 377
373 Expression buildNullAwareAssignment(Expression value, DartType type, 378 Expression buildNullAwareAssignment(Expression value, DartType type,
374 {bool voidContext: false}) { 379 {bool voidContext: false}) {
375 return internalError("Unhandled"); 380 return internalError("Unhandled");
376 } 381 }
377 382
378 Expression buildCompoundAssignment( 383 Expression buildCompoundAssignment(
379 Name binaryOperator, Expression value, int charOffset, 384 Name binaryOperator, Expression value, int charOffset,
380 {bool voidContext: false, Procedure interfaceTarget}) { 385 {bool voidContext: false, Procedure interfaceTarget}) {
(...skipping 177 matching lines...) Expand 10 before | Expand all | Expand 10 after
558 helper, charOffset, receiver, name, getter, setter, null) 563 helper, charOffset, receiver, name, getter, setter, null)
559 : new PropertyAccessor.internal( 564 : new PropertyAccessor.internal(
560 helper, charOffset, receiver, name, getter, setter); 565 helper, charOffset, receiver, name, getter, setter);
561 } 566 }
562 } 567 }
563 } 568 }
564 569
565 class StaticAccessor extends kernel.StaticAccessor with BuilderAccessor { 570 class StaticAccessor extends kernel.StaticAccessor with BuilderAccessor {
566 final BuilderHelper helper; 571 final BuilderHelper helper;
567 572
568 final int charOffset;
569
570 StaticAccessor( 573 StaticAccessor(
571 this.helper, this.charOffset, Member readTarget, Member writeTarget) 574 this.helper, int charOffset, Member readTarget, Member writeTarget)
572 : super(readTarget, writeTarget) { 575 : super(readTarget, writeTarget, charOffset) {
573 assert(readTarget != null || writeTarget != null); 576 assert(readTarget != null || writeTarget != null);
574 } 577 }
575 578
576 String get plainNameForRead => (readTarget ?? writeTarget).name.name; 579 String get plainNameForRead => (readTarget ?? writeTarget).name.name;
577 580
578 Expression doInvocation(int charOffset, Arguments arguments) { 581 Expression doInvocation(int charOffset, Arguments arguments) {
579 if (readTarget == null || isFieldOrGetter(readTarget)) { 582 if (readTarget == null || isFieldOrGetter(readTarget)) {
580 return buildMethodInvocation( 583 return buildMethodInvocation(buildSimpleRead(), new Name("call"),
581 buildSimpleRead(), new Name("call"), arguments, charOffset); 584 arguments, charOffset + (readTarget?.name?.name?.length ?? 0));
582 } else { 585 } else {
583 return helper.buildStaticInvocation(readTarget, arguments) 586 return helper.buildStaticInvocation(readTarget, arguments)
584 ..fileOffset = charOffset; 587 ..fileOffset = charOffset;
585 } 588 }
586 } 589 }
587 590
588 toString() => "StaticAccessor()"; 591 toString() => "StaticAccessor()";
589 } 592 }
590 593
591 class SuperPropertyAccessor extends kernel.SuperPropertyAccessor 594 class SuperPropertyAccessor extends kernel.SuperPropertyAccessor
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after
653 buildSimpleRead(), new Name("call"), arguments, charOffset); 656 buildSimpleRead(), new Name("call"), arguments, charOffset);
654 } 657 }
655 658
656 toString() => "SuperIndexAccessor()"; 659 toString() => "SuperIndexAccessor()";
657 } 660 }
658 661
659 class ThisPropertyAccessor extends kernel.ThisPropertyAccessor 662 class ThisPropertyAccessor extends kernel.ThisPropertyAccessor
660 with BuilderAccessor { 663 with BuilderAccessor {
661 final BuilderHelper helper; 664 final BuilderHelper helper;
662 665
663 final int charOffset;
664
665 ThisPropertyAccessor( 666 ThisPropertyAccessor(
666 this.helper, this.charOffset, Name name, Member getter, Member setter) 667 this.helper, int charOffset, Name name, Member getter, Member setter)
667 : super(name, getter, setter); 668 : super(name, getter, setter, charOffset);
668 669
669 String get plainNameForRead => name.name; 670 String get plainNameForRead => name.name;
670 671
671 bool get isThisPropertyAccessor => true; 672 bool get isThisPropertyAccessor => true;
672 673
673 Expression doInvocation(int charOffset, Arguments arguments) { 674 Expression doInvocation(int charOffset, Arguments arguments) {
674 Member interfaceTarget = getter; 675 Member interfaceTarget = getter;
675 if (interfaceTarget is Field) { 676 if (interfaceTarget is Field) {
676 // TODO(ahe): In strong mode we should probably rewrite this to 677 // TODO(ahe): In strong mode we should probably rewrite this to
677 // `this.name.call(arguments)`. 678 // `this.name.call(arguments)`.
(...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after
756 buildIsNull(new VariableGet(variable)), 757 buildIsNull(new VariableGet(variable)),
757 new NullLiteral(), 758 new NullLiteral(),
758 new MethodInvocation(new VariableGet(variable), name, arguments) 759 new MethodInvocation(new VariableGet(variable), name, arguments)
759 ..fileOffset = charOffset, 760 ..fileOffset = charOffset,
760 const DynamicType())); 761 const DynamicType()));
761 } else { 762 } else {
762 return new MethodInvocation(receiver, name, arguments) 763 return new MethodInvocation(receiver, name, arguments)
763 ..fileOffset = charOffset; 764 ..fileOffset = charOffset;
764 } 765 }
765 } 766 }
OLDNEW
« no previous file with comments | « pkg/front_end/lib/src/fasta/kernel/body_builder.dart ('k') | pkg/front_end/lib/src/fasta/kernel/frontend_accessors.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698