@@ -510,13 +510,14 @@ class PropertyAccessGenerator extends Generator {
510510
511511 @override
512512 Expression buildSimpleRead () {
513- return _forest.createPropertyGet (fileOffset, receiver, name);
513+ return _forest.createPropertyGet (fileOffset, receiver, name,
514+ isNullAware: false );
514515 }
515516
516517 @override
517518 Expression buildAssignment (Expression value, {bool voidContext = false }) {
518519 return _helper.forest.createPropertySet (fileOffset, receiver, name, value,
519- forEffect: voidContext);
520+ forEffect: voidContext, isNullAware : false );
520521 }
521522
522523 @override
@@ -553,7 +554,8 @@ class PropertyAccessGenerator extends Generator {
553554 _helper.createVariableDeclarationForValue (receiver);
554555 VariableDeclarationImpl read = _helper.createVariableDeclarationForValue (
555556 _forest.createPropertyGet (fileOffset,
556- _helper.createVariableGet (variable, receiver.fileOffset), name));
557+ _helper.createVariableGet (variable, receiver.fileOffset), name,
558+ isNullAware: false ));
557559 Expression binary = _helper.forest.createBinary (offset,
558560 _helper.createVariableGet (read, fileOffset), binaryOperator, value);
559561 VariableDeclarationImpl write = _helper.createVariableDeclarationForValue (
@@ -562,7 +564,8 @@ class PropertyAccessGenerator extends Generator {
562564 _helper.createVariableGet (variable, receiver.fileOffset),
563565 name,
564566 binary,
565- forEffect: true ));
567+ forEffect: true ,
568+ isNullAware: false ));
566569 return new PropertyPostIncDec (variable, read, write)..fileOffset = offset;
567570 }
568571
@@ -654,7 +657,8 @@ class ThisPropertyAccessGenerator extends Generator {
654657 }
655658
656659 Expression _createRead () {
657- return _forest.createPropertyGet (fileOffset, _thisExpression, name);
660+ return _forest.createPropertyGet (fileOffset, _thisExpression, name,
661+ isNullAware: false );
658662 }
659663
660664 @override
@@ -666,7 +670,7 @@ class ThisPropertyAccessGenerator extends Generator {
666670 {required bool forEffect}) {
667671 return _helper.forest.createPropertySet (
668672 fileOffset, _thisExpression, name, value,
669- forEffect: forEffect);
673+ forEffect: forEffect, isNullAware : false );
670674 }
671675
672676 @override
@@ -730,17 +734,13 @@ class ThisPropertyAccessGenerator extends Generator {
730734}
731735
732736class NullAwarePropertyAccessGenerator extends Generator {
733- final VariableDeclaration receiver;
734-
735- final Expression receiverExpression;
737+ final Expression receiver;
736738
737739 final Name name;
738740
739- NullAwarePropertyAccessGenerator (ExpressionGeneratorHelper helper,
740- Token token, this .receiverExpression, this .name)
741- : this .receiver =
742- helper.createVariableDeclarationForValue (receiverExpression),
743- super (helper, token);
741+ NullAwarePropertyAccessGenerator (
742+ ExpressionGeneratorHelper helper, Token token, this .receiver, this .name)
743+ : super (helper, token);
744744
745745 @override
746746 // Coverage-ignore(suite): Not run.
@@ -752,37 +752,20 @@ class NullAwarePropertyAccessGenerator extends Generator {
752752
753753 @override
754754 Expression buildSimpleRead () {
755- VariableDeclarationImpl variable =
756- _helper.createVariableDeclarationForValue (receiverExpression);
757- Expression read = _forest.createPropertyGet (
758- fileOffset,
759- _helper.createVariableGet (variable, receiverExpression.fileOffset,
760- forNullGuardedAccess: true ),
761- name);
762- return new NullAwarePropertyGet (variable, read)
763- ..fileOffset = receiverExpression.fileOffset;
755+ return _forest.createPropertyGet (fileOffset, receiver, name,
756+ isNullAware: true );
764757 }
765758
766759 @override
767760 Expression buildAssignment (Expression value, {bool voidContext = false }) {
768- VariableDeclarationImpl variable =
769- _helper.createVariableDeclarationForValue (receiverExpression);
770- Expression read = _helper.forest.createPropertySet (
771- fileOffset,
772- _helper.createVariableGet (variable, receiverExpression.fileOffset,
773- forNullGuardedAccess: true ),
774- name,
775- value,
776- forEffect: voidContext,
777- readOnlyReceiver: true );
778- return new NullAwarePropertySet (variable, read)
779- ..fileOffset = receiverExpression.fileOffset;
761+ return _forest.createPropertySet (fileOffset, receiver, name, value,
762+ forEffect: voidContext, isNullAware: true );
780763 }
781764
782765 @override
783766 Expression buildIfNullAssignment (Expression value, DartType type, int offset,
784767 {bool voidContext = false }) {
785- return new NullAwareIfNullSet (receiverExpression , name, value,
768+ return new NullAwareIfNullSet (receiver , name, value,
786769 forEffect: voidContext,
787770 readOffset: fileOffset,
788771 testOffset: offset,
@@ -796,8 +779,7 @@ class NullAwarePropertyAccessGenerator extends Generator {
796779 bool voidContext = false ,
797780 bool isPreIncDec = false ,
798781 bool isPostIncDec = false }) {
799- return new NullAwareCompoundSet (
800- receiverExpression, name, binaryOperator, value,
782+ return new NullAwareCompoundSet (receiver, name, binaryOperator, value,
801783 readOffset: fileOffset,
802784 binaryOffset: offset,
803785 writeOffset: fileOffset,
@@ -834,8 +816,6 @@ class NullAwarePropertyAccessGenerator extends Generator {
834816 NameSystem syntheticNames = new NameSystem ();
835817 sink.write (", receiver: " );
836818 printNodeOn (receiver, sink, syntheticNames: syntheticNames);
837- sink.write (", receiverExpression: " );
838- printNodeOn (receiverExpression, sink, syntheticNames: syntheticNames);
839819 sink.write (", name: " );
840820 sink.write (name.text);
841821 }
@@ -989,43 +969,14 @@ class IndexedAccessGenerator extends Generator {
989969
990970 @override
991971 Expression buildSimpleRead () {
992- VariableDeclarationImpl ? variable;
993- Expression receiverValue;
994- if (isNullAware) {
995- variable = _helper.createVariableDeclarationForValue (receiver);
996- receiverValue = _helper.createVariableGet (variable, fileOffset,
997- forNullGuardedAccess: true );
998- } else {
999- receiverValue = receiver;
1000- }
1001- Expression result =
1002- _forest.createIndexGet (fileOffset, receiverValue, index);
1003- if (isNullAware) {
1004- result = new NullAwareMethodInvocation (variable! , result)
1005- ..fileOffset = fileOffset;
1006- }
1007- return result;
972+ return _forest.createIndexGet (fileOffset, receiver, index,
973+ isNullAware: isNullAware);
1008974 }
1009975
1010976 @override
1011977 Expression buildAssignment (Expression value, {bool voidContext = false }) {
1012- VariableDeclarationImpl ? variable;
1013- Expression receiverValue;
1014- if (isNullAware) {
1015- variable = _helper.createVariableDeclarationForValue (receiver);
1016- receiverValue = _helper.createVariableGet (variable, fileOffset,
1017- forNullGuardedAccess: true );
1018- } else {
1019- receiverValue = receiver;
1020- }
1021- Expression result = _forest.createIndexSet (
1022- fileOffset, receiverValue, index, value,
1023- forEffect: voidContext);
1024- if (isNullAware) {
1025- result = new NullAwareMethodInvocation (variable! , result)
1026- ..fileOffset = fileOffset;
1027- }
1028- return result;
978+ return _forest.createIndexSet (fileOffset, receiver, index, value,
979+ forEffect: voidContext, isNullAware: isNullAware);
1029980 }
1030981
1031982 @override
@@ -1157,14 +1108,15 @@ class ThisIndexedAccessGenerator extends Generator {
11571108 @override
11581109 Expression buildSimpleRead () {
11591110 Expression receiver = _helper.forest.createThisExpression (fileOffset);
1160- return _forest.createIndexGet (fileOffset, receiver, index);
1111+ return _forest.createIndexGet (fileOffset, receiver, index,
1112+ isNullAware: isNullAware);
11611113 }
11621114
11631115 @override
11641116 Expression buildAssignment (Expression value, {bool voidContext = false }) {
11651117 Expression receiver = _helper.forest.createThisExpression (fileOffset);
11661118 return _forest.createIndexSet (fileOffset, receiver, index, value,
1167- forEffect: voidContext);
1119+ forEffect: voidContext, isNullAware : isNullAware );
11681120 }
11691121
11701122 @override
0 commit comments