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

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

Issue 2704143003: Implement super operators. (Closed)
Patch Set: 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 // 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 7 export 'frontend_accessors.dart' show
8 wrapInvalid; 8 wrapInvalid;
9 9
10 import 'frontend_accessors.dart' show 10 import 'frontend_accessors.dart' show
11 Accessor; 11 Accessor;
12 12
13 import 'package:kernel/ast.dart'; 13 import 'package:kernel/ast.dart';
14 14
15 import 'package:kernel/core_types.dart' show 15 import 'package:kernel/core_types.dart' show
16 CoreTypes; 16 CoreTypes;
17 17
18 import '../errors.dart' show 18 import '../errors.dart' show
19 InputError, 19 InputError,
20 internalError; 20 internalError;
21 21
22 import 'frontend_accessors.dart' as kernel show 22 import 'frontend_accessors.dart' as kernel show
23 IndexAccessor, 23 IndexAccessor,
24 NullAwarePropertyAccessor, 24 NullAwarePropertyAccessor,
25 PropertyAccessor, 25 PropertyAccessor,
26 StaticAccessor, 26 StaticAccessor,
27 SuperIndexAccessor,
27 SuperPropertyAccessor, 28 SuperPropertyAccessor,
28 ThisIndexAccessor, 29 ThisIndexAccessor,
29 ThisPropertyAccessor, 30 ThisPropertyAccessor,
30 VariableAccessor; 31 VariableAccessor;
31 32
32 import 'frontend_accessors.dart' show 33 import 'frontend_accessors.dart' show
33 buildIsNull, 34 buildIsNull,
34 makeLet; 35 makeLet;
35 36
36 import 'kernel_builder.dart' show 37 import 'kernel_builder.dart' show
(...skipping 580 matching lines...) Expand 10 before | Expand all | Expand 10 after
617 String get plainNameForWrite => "[]="; 618 String get plainNameForWrite => "[]=";
618 619
619 Expression doInvocation(int charOffset, Arguments arguments) { 620 Expression doInvocation(int charOffset, Arguments arguments) {
620 return buildMethodInvocation(buildSimpleRead(), new Name("call"), arguments, 621 return buildMethodInvocation(buildSimpleRead(), new Name("call"), arguments,
621 charOffset); 622 charOffset);
622 } 623 }
623 624
624 toString() => "ThisIndexAccessor()"; 625 toString() => "ThisIndexAccessor()";
625 } 626 }
626 627
628 class SuperIndexAccessor
629 extends kernel.SuperIndexAccessor with BuilderAccessor {
630 final BuilderHelper helper;
631
632 final int charOffset;
633
634 SuperIndexAccessor(this.helper, this.charOffset, Expression index,
635 Member getter, Member setter)
636 : super(index, getter, setter);
637
638 String get plainNameForRead => "[]";
639
640 String get plainNameForWrite => "[]=";
641
642 Expression doInvocation(int charOffset, Arguments arguments) {
643 return buildMethodInvocation(buildSimpleRead(), new Name("call"), arguments,
644 charOffset);
645 }
646
647 toString() => "SuperIndexAccessor()";
648 }
649
627 class ThisPropertyAccessor extends kernel.ThisPropertyAccessor 650 class ThisPropertyAccessor extends kernel.ThisPropertyAccessor
628 with BuilderAccessor { 651 with BuilderAccessor {
629 final BuilderHelper helper; 652 final BuilderHelper helper;
630 653
631 final int charOffset; 654 final int charOffset;
632 655
633 ThisPropertyAccessor(this.helper, this.charOffset, Name name, Member getter, 656 ThisPropertyAccessor(this.helper, this.charOffset, Name name, Member getter,
634 Member setter) 657 Member setter)
635 : super(name, getter, setter); 658 : super(name, getter, setter);
636 659
(...skipping 87 matching lines...) Expand 10 before | Expand all | Expand 10 after
724 buildIsNull(new VariableGet(variable)), 747 buildIsNull(new VariableGet(variable)),
725 new NullLiteral(), 748 new NullLiteral(),
726 new MethodInvocation(new VariableGet(variable), name, arguments) 749 new MethodInvocation(new VariableGet(variable), name, arguments)
727 ..fileOffset = charOffset, 750 ..fileOffset = charOffset,
728 const DynamicType())); 751 const DynamicType()));
729 } else { 752 } else {
730 return new MethodInvocation(receiver, name, arguments) 753 return new MethodInvocation(receiver, name, arguments)
731 ..fileOffset = charOffset; 754 ..fileOffset = charOffset;
732 } 755 }
733 } 756 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698