Revert "[cfe] Use `void` for let-expressions for extension property set"

This reverts commit a5fda592195b0bc42cadf1669df04502912c053c.

Reason for revert: breaks calling extension setters with `?.`, see b/241059207

Original change's description:
> [cfe] Use `void` for let-expressions for extension property set
>
> This pipes the expression type for a generated property setter, such
> that synthesized variables in let expressions created for the generated
> setter expression are typed correctly.
>
> Before this change a let variable created for an extension property set
> would use the value type even though the extension property setter is
> method with a void return type.
>
> Change-Id: I1e7d31eaf1410bb06d55e2845403865e0c7af452
> Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/252742
> Commit-Queue: Johnni Winther <johnniwinther@google.com>
> Reviewed-by: Aske Simon Christensen <askesc@google.com>

TBR=johnniwinther@google.com,askesc@google.com

Change-Id: Iaafd12833939cbd38e09787fcdb5a4c78a964656
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/253440
Reviewed-by: Johnni Winther <johnniwinther@google.com>
Commit-Queue: Ilya Yanok <yanok@google.com>
Reviewed-by: Ilya Yanok <yanok@google.com>
diff --git a/pkg/front_end/lib/src/fasta/type_inference/inference_visitor.dart b/pkg/front_end/lib/src/fasta/type_inference/inference_visitor.dart
index 1c59227..5926dff 100644
--- a/pkg/front_end/lib/src/fasta/type_inference/inference_visitor.dart
+++ b/pkg/front_end/lib/src/fasta/type_inference/inference_visitor.dart
@@ -3303,16 +3303,9 @@
     DartType binaryType = binaryResult.inferredType;
     Expression binary = binaryResult.expression;
 
-    ExpressionInferenceResult writeResult = _computePropertySet(
-        node.writeOffset,
-        writeReceiver,
-        receiverType,
-        node.propertyName,
-        writeTarget,
-        binary,
-        valueType: binaryType,
-        forEffect: node.forEffect);
-    Expression write = writeResult.expression;
+    Expression write = _computePropertySet(node.writeOffset, writeReceiver,
+        receiverType, node.propertyName, writeTarget, binary,
+        valueType: binaryType, forEffect: node.forEffect);
 
     Expression replacement = write;
     if (receiverVariable != null) {
@@ -3366,16 +3359,9 @@
     Expression rhs = rhsResult.expression;
 
     DartType writeType = rhsResult.inferredType;
-    ExpressionInferenceResult writeResult = _computePropertySet(
-        node.writeOffset,
-        writeReceiver,
-        receiverType,
-        node.propertyName,
-        writeTarget,
-        rhs,
-        forEffect: node.forEffect,
-        valueType: writeType);
-    Expression write = writeResult.expression;
+    Expression write = _computePropertySet(node.writeOffset, writeReceiver,
+        receiverType, node.propertyName, writeTarget, rhs,
+        forEffect: node.forEffect, valueType: writeType);
 
     DartType nonNullableReadType = readType.toNonNull();
     DartType inferredType = typeSchemaEnvironment.getStandardUpperBound(
@@ -5030,24 +5016,20 @@
   /// If [forEffect] the resulting expression is ensured to return the [value]
   /// of static type [valueType]. This is needed for extension setters which are
   /// encoded as static method calls that do not implicitly return the value.
-  ///
-  /// The returned [ExpressionInferenceResult] holds the generated expression
-  /// and the type of this expression. Normally this is the [valueType] but
-  /// for setter extension for effect, the generated expression has type
-  /// `void`.
-  ExpressionInferenceResult _computePropertySet(
+  Expression _computePropertySet(
       int fileOffset,
       Expression receiver,
       DartType receiverType,
       Name propertyName,
       ObjectAccessTarget writeTarget,
       Expression value,
-      {required DartType valueType,
+      {DartType? valueType,
       required bool forEffect}) {
     // ignore: unnecessary_null_comparison
     assert(forEffect != null);
+    assert(forEffect || valueType != null,
+        "No value type provided for property set needed for value.");
     Expression write;
-    DartType writeType = valueType;
     switch (writeTarget.kind) {
       case ObjectAccessTargetKind.missing:
         write = createMissingPropertySet(
@@ -5069,10 +5051,8 @@
                   types: writeTarget.inferredExtensionTypeArguments)
                 ..fileOffset = fileOffset)
             ..fileOffset = fileOffset;
-          // The generate invocation has a void return type.
-          writeType = const VoidType();
         } else {
-          VariableDeclaration valueVariable = createVariable(value, valueType);
+          VariableDeclaration valueVariable = createVariable(value, valueType!);
           VariableDeclaration assignmentVariable = createVariable(
               new StaticInvocation(
                   writeTarget.member as Procedure,
@@ -5126,18 +5106,16 @@
           ..fileOffset = fileOffset;
         break;
     }
-    Expression result;
     if (!isTopLevel && writeTarget.isNullable) {
-      result = helper.wrapInProblem(
+      return helper.wrapInProblem(
           write,
           templateNullablePropertyAccessError.withArguments(
               propertyName.text, receiverType, isNonNullableByDefault),
           write.fileOffset,
           propertyName.text.length);
-    } else {
-      result = write;
     }
-    return new ExpressionInferenceResult(writeType, result);
+
+    return write;
   }
 
   ExpressionInferenceResult visitCompoundIndexSet(
@@ -5388,17 +5366,9 @@
       valueExpression = createVariableGet(valueVariable);
     }
 
-    ExpressionInferenceResult writeResult = _computePropertySet(
-        node.writeOffset,
-        writeReceiver,
-        nonNullReceiverType,
-        node.propertyName,
-        writeTarget,
-        valueExpression,
-        valueType: binaryType,
+    Expression write = _computePropertySet(node.writeOffset, writeReceiver,
+        nonNullReceiverType, node.propertyName, writeTarget, valueExpression,
         forEffect: true);
-    Expression write = writeResult.expression;
-    DartType writeType = writeResult.inferredType;
 
     DartType resultType = node.forPostIncDec ? readType : binaryType;
 
@@ -5430,7 +5400,8 @@
       assert(leftVariable != null);
       assert(valueVariable == null);
 
-      VariableDeclaration writeVariable = createVariable(write, writeType);
+      VariableDeclaration writeVariable =
+          createVariable(write, const VoidType());
       action = createLet(leftVariable!,
           createLet(writeVariable, createVariableGet(leftVariable)));
     } else {
@@ -5823,14 +5794,12 @@
     Expression rhs = rhsResult.expression;
     DartType rhsType = rhsResult.inferredType;
 
-    ExpressionInferenceResult replacementResult = _computePropertySet(
+    Expression replacement = _computePropertySet(
         node.fileOffset, receiver, receiverType, node.name, target, rhs,
         valueType: rhsType, forEffect: node.forEffect);
-    Expression replacement = replacementResult.expression;
-    DartType replacementType = replacementResult.inferredType;
 
     return createNullAwareExpressionInferenceResult(
-        replacementType, replacement, nullAwareGuards);
+        rhsType, replacement, nullAwareGuards);
   }
 
   ExpressionInferenceResult visitAugmentSuperSet(
@@ -5856,13 +5825,11 @@
       Expression rhs = rhsResult.expression;
       DartType rhsType = rhsResult.inferredType;
 
-      ExpressionInferenceResult replacementResult = _computePropertySet(
+      Expression replacement = _computePropertySet(
           node.fileOffset, receiver, receiverType, member.name, target, rhs,
           valueType: rhsType, forEffect: node.forEffect);
-      Expression replacement = replacementResult.expression;
-      DartType replacementType = replacementResult.inferredType;
 
-      return new ExpressionInferenceResult(replacementType, replacement);
+      return new ExpressionInferenceResult(rhsType, replacement);
     } else {
       // TODO(johnniwinther): Handle augmentation of field with inferred types.
       TypeInferenceEngine.resolveInferenceNode(member, classHierarchy);
@@ -5924,16 +5891,9 @@
     valueResult = ensureAssignableResult(valueType, valueResult);
     Expression value = valueResult.expression;
 
-    ExpressionInferenceResult writeResult = _computePropertySet(
-        node.writeOffset,
-        writeReceiver,
-        nonNullReceiverType,
-        node.name,
-        writeTarget,
-        value,
-        valueType: valueResult.inferredType,
-        forEffect: node.forEffect);
-    Expression write = writeResult.expression;
+    Expression write = _computePropertySet(node.writeOffset, writeReceiver,
+        nonNullReceiverType, node.name, writeTarget, value,
+        valueType: valueResult.inferredType, forEffect: node.forEffect);
 
     flowAnalysis.ifNullExpression_end();
 
diff --git a/pkg/front_end/testcases/extensions/compounds.dart.weak.expect b/pkg/front_end/testcases/extensions/compounds.dart.weak.expect
index ec8c0ae..d1424bc 100644
--- a/pkg/front_end/testcases/extensions/compounds.dart.weak.expect
+++ b/pkg/front_end/testcases/extensions/compounds.dart.weak.expect
@@ -242,8 +242,8 @@
   self::expect(n0, let final self::Class #t83 = v in let final self::Number #t84 = self::NumberExtension|-(self::ClassExtension|get#property(#t83), n1) in let final void #t85 = self::ClassExtension|set#property(#t83, #t84) in #t84);
   self::expect(n1, let final self::Class #t86 = v in let final self::Number #t87 = self::NumberExtension|+(self::ClassExtension|get#property(#t86), 1) in let final void #t88 = self::ClassExtension|set#property(#t86, #t87) in #t87);
   self::expect(n0, let final self::Class #t89 = v in let final self::Number #t90 = self::NumberExtension|-(self::ClassExtension|get#property(#t89), 1) in let final void #t91 = self::ClassExtension|set#property(#t89, #t90) in #t90);
-  self::expect(n0, let final self::Class #t92 = v in let final self::Number #t93 = self::ClassExtension|get#property(#t92) in let final void #t94 = self::ClassExtension|set#property(#t92, self::NumberExtension|+(#t93, 1)) in #t93);
-  self::expect(n1, let final self::Class #t95 = v in let final self::Number #t96 = self::ClassExtension|get#property(#t95) in let final void #t97 = self::ClassExtension|set#property(#t95, self::NumberExtension|-(#t96, 1)) in #t96);
+  self::expect(n0, let final self::Class #t92 = v in let final self::Number #t93 = self::ClassExtension|get#property(#t92) in let final self::Number #t94 = self::ClassExtension|set#property(#t92, self::NumberExtension|+(#t93, 1)) in #t93);
+  self::expect(n1, let final self::Class #t95 = v in let final self::Number #t96 = self::ClassExtension|get#property(#t95) in let final self::Number #t97 = self::ClassExtension|set#property(#t95, self::NumberExtension|-(#t96, 1)) in #t96);
   self::expect(n0, self::ClassExtension|get#property(v));
   self::expect(n0, self::ClassExtension|get#property(v));
   let final self::Class #t98 = v in self::ClassExtension|set#property(#t98, self::NumberExtension|+(self::ClassExtension|get#property(#t98), n1));
@@ -308,8 +308,8 @@
   self::expect(n0, let final self::IntClass #t145 = v in let final core::int #t146 = self::IntClassExtension|get#property(#t145).{core::num::-}(n1){(core::num) → core::int} in let final void #t147 = self::IntClassExtension|set#property(#t145, #t146) in #t146);
   self::expect(n1, let final self::IntClass #t148 = v in let final core::int #t149 = self::IntClassExtension|get#property(#t148).{core::num::+}(1){(core::num) → core::int} in let final void #t150 = self::IntClassExtension|set#property(#t148, #t149) in #t149);
   self::expect(n0, let final self::IntClass #t151 = v in let final core::int #t152 = self::IntClassExtension|get#property(#t151).{core::num::-}(1){(core::num) → core::int} in let final void #t153 = self::IntClassExtension|set#property(#t151, #t152) in #t152);
-  self::expect(n0, let final self::IntClass #t154 = v in let final core::int #t155 = self::IntClassExtension|get#property(#t154) in let final void #t156 = self::IntClassExtension|set#property(#t154, #t155.{core::num::+}(1){(core::num) → core::int}) in #t155);
-  self::expect(n1, let final self::IntClass #t157 = v in let final core::int #t158 = self::IntClassExtension|get#property(#t157) in let final void #t159 = self::IntClassExtension|set#property(#t157, #t158.{core::num::-}(1){(core::num) → core::int}) in #t158);
+  self::expect(n0, let final self::IntClass #t154 = v in let final core::int #t155 = self::IntClassExtension|get#property(#t154) in let final core::int #t156 = self::IntClassExtension|set#property(#t154, #t155.{core::num::+}(1){(core::num) → core::int}) in #t155);
+  self::expect(n1, let final self::IntClass #t157 = v in let final core::int #t158 = self::IntClassExtension|get#property(#t157) in let final core::int #t159 = self::IntClassExtension|set#property(#t157, #t158.{core::num::-}(1){(core::num) → core::int}) in #t158);
   self::expect(n0, self::IntClassExtension|get#property(v));
   self::expect(n0, self::IntClassExtension|get#property(v));
   let final self::IntClass #t160 = v in self::IntClassExtension|set#property(#t160, self::IntClassExtension|get#property(#t160).{core::num::+}(n1){(core::num) → core::int});
diff --git a/pkg/front_end/testcases/extensions/compounds.dart.weak.modular.expect b/pkg/front_end/testcases/extensions/compounds.dart.weak.modular.expect
index ec8c0ae..d1424bc 100644
--- a/pkg/front_end/testcases/extensions/compounds.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/extensions/compounds.dart.weak.modular.expect
@@ -242,8 +242,8 @@
   self::expect(n0, let final self::Class #t83 = v in let final self::Number #t84 = self::NumberExtension|-(self::ClassExtension|get#property(#t83), n1) in let final void #t85 = self::ClassExtension|set#property(#t83, #t84) in #t84);
   self::expect(n1, let final self::Class #t86 = v in let final self::Number #t87 = self::NumberExtension|+(self::ClassExtension|get#property(#t86), 1) in let final void #t88 = self::ClassExtension|set#property(#t86, #t87) in #t87);
   self::expect(n0, let final self::Class #t89 = v in let final self::Number #t90 = self::NumberExtension|-(self::ClassExtension|get#property(#t89), 1) in let final void #t91 = self::ClassExtension|set#property(#t89, #t90) in #t90);
-  self::expect(n0, let final self::Class #t92 = v in let final self::Number #t93 = self::ClassExtension|get#property(#t92) in let final void #t94 = self::ClassExtension|set#property(#t92, self::NumberExtension|+(#t93, 1)) in #t93);
-  self::expect(n1, let final self::Class #t95 = v in let final self::Number #t96 = self::ClassExtension|get#property(#t95) in let final void #t97 = self::ClassExtension|set#property(#t95, self::NumberExtension|-(#t96, 1)) in #t96);
+  self::expect(n0, let final self::Class #t92 = v in let final self::Number #t93 = self::ClassExtension|get#property(#t92) in let final self::Number #t94 = self::ClassExtension|set#property(#t92, self::NumberExtension|+(#t93, 1)) in #t93);
+  self::expect(n1, let final self::Class #t95 = v in let final self::Number #t96 = self::ClassExtension|get#property(#t95) in let final self::Number #t97 = self::ClassExtension|set#property(#t95, self::NumberExtension|-(#t96, 1)) in #t96);
   self::expect(n0, self::ClassExtension|get#property(v));
   self::expect(n0, self::ClassExtension|get#property(v));
   let final self::Class #t98 = v in self::ClassExtension|set#property(#t98, self::NumberExtension|+(self::ClassExtension|get#property(#t98), n1));
@@ -308,8 +308,8 @@
   self::expect(n0, let final self::IntClass #t145 = v in let final core::int #t146 = self::IntClassExtension|get#property(#t145).{core::num::-}(n1){(core::num) → core::int} in let final void #t147 = self::IntClassExtension|set#property(#t145, #t146) in #t146);
   self::expect(n1, let final self::IntClass #t148 = v in let final core::int #t149 = self::IntClassExtension|get#property(#t148).{core::num::+}(1){(core::num) → core::int} in let final void #t150 = self::IntClassExtension|set#property(#t148, #t149) in #t149);
   self::expect(n0, let final self::IntClass #t151 = v in let final core::int #t152 = self::IntClassExtension|get#property(#t151).{core::num::-}(1){(core::num) → core::int} in let final void #t153 = self::IntClassExtension|set#property(#t151, #t152) in #t152);
-  self::expect(n0, let final self::IntClass #t154 = v in let final core::int #t155 = self::IntClassExtension|get#property(#t154) in let final void #t156 = self::IntClassExtension|set#property(#t154, #t155.{core::num::+}(1){(core::num) → core::int}) in #t155);
-  self::expect(n1, let final self::IntClass #t157 = v in let final core::int #t158 = self::IntClassExtension|get#property(#t157) in let final void #t159 = self::IntClassExtension|set#property(#t157, #t158.{core::num::-}(1){(core::num) → core::int}) in #t158);
+  self::expect(n0, let final self::IntClass #t154 = v in let final core::int #t155 = self::IntClassExtension|get#property(#t154) in let final core::int #t156 = self::IntClassExtension|set#property(#t154, #t155.{core::num::+}(1){(core::num) → core::int}) in #t155);
+  self::expect(n1, let final self::IntClass #t157 = v in let final core::int #t158 = self::IntClassExtension|get#property(#t157) in let final core::int #t159 = self::IntClassExtension|set#property(#t157, #t158.{core::num::-}(1){(core::num) → core::int}) in #t158);
   self::expect(n0, self::IntClassExtension|get#property(v));
   self::expect(n0, self::IntClassExtension|get#property(v));
   let final self::IntClass #t160 = v in self::IntClassExtension|set#property(#t160, self::IntClassExtension|get#property(#t160).{core::num::+}(n1){(core::num) → core::int});
diff --git a/pkg/front_end/testcases/extensions/compounds.dart.weak.transformed.expect b/pkg/front_end/testcases/extensions/compounds.dart.weak.transformed.expect
index ec8c0ae..d1424bc 100644
--- a/pkg/front_end/testcases/extensions/compounds.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/extensions/compounds.dart.weak.transformed.expect
@@ -242,8 +242,8 @@
   self::expect(n0, let final self::Class #t83 = v in let final self::Number #t84 = self::NumberExtension|-(self::ClassExtension|get#property(#t83), n1) in let final void #t85 = self::ClassExtension|set#property(#t83, #t84) in #t84);
   self::expect(n1, let final self::Class #t86 = v in let final self::Number #t87 = self::NumberExtension|+(self::ClassExtension|get#property(#t86), 1) in let final void #t88 = self::ClassExtension|set#property(#t86, #t87) in #t87);
   self::expect(n0, let final self::Class #t89 = v in let final self::Number #t90 = self::NumberExtension|-(self::ClassExtension|get#property(#t89), 1) in let final void #t91 = self::ClassExtension|set#property(#t89, #t90) in #t90);
-  self::expect(n0, let final self::Class #t92 = v in let final self::Number #t93 = self::ClassExtension|get#property(#t92) in let final void #t94 = self::ClassExtension|set#property(#t92, self::NumberExtension|+(#t93, 1)) in #t93);
-  self::expect(n1, let final self::Class #t95 = v in let final self::Number #t96 = self::ClassExtension|get#property(#t95) in let final void #t97 = self::ClassExtension|set#property(#t95, self::NumberExtension|-(#t96, 1)) in #t96);
+  self::expect(n0, let final self::Class #t92 = v in let final self::Number #t93 = self::ClassExtension|get#property(#t92) in let final self::Number #t94 = self::ClassExtension|set#property(#t92, self::NumberExtension|+(#t93, 1)) in #t93);
+  self::expect(n1, let final self::Class #t95 = v in let final self::Number #t96 = self::ClassExtension|get#property(#t95) in let final self::Number #t97 = self::ClassExtension|set#property(#t95, self::NumberExtension|-(#t96, 1)) in #t96);
   self::expect(n0, self::ClassExtension|get#property(v));
   self::expect(n0, self::ClassExtension|get#property(v));
   let final self::Class #t98 = v in self::ClassExtension|set#property(#t98, self::NumberExtension|+(self::ClassExtension|get#property(#t98), n1));
@@ -308,8 +308,8 @@
   self::expect(n0, let final self::IntClass #t145 = v in let final core::int #t146 = self::IntClassExtension|get#property(#t145).{core::num::-}(n1){(core::num) → core::int} in let final void #t147 = self::IntClassExtension|set#property(#t145, #t146) in #t146);
   self::expect(n1, let final self::IntClass #t148 = v in let final core::int #t149 = self::IntClassExtension|get#property(#t148).{core::num::+}(1){(core::num) → core::int} in let final void #t150 = self::IntClassExtension|set#property(#t148, #t149) in #t149);
   self::expect(n0, let final self::IntClass #t151 = v in let final core::int #t152 = self::IntClassExtension|get#property(#t151).{core::num::-}(1){(core::num) → core::int} in let final void #t153 = self::IntClassExtension|set#property(#t151, #t152) in #t152);
-  self::expect(n0, let final self::IntClass #t154 = v in let final core::int #t155 = self::IntClassExtension|get#property(#t154) in let final void #t156 = self::IntClassExtension|set#property(#t154, #t155.{core::num::+}(1){(core::num) → core::int}) in #t155);
-  self::expect(n1, let final self::IntClass #t157 = v in let final core::int #t158 = self::IntClassExtension|get#property(#t157) in let final void #t159 = self::IntClassExtension|set#property(#t157, #t158.{core::num::-}(1){(core::num) → core::int}) in #t158);
+  self::expect(n0, let final self::IntClass #t154 = v in let final core::int #t155 = self::IntClassExtension|get#property(#t154) in let final core::int #t156 = self::IntClassExtension|set#property(#t154, #t155.{core::num::+}(1){(core::num) → core::int}) in #t155);
+  self::expect(n1, let final self::IntClass #t157 = v in let final core::int #t158 = self::IntClassExtension|get#property(#t157) in let final core::int #t159 = self::IntClassExtension|set#property(#t157, #t158.{core::num::-}(1){(core::num) → core::int}) in #t158);
   self::expect(n0, self::IntClassExtension|get#property(v));
   self::expect(n0, self::IntClassExtension|get#property(v));
   let final self::IntClass #t160 = v in self::IntClassExtension|set#property(#t160, self::IntClassExtension|get#property(#t160).{core::num::+}(n1){(core::num) → core::int});
diff --git a/pkg/front_end/testcases/extensions/extension_setter.dart.weak.expect b/pkg/front_end/testcases/extensions/extension_setter.dart.weak.expect
index 7d9e099..049dae0 100644
--- a/pkg/front_end/testcases/extensions/extension_setter.dart.weak.expect
+++ b/pkg/front_end/testcases/extensions/extension_setter.dart.weak.expect
@@ -1,23 +1,4 @@
 library;
-//
-// Problems in library:
-//
-// pkg/front_end/testcases/extensions/extension_setter.dart:152:6: Error: This expression has type 'void' and can't be used.
-//   c?.setterWithReturn = 1;
-//      ^
-//
-// pkg/front_end/testcases/extensions/extension_setter.dart:154:6: Error: This expression has type 'void' and can't be used.
-//   c?.setterWithReturn = -2;
-//      ^
-//
-// pkg/front_end/testcases/extensions/extension_setter.dart:169:6: Error: This expression has type 'void' and can't be used.
-//   c?.setterWithClosure = 1;
-//      ^
-//
-// pkg/front_end/testcases/extensions/extension_setter.dart:171:6: Error: This expression has type 'void' and can't be used.
-//   c?.setterWithClosure = -2;
-//      ^
-//
 import self as self;
 import "dart:core" as core;
 
@@ -187,9 +168,9 @@
   self::expect(5, let final self::Class* #t56 = c in #t56 == null ?{core::int*} null : #t56.{self::Class::field}{core::int*});
   self::expect(6, let final self::Class* #t57 = c in let final core::int* #t58 = 6 in let final void #t59 = self::Extension|set#mutatingSetter(#t57, #t58) in #t58);
   self::expect(7, let final self::Class* #t60 = c in #t60 == null ?{core::int*} null : #t60.{self::Class::field}{core::int*});
-  let final self::Class* #t61 = c in #t61 == null ?{void} null : self::Extension|set#setterWithReturn(#t61, 1);
+  let final self::Class* #t61 = c in #t61 == null ?{core::int*} null : self::Extension|set#setterWithReturn(#t61, 1);
   self::expect(1, let final self::Class* #t62 = c in #t62 == null ?{core::int*} null : #t62.{self::Class::field}{core::int*});
-  let final self::Class* #t63 = c in #t63 == null ?{void} null : self::Extension|set#setterWithReturn(#t63, 2.{core::int::unary-}(){() →* core::int*});
+  let final self::Class* #t63 = c in #t63 == null ?{core::int*} null : self::Extension|set#setterWithReturn(#t63, 2.{core::int::unary-}(){() →* core::int*});
   self::expect(2, let final self::Class* #t64 = c in #t64 == null ?{core::int*} null : #t64.{self::Class::field}{core::int*});
   self::expect(3, let final self::Class* #t65 = c in #t65 == null ?{core::int*} null : let final core::int* #t66 = 3 in let final void #t67 = self::Extension|set#setterWithReturn(#t65, #t66) in #t66);
   self::expect(3, let final self::Class* #t68 = c in #t68 == null ?{core::int*} null : #t68.{self::Class::field}{core::int*});
@@ -203,9 +184,9 @@
   self::expect(7, let final self::Class* #t78 = c in #t78 == null ?{core::int*} null : #t78.{self::Class::field}{core::int*});
   self::expect(8.{core::int::unary-}(){() →* core::int*}, let final self::Class* #t79 = c in let final core::int* #t80 = 8.{core::int::unary-}(){() →* core::int*} in let final void #t81 = self::Extension|set#setterWithReturn(#t79, #t80) in #t80);
   self::expect(8, let final self::Class* #t82 = c in #t82 == null ?{core::int*} null : #t82.{self::Class::field}{core::int*});
-  let final self::Class* #t83 = c in #t83 == null ?{void} null : self::Extension|set#setterWithClosure(#t83, 1);
+  let final self::Class* #t83 = c in #t83 == null ?{core::int*} null : self::Extension|set#setterWithClosure(#t83, 1);
   self::expect(1, let final self::Class* #t84 = c in #t84 == null ?{core::int*} null : #t84.{self::Class::field}{core::int*});
-  let final self::Class* #t85 = c in #t85 == null ?{void} null : self::Extension|set#setterWithClosure(#t85, 2.{core::int::unary-}(){() →* core::int*});
+  let final self::Class* #t85 = c in #t85 == null ?{core::int*} null : self::Extension|set#setterWithClosure(#t85, 2.{core::int::unary-}(){() →* core::int*});
   self::expect(2, let final self::Class* #t86 = c in #t86 == null ?{core::int*} null : #t86.{self::Class::field}{core::int*});
   self::expect(3, let final self::Class* #t87 = c in #t87 == null ?{core::int*} null : let final core::int* #t88 = 3 in let final void #t89 = self::Extension|set#setterWithClosure(#t87, #t88) in #t88);
   self::expect(3, let final self::Class* #t90 = c in #t90 == null ?{core::int*} null : #t90.{self::Class::field}{core::int*});
diff --git a/pkg/front_end/testcases/extensions/extension_setter.dart.weak.modular.expect b/pkg/front_end/testcases/extensions/extension_setter.dart.weak.modular.expect
index 7d9e099..049dae0 100644
--- a/pkg/front_end/testcases/extensions/extension_setter.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/extensions/extension_setter.dart.weak.modular.expect
@@ -1,23 +1,4 @@
 library;
-//
-// Problems in library:
-//
-// pkg/front_end/testcases/extensions/extension_setter.dart:152:6: Error: This expression has type 'void' and can't be used.
-//   c?.setterWithReturn = 1;
-//      ^
-//
-// pkg/front_end/testcases/extensions/extension_setter.dart:154:6: Error: This expression has type 'void' and can't be used.
-//   c?.setterWithReturn = -2;
-//      ^
-//
-// pkg/front_end/testcases/extensions/extension_setter.dart:169:6: Error: This expression has type 'void' and can't be used.
-//   c?.setterWithClosure = 1;
-//      ^
-//
-// pkg/front_end/testcases/extensions/extension_setter.dart:171:6: Error: This expression has type 'void' and can't be used.
-//   c?.setterWithClosure = -2;
-//      ^
-//
 import self as self;
 import "dart:core" as core;
 
@@ -187,9 +168,9 @@
   self::expect(5, let final self::Class* #t56 = c in #t56 == null ?{core::int*} null : #t56.{self::Class::field}{core::int*});
   self::expect(6, let final self::Class* #t57 = c in let final core::int* #t58 = 6 in let final void #t59 = self::Extension|set#mutatingSetter(#t57, #t58) in #t58);
   self::expect(7, let final self::Class* #t60 = c in #t60 == null ?{core::int*} null : #t60.{self::Class::field}{core::int*});
-  let final self::Class* #t61 = c in #t61 == null ?{void} null : self::Extension|set#setterWithReturn(#t61, 1);
+  let final self::Class* #t61 = c in #t61 == null ?{core::int*} null : self::Extension|set#setterWithReturn(#t61, 1);
   self::expect(1, let final self::Class* #t62 = c in #t62 == null ?{core::int*} null : #t62.{self::Class::field}{core::int*});
-  let final self::Class* #t63 = c in #t63 == null ?{void} null : self::Extension|set#setterWithReturn(#t63, 2.{core::int::unary-}(){() →* core::int*});
+  let final self::Class* #t63 = c in #t63 == null ?{core::int*} null : self::Extension|set#setterWithReturn(#t63, 2.{core::int::unary-}(){() →* core::int*});
   self::expect(2, let final self::Class* #t64 = c in #t64 == null ?{core::int*} null : #t64.{self::Class::field}{core::int*});
   self::expect(3, let final self::Class* #t65 = c in #t65 == null ?{core::int*} null : let final core::int* #t66 = 3 in let final void #t67 = self::Extension|set#setterWithReturn(#t65, #t66) in #t66);
   self::expect(3, let final self::Class* #t68 = c in #t68 == null ?{core::int*} null : #t68.{self::Class::field}{core::int*});
@@ -203,9 +184,9 @@
   self::expect(7, let final self::Class* #t78 = c in #t78 == null ?{core::int*} null : #t78.{self::Class::field}{core::int*});
   self::expect(8.{core::int::unary-}(){() →* core::int*}, let final self::Class* #t79 = c in let final core::int* #t80 = 8.{core::int::unary-}(){() →* core::int*} in let final void #t81 = self::Extension|set#setterWithReturn(#t79, #t80) in #t80);
   self::expect(8, let final self::Class* #t82 = c in #t82 == null ?{core::int*} null : #t82.{self::Class::field}{core::int*});
-  let final self::Class* #t83 = c in #t83 == null ?{void} null : self::Extension|set#setterWithClosure(#t83, 1);
+  let final self::Class* #t83 = c in #t83 == null ?{core::int*} null : self::Extension|set#setterWithClosure(#t83, 1);
   self::expect(1, let final self::Class* #t84 = c in #t84 == null ?{core::int*} null : #t84.{self::Class::field}{core::int*});
-  let final self::Class* #t85 = c in #t85 == null ?{void} null : self::Extension|set#setterWithClosure(#t85, 2.{core::int::unary-}(){() →* core::int*});
+  let final self::Class* #t85 = c in #t85 == null ?{core::int*} null : self::Extension|set#setterWithClosure(#t85, 2.{core::int::unary-}(){() →* core::int*});
   self::expect(2, let final self::Class* #t86 = c in #t86 == null ?{core::int*} null : #t86.{self::Class::field}{core::int*});
   self::expect(3, let final self::Class* #t87 = c in #t87 == null ?{core::int*} null : let final core::int* #t88 = 3 in let final void #t89 = self::Extension|set#setterWithClosure(#t87, #t88) in #t88);
   self::expect(3, let final self::Class* #t90 = c in #t90 == null ?{core::int*} null : #t90.{self::Class::field}{core::int*});
diff --git a/pkg/front_end/testcases/extensions/extension_setter.dart.weak.transformed.expect b/pkg/front_end/testcases/extensions/extension_setter.dart.weak.transformed.expect
index 387dca2..795fc5b 100644
--- a/pkg/front_end/testcases/extensions/extension_setter.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/extensions/extension_setter.dart.weak.transformed.expect
@@ -1,23 +1,4 @@
 library;
-//
-// Problems in library:
-//
-// pkg/front_end/testcases/extensions/extension_setter.dart:152:6: Error: This expression has type 'void' and can't be used.
-//   c?.setterWithReturn = 1;
-//      ^
-//
-// pkg/front_end/testcases/extensions/extension_setter.dart:154:6: Error: This expression has type 'void' and can't be used.
-//   c?.setterWithReturn = -2;
-//      ^
-//
-// pkg/front_end/testcases/extensions/extension_setter.dart:169:6: Error: This expression has type 'void' and can't be used.
-//   c?.setterWithClosure = 1;
-//      ^
-//
-// pkg/front_end/testcases/extensions/extension_setter.dart:171:6: Error: This expression has type 'void' and can't be used.
-//   c?.setterWithClosure = -2;
-//      ^
-//
 import self as self;
 import "dart:core" as core;
 
@@ -187,9 +168,9 @@
   self::expect(5, let final self::Class* #t56 = c in #t56 == null ?{core::int*} null : #t56.{self::Class::field}{core::int*});
   self::expect(6, let final self::Class* #t57 = c in let final core::int* #t58 = 6 in let final void #t59 = self::Extension|set#mutatingSetter(#t57, #t58) in #t58);
   self::expect(7, let final self::Class* #t60 = c in #t60 == null ?{core::int*} null : #t60.{self::Class::field}{core::int*});
-  let final self::Class* #t61 = c in #t61 == null ?{void} null : self::Extension|set#setterWithReturn(#t61, 1);
+  let final self::Class* #t61 = c in #t61 == null ?{core::int*} null : self::Extension|set#setterWithReturn(#t61, 1);
   self::expect(1, let final self::Class* #t62 = c in #t62 == null ?{core::int*} null : #t62.{self::Class::field}{core::int*});
-  let final self::Class* #t63 = c in #t63 == null ?{void} null : self::Extension|set#setterWithReturn(#t63, 2.{core::int::unary-}(){() →* core::int*});
+  let final self::Class* #t63 = c in #t63 == null ?{core::int*} null : self::Extension|set#setterWithReturn(#t63, 2.{core::int::unary-}(){() →* core::int*});
   self::expect(2, let final self::Class* #t64 = c in #t64 == null ?{core::int*} null : #t64.{self::Class::field}{core::int*});
   self::expect(3, let final self::Class* #t65 = c in #t65 == null ?{core::int*} null : let final core::int* #t66 = 3 in let final void #t67 = self::Extension|set#setterWithReturn(#t65, #t66) in #t66);
   self::expect(3, let final self::Class* #t68 = c in #t68 == null ?{core::int*} null : #t68.{self::Class::field}{core::int*});
@@ -203,9 +184,9 @@
   self::expect(7, let final self::Class* #t78 = c in #t78 == null ?{core::int*} null : #t78.{self::Class::field}{core::int*});
   self::expect(8.{core::int::unary-}(){() →* core::int*}, let final self::Class* #t79 = c in let final core::int* #t80 = 8.{core::int::unary-}(){() →* core::int*} in let final void #t81 = self::Extension|set#setterWithReturn(#t79, #t80) in #t80);
   self::expect(8, let final self::Class* #t82 = c in #t82 == null ?{core::int*} null : #t82.{self::Class::field}{core::int*});
-  let final self::Class* #t83 = c in #t83 == null ?{void} null : self::Extension|set#setterWithClosure(#t83, 1);
+  let final self::Class* #t83 = c in #t83 == null ?{core::int*} null : self::Extension|set#setterWithClosure(#t83, 1);
   self::expect(1, let final self::Class* #t84 = c in #t84 == null ?{core::int*} null : #t84.{self::Class::field}{core::int*});
-  let final self::Class* #t85 = c in #t85 == null ?{void} null : self::Extension|set#setterWithClosure(#t85, 2.{core::int::unary-}(){() →* core::int*});
+  let final self::Class* #t85 = c in #t85 == null ?{core::int*} null : self::Extension|set#setterWithClosure(#t85, 2.{core::int::unary-}(){() →* core::int*});
   self::expect(2, let final self::Class* #t86 = c in #t86 == null ?{core::int*} null : #t86.{self::Class::field}{core::int*});
   self::expect(3, let final self::Class* #t87 = c in #t87 == null ?{core::int*} null : let final core::int* #t88 = 3 in let final void #t89 = self::Extension|set#setterWithClosure(#t87, #t88) in #t88);
   self::expect(3, let final self::Class* #t90 = c in #t90 == null ?{core::int*} null : #t90.{self::Class::field}{core::int*});
diff --git a/pkg/front_end/testcases/extensions/extension_setter2.dart.weak.expect b/pkg/front_end/testcases/extensions/extension_setter2.dart.weak.expect
index 8a19e0b..e483e9c 100644
--- a/pkg/front_end/testcases/extensions/extension_setter2.dart.weak.expect
+++ b/pkg/front_end/testcases/extensions/extension_setter2.dart.weak.expect
@@ -1,23 +1,4 @@
 library /*isNonNullableByDefault*/;
-//
-// Problems in library:
-//
-// pkg/front_end/testcases/extensions/extension_setter2.dart:164:7: Error: This expression has type 'void' and can't be used.
-//   cn?.setterWithReturn = 1;
-//       ^
-//
-// pkg/front_end/testcases/extensions/extension_setter2.dart:166:7: Error: This expression has type 'void' and can't be used.
-//   cn?.setterWithReturn = -2;
-//       ^
-//
-// pkg/front_end/testcases/extensions/extension_setter2.dart:181:7: Error: This expression has type 'void' and can't be used.
-//   cn?.setterWithClosure = 1;
-//       ^
-//
-// pkg/front_end/testcases/extensions/extension_setter2.dart:183:7: Error: This expression has type 'void' and can't be used.
-//   cn?.setterWithClosure = -2;
-//       ^
-//
 import self as self;
 import "dart:core" as core;
 
@@ -178,9 +159,9 @@
   self::expect(5, let final self::Class? #t56 = cn in #t56 == null ?{core::int?} null : #t56{self::Class}.{self::Class::field}{core::int});
   self::expect(6, let final self::Class #t57 = c in let final core::int #t58 = 6 in let final void #t59 = self::Extension|set#mutatingSetter(#t57, #t58) in #t58);
   self::expect(7, let final self::Class? #t60 = cn in #t60 == null ?{core::int?} null : #t60{self::Class}.{self::Class::field}{core::int});
-  let final self::Class? #t61 = cn in #t61 == null ?{void} null : self::Extension|set#setterWithReturn(#t61{self::Class}, 1);
+  let final self::Class? #t61 = cn in #t61 == null ?{core::int?} null : self::Extension|set#setterWithReturn(#t61{self::Class}, 1);
   self::expect(1, let final self::Class? #t62 = cn in #t62 == null ?{core::int?} null : #t62{self::Class}.{self::Class::field}{core::int});
-  let final self::Class? #t63 = cn in #t63 == null ?{void} null : self::Extension|set#setterWithReturn(#t63{self::Class}, 2.{core::int::unary-}(){() → core::int});
+  let final self::Class? #t63 = cn in #t63 == null ?{core::int?} null : self::Extension|set#setterWithReturn(#t63{self::Class}, 2.{core::int::unary-}(){() → core::int});
   self::expect(2, let final self::Class? #t64 = cn in #t64 == null ?{core::int?} null : #t64{self::Class}.{self::Class::field}{core::int});
   self::expect(3, let final self::Class? #t65 = cn in #t65 == null ?{core::int?} null : let final core::int #t66 = 3 in let final void #t67 = self::Extension|set#setterWithReturn(#t65{self::Class}, #t66) in #t66);
   self::expect(3, let final self::Class? #t68 = cn in #t68 == null ?{core::int?} null : #t68{self::Class}.{self::Class::field}{core::int});
@@ -194,9 +175,9 @@
   self::expect(7, let final self::Class? #t78 = cn in #t78 == null ?{core::int?} null : #t78{self::Class}.{self::Class::field}{core::int});
   self::expect(8.{core::int::unary-}(){() → core::int}, let final self::Class #t79 = c in let final core::int #t80 = 8.{core::int::unary-}(){() → core::int} in let final void #t81 = self::Extension|set#setterWithReturn(#t79, #t80) in #t80);
   self::expect(8, let final self::Class? #t82 = cn in #t82 == null ?{core::int?} null : #t82{self::Class}.{self::Class::field}{core::int});
-  let final self::Class? #t83 = cn in #t83 == null ?{void} null : self::Extension|set#setterWithClosure(#t83{self::Class}, 1);
+  let final self::Class? #t83 = cn in #t83 == null ?{core::int?} null : self::Extension|set#setterWithClosure(#t83{self::Class}, 1);
   self::expect(1, let final self::Class? #t84 = cn in #t84 == null ?{core::int?} null : #t84{self::Class}.{self::Class::field}{core::int});
-  let final self::Class? #t85 = cn in #t85 == null ?{void} null : self::Extension|set#setterWithClosure(#t85{self::Class}, 2.{core::int::unary-}(){() → core::int});
+  let final self::Class? #t85 = cn in #t85 == null ?{core::int?} null : self::Extension|set#setterWithClosure(#t85{self::Class}, 2.{core::int::unary-}(){() → core::int});
   self::expect(2, let final self::Class? #t86 = cn in #t86 == null ?{core::int?} null : #t86{self::Class}.{self::Class::field}{core::int});
   self::expect(3, let final self::Class? #t87 = cn in #t87 == null ?{core::int?} null : let final core::int #t88 = 3 in let final void #t89 = self::Extension|set#setterWithClosure(#t87{self::Class}, #t88) in #t88);
   self::expect(3, let final self::Class? #t90 = cn in #t90 == null ?{core::int?} null : #t90{self::Class}.{self::Class::field}{core::int});
diff --git a/pkg/front_end/testcases/extensions/extension_setter2.dart.weak.modular.expect b/pkg/front_end/testcases/extensions/extension_setter2.dart.weak.modular.expect
index 8a19e0b..e483e9c 100644
--- a/pkg/front_end/testcases/extensions/extension_setter2.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/extensions/extension_setter2.dart.weak.modular.expect
@@ -1,23 +1,4 @@
 library /*isNonNullableByDefault*/;
-//
-// Problems in library:
-//
-// pkg/front_end/testcases/extensions/extension_setter2.dart:164:7: Error: This expression has type 'void' and can't be used.
-//   cn?.setterWithReturn = 1;
-//       ^
-//
-// pkg/front_end/testcases/extensions/extension_setter2.dart:166:7: Error: This expression has type 'void' and can't be used.
-//   cn?.setterWithReturn = -2;
-//       ^
-//
-// pkg/front_end/testcases/extensions/extension_setter2.dart:181:7: Error: This expression has type 'void' and can't be used.
-//   cn?.setterWithClosure = 1;
-//       ^
-//
-// pkg/front_end/testcases/extensions/extension_setter2.dart:183:7: Error: This expression has type 'void' and can't be used.
-//   cn?.setterWithClosure = -2;
-//       ^
-//
 import self as self;
 import "dart:core" as core;
 
@@ -178,9 +159,9 @@
   self::expect(5, let final self::Class? #t56 = cn in #t56 == null ?{core::int?} null : #t56{self::Class}.{self::Class::field}{core::int});
   self::expect(6, let final self::Class #t57 = c in let final core::int #t58 = 6 in let final void #t59 = self::Extension|set#mutatingSetter(#t57, #t58) in #t58);
   self::expect(7, let final self::Class? #t60 = cn in #t60 == null ?{core::int?} null : #t60{self::Class}.{self::Class::field}{core::int});
-  let final self::Class? #t61 = cn in #t61 == null ?{void} null : self::Extension|set#setterWithReturn(#t61{self::Class}, 1);
+  let final self::Class? #t61 = cn in #t61 == null ?{core::int?} null : self::Extension|set#setterWithReturn(#t61{self::Class}, 1);
   self::expect(1, let final self::Class? #t62 = cn in #t62 == null ?{core::int?} null : #t62{self::Class}.{self::Class::field}{core::int});
-  let final self::Class? #t63 = cn in #t63 == null ?{void} null : self::Extension|set#setterWithReturn(#t63{self::Class}, 2.{core::int::unary-}(){() → core::int});
+  let final self::Class? #t63 = cn in #t63 == null ?{core::int?} null : self::Extension|set#setterWithReturn(#t63{self::Class}, 2.{core::int::unary-}(){() → core::int});
   self::expect(2, let final self::Class? #t64 = cn in #t64 == null ?{core::int?} null : #t64{self::Class}.{self::Class::field}{core::int});
   self::expect(3, let final self::Class? #t65 = cn in #t65 == null ?{core::int?} null : let final core::int #t66 = 3 in let final void #t67 = self::Extension|set#setterWithReturn(#t65{self::Class}, #t66) in #t66);
   self::expect(3, let final self::Class? #t68 = cn in #t68 == null ?{core::int?} null : #t68{self::Class}.{self::Class::field}{core::int});
@@ -194,9 +175,9 @@
   self::expect(7, let final self::Class? #t78 = cn in #t78 == null ?{core::int?} null : #t78{self::Class}.{self::Class::field}{core::int});
   self::expect(8.{core::int::unary-}(){() → core::int}, let final self::Class #t79 = c in let final core::int #t80 = 8.{core::int::unary-}(){() → core::int} in let final void #t81 = self::Extension|set#setterWithReturn(#t79, #t80) in #t80);
   self::expect(8, let final self::Class? #t82 = cn in #t82 == null ?{core::int?} null : #t82{self::Class}.{self::Class::field}{core::int});
-  let final self::Class? #t83 = cn in #t83 == null ?{void} null : self::Extension|set#setterWithClosure(#t83{self::Class}, 1);
+  let final self::Class? #t83 = cn in #t83 == null ?{core::int?} null : self::Extension|set#setterWithClosure(#t83{self::Class}, 1);
   self::expect(1, let final self::Class? #t84 = cn in #t84 == null ?{core::int?} null : #t84{self::Class}.{self::Class::field}{core::int});
-  let final self::Class? #t85 = cn in #t85 == null ?{void} null : self::Extension|set#setterWithClosure(#t85{self::Class}, 2.{core::int::unary-}(){() → core::int});
+  let final self::Class? #t85 = cn in #t85 == null ?{core::int?} null : self::Extension|set#setterWithClosure(#t85{self::Class}, 2.{core::int::unary-}(){() → core::int});
   self::expect(2, let final self::Class? #t86 = cn in #t86 == null ?{core::int?} null : #t86{self::Class}.{self::Class::field}{core::int});
   self::expect(3, let final self::Class? #t87 = cn in #t87 == null ?{core::int?} null : let final core::int #t88 = 3 in let final void #t89 = self::Extension|set#setterWithClosure(#t87{self::Class}, #t88) in #t88);
   self::expect(3, let final self::Class? #t90 = cn in #t90 == null ?{core::int?} null : #t90{self::Class}.{self::Class::field}{core::int});
diff --git a/pkg/front_end/testcases/extensions/extension_setter2.dart.weak.transformed.expect b/pkg/front_end/testcases/extensions/extension_setter2.dart.weak.transformed.expect
index 0c17de7..651b8fc 100644
--- a/pkg/front_end/testcases/extensions/extension_setter2.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/extensions/extension_setter2.dart.weak.transformed.expect
@@ -1,23 +1,4 @@
 library /*isNonNullableByDefault*/;
-//
-// Problems in library:
-//
-// pkg/front_end/testcases/extensions/extension_setter2.dart:164:7: Error: This expression has type 'void' and can't be used.
-//   cn?.setterWithReturn = 1;
-//       ^
-//
-// pkg/front_end/testcases/extensions/extension_setter2.dart:166:7: Error: This expression has type 'void' and can't be used.
-//   cn?.setterWithReturn = -2;
-//       ^
-//
-// pkg/front_end/testcases/extensions/extension_setter2.dart:181:7: Error: This expression has type 'void' and can't be used.
-//   cn?.setterWithClosure = 1;
-//       ^
-//
-// pkg/front_end/testcases/extensions/extension_setter2.dart:183:7: Error: This expression has type 'void' and can't be used.
-//   cn?.setterWithClosure = -2;
-//       ^
-//
 import self as self;
 import "dart:core" as core;
 
@@ -178,9 +159,9 @@
   self::expect(5, let final self::Class? #t56 = cn in #t56 == null ?{core::int?} null : #t56{self::Class}.{self::Class::field}{core::int});
   self::expect(6, let final self::Class #t57 = c in let final core::int #t58 = 6 in let final void #t59 = self::Extension|set#mutatingSetter(#t57, #t58) in #t58);
   self::expect(7, let final self::Class? #t60 = cn in #t60 == null ?{core::int?} null : #t60{self::Class}.{self::Class::field}{core::int});
-  let final self::Class? #t61 = cn in #t61 == null ?{void} null : self::Extension|set#setterWithReturn(#t61{self::Class}, 1);
+  let final self::Class? #t61 = cn in #t61 == null ?{core::int?} null : self::Extension|set#setterWithReturn(#t61{self::Class}, 1);
   self::expect(1, let final self::Class? #t62 = cn in #t62 == null ?{core::int?} null : #t62{self::Class}.{self::Class::field}{core::int});
-  let final self::Class? #t63 = cn in #t63 == null ?{void} null : self::Extension|set#setterWithReturn(#t63{self::Class}, 2.{core::int::unary-}(){() → core::int});
+  let final self::Class? #t63 = cn in #t63 == null ?{core::int?} null : self::Extension|set#setterWithReturn(#t63{self::Class}, 2.{core::int::unary-}(){() → core::int});
   self::expect(2, let final self::Class? #t64 = cn in #t64 == null ?{core::int?} null : #t64{self::Class}.{self::Class::field}{core::int});
   self::expect(3, let final self::Class? #t65 = cn in #t65 == null ?{core::int?} null : let final core::int #t66 = 3 in let final void #t67 = self::Extension|set#setterWithReturn(#t65{self::Class}, #t66) in #t66);
   self::expect(3, let final self::Class? #t68 = cn in #t68 == null ?{core::int?} null : #t68{self::Class}.{self::Class::field}{core::int});
@@ -194,9 +175,9 @@
   self::expect(7, let final self::Class? #t78 = cn in #t78 == null ?{core::int?} null : #t78{self::Class}.{self::Class::field}{core::int});
   self::expect(8.{core::int::unary-}(){() → core::int}, let final self::Class #t79 = c in let final core::int #t80 = 8.{core::int::unary-}(){() → core::int} in let final void #t81 = self::Extension|set#setterWithReturn(#t79, #t80) in #t80);
   self::expect(8, let final self::Class? #t82 = cn in #t82 == null ?{core::int?} null : #t82{self::Class}.{self::Class::field}{core::int});
-  let final self::Class? #t83 = cn in #t83 == null ?{void} null : self::Extension|set#setterWithClosure(#t83{self::Class}, 1);
+  let final self::Class? #t83 = cn in #t83 == null ?{core::int?} null : self::Extension|set#setterWithClosure(#t83{self::Class}, 1);
   self::expect(1, let final self::Class? #t84 = cn in #t84 == null ?{core::int?} null : #t84{self::Class}.{self::Class::field}{core::int});
-  let final self::Class? #t85 = cn in #t85 == null ?{void} null : self::Extension|set#setterWithClosure(#t85{self::Class}, 2.{core::int::unary-}(){() → core::int});
+  let final self::Class? #t85 = cn in #t85 == null ?{core::int?} null : self::Extension|set#setterWithClosure(#t85{self::Class}, 2.{core::int::unary-}(){() → core::int});
   self::expect(2, let final self::Class? #t86 = cn in #t86 == null ?{core::int?} null : #t86{self::Class}.{self::Class::field}{core::int});
   self::expect(3, let final self::Class? #t87 = cn in #t87 == null ?{core::int?} null : let final core::int #t88 = 3 in let final void #t89 = self::Extension|set#setterWithClosure(#t87{self::Class}, #t88) in #t88);
   self::expect(3, let final self::Class? #t90 = cn in #t90 == null ?{core::int?} null : #t90{self::Class}.{self::Class::field}{core::int});
diff --git a/pkg/front_end/testcases/extensions/if_null.dart.weak.expect b/pkg/front_end/testcases/extensions/if_null.dart.weak.expect
index 88c23ad..34aa9aa 100644
--- a/pkg/front_end/testcases/extensions/if_null.dart.weak.expect
+++ b/pkg/front_end/testcases/extensions/if_null.dart.weak.expect
@@ -1,11 +1,4 @@
 library;
-//
-// Problems in library:
-//
-// pkg/front_end/testcases/extensions/if_null.dart:23:6: Error: This expression has type 'void' and can't be used.
-//   c?.property = 42 ?? 0;
-//      ^
-//
 import self as self;
 import "dart:core" as core;
 
@@ -44,7 +37,7 @@
   self::Class* c;
   let final core::int* #t1 = let final self::Class* #t2 = c in #t2 == null ?{core::int*} null : self::Extension|get#property(#t2) in #t1 == null ?{core::int*} 0 : #t1;
   let final core::int* #t3 = let final self::Class* #t4 = c in #t4 == null ?{core::int*} null : self::Extension|get#property(#t4) in #t3 == null ?{core::int*} 0 : #t3;
-  let final self::Class* #t5 = c in #t5 == null ?{void} null : self::Extension|set#property(#t5, let final core::int* #t6 = 42 in #t6 == null ?{core::int*} 0 : #t6);
+  let final self::Class* #t5 = c in #t5 == null ?{core::int*} null : self::Extension|set#property(#t5, let final core::int* #t6 = 42 in #t6 == null ?{core::int*} 0 : #t6);
   let final self::Class* #t7 = c in #t7 == null ?{core::int*} null : self::Extension|set#property(#t7, let final core::int* #t8 = 42 in #t8 == null ?{core::int*} 0 : #t8);
   let final core::int* #t9 = let final self::Class* #t10 = c in #t10 == null ?{core::int*} null : let final core::int* #t11 = 42 in let final void #t12 = self::Extension|set#property(#t10, #t11) in #t11 in #t9 == null ?{core::int*} 0 : #t9;
   let final core::int* #t13 = let final self::Class* #t14 = c in #t14 == null ?{core::int*} null : let final core::int* #t15 = 42 in let final void #t16 = self::Extension|set#property(#t14, #t15) in #t15 in #t13 == null ?{core::int*} 0 : #t13;
diff --git a/pkg/front_end/testcases/extensions/if_null.dart.weak.modular.expect b/pkg/front_end/testcases/extensions/if_null.dart.weak.modular.expect
index 88c23ad..34aa9aa 100644
--- a/pkg/front_end/testcases/extensions/if_null.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/extensions/if_null.dart.weak.modular.expect
@@ -1,11 +1,4 @@
 library;
-//
-// Problems in library:
-//
-// pkg/front_end/testcases/extensions/if_null.dart:23:6: Error: This expression has type 'void' and can't be used.
-//   c?.property = 42 ?? 0;
-//      ^
-//
 import self as self;
 import "dart:core" as core;
 
@@ -44,7 +37,7 @@
   self::Class* c;
   let final core::int* #t1 = let final self::Class* #t2 = c in #t2 == null ?{core::int*} null : self::Extension|get#property(#t2) in #t1 == null ?{core::int*} 0 : #t1;
   let final core::int* #t3 = let final self::Class* #t4 = c in #t4 == null ?{core::int*} null : self::Extension|get#property(#t4) in #t3 == null ?{core::int*} 0 : #t3;
-  let final self::Class* #t5 = c in #t5 == null ?{void} null : self::Extension|set#property(#t5, let final core::int* #t6 = 42 in #t6 == null ?{core::int*} 0 : #t6);
+  let final self::Class* #t5 = c in #t5 == null ?{core::int*} null : self::Extension|set#property(#t5, let final core::int* #t6 = 42 in #t6 == null ?{core::int*} 0 : #t6);
   let final self::Class* #t7 = c in #t7 == null ?{core::int*} null : self::Extension|set#property(#t7, let final core::int* #t8 = 42 in #t8 == null ?{core::int*} 0 : #t8);
   let final core::int* #t9 = let final self::Class* #t10 = c in #t10 == null ?{core::int*} null : let final core::int* #t11 = 42 in let final void #t12 = self::Extension|set#property(#t10, #t11) in #t11 in #t9 == null ?{core::int*} 0 : #t9;
   let final core::int* #t13 = let final self::Class* #t14 = c in #t14 == null ?{core::int*} null : let final core::int* #t15 = 42 in let final void #t16 = self::Extension|set#property(#t14, #t15) in #t15 in #t13 == null ?{core::int*} 0 : #t13;
diff --git a/pkg/front_end/testcases/extensions/if_null.dart.weak.transformed.expect b/pkg/front_end/testcases/extensions/if_null.dart.weak.transformed.expect
index 3a442c9..d490043 100644
--- a/pkg/front_end/testcases/extensions/if_null.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/extensions/if_null.dart.weak.transformed.expect
@@ -1,11 +1,4 @@
 library;
-//
-// Problems in library:
-//
-// pkg/front_end/testcases/extensions/if_null.dart:23:6: Error: This expression has type 'void' and can't be used.
-//   c?.property = 42 ?? 0;
-//      ^
-//
 import self as self;
 import "dart:core" as core;
 
@@ -44,7 +37,7 @@
   self::Class* c;
   let final core::int* #t1 = let final self::Class* #t2 = c in #t2 == null ?{core::int*} null : self::Extension|get#property(#t2) in #t1 == null ?{core::int*} 0 : #t1;
   let final core::int* #t3 = let final self::Class* #t4 = c in #t4 == null ?{core::int*} null : self::Extension|get#property(#t4) in #t3 == null ?{core::int*} 0 : #t3;
-  let final self::Class* #t5 = c in #t5 == null ?{void} null : self::Extension|set#property(#t5, let final core::int* #t6 = 42 in #t6 == null ?{core::int*} 0 : #t6);
+  let final self::Class* #t5 = c in #t5 == null ?{core::int*} null : self::Extension|set#property(#t5, let final core::int* #t6 = 42 in #t6 == null ?{core::int*} 0 : #t6);
   let final self::Class* #t7 = c in #t7 == null ?{core::int*} null : self::Extension|set#property(#t7, let final core::int* #t8 = 42 in #t8 == null ?{core::int*} 0 : #t8);
   let final core::int* #t9 = let final self::Class* #t10 = c in #t10 == null ?{core::int*} null : let final core::int* #t11 = 42 in let final void #t12 = self::Extension|set#property(#t10, #t11) in #t11 in #t9 == null ?{core::int*} 0 : #t9;
   let final core::int* #t13 = let final self::Class* #t14 = c in #t14 == null ?{core::int*} null : let final core::int* #t15 = 42 in let final void #t16 = self::Extension|set#property(#t14, #t15) in #t15 in #t13 == null ?{core::int*} 0 : #t13;
diff --git a/pkg/front_end/testcases/extensions/if_null2.dart.weak.expect b/pkg/front_end/testcases/extensions/if_null2.dart.weak.expect
index 593a674..4558359 100644
--- a/pkg/front_end/testcases/extensions/if_null2.dart.weak.expect
+++ b/pkg/front_end/testcases/extensions/if_null2.dart.weak.expect
@@ -1,11 +1,4 @@
 library /*isNonNullableByDefault*/;
-//
-// Problems in library:
-//
-// pkg/front_end/testcases/extensions/if_null2.dart:30:6: Error: This expression has type 'void' and can't be used.
-//   c?.property = value ?? 0;
-//      ^
-//
 import self as self;
 import "dart:core" as core;
 
@@ -41,7 +34,7 @@
 static method test(self::Class? c) → dynamic {
   let final core::int? #t2 = let final self::Class? #t3 = c in #t3 == null ?{core::int?} null : self::Extension|get#property(#t3{self::Class}) in #t2 == null ?{core::int} 0 : #t2{core::int};
   let final core::int? #t4 = let final self::Class? #t5 = c in #t5 == null ?{core::int?} null : self::Extension|get#property(#t5{self::Class}) in #t4 == null ?{core::int} 0 : #t4{core::int};
-  let final self::Class? #t6 = c in #t6 == null ?{void} null : self::Extension|set#property(#t6{self::Class}, let final core::int? #t7 = self::value in #t7 == null ?{core::int} 0 : #t7{core::int});
+  let final self::Class? #t6 = c in #t6 == null ?{core::int?} null : self::Extension|set#property(#t6{self::Class}, let final core::int? #t7 = self::value in #t7 == null ?{core::int} 0 : #t7{core::int});
   let final self::Class? #t8 = c in #t8 == null ?{core::int?} null : self::Extension|set#property(#t8{self::Class}, let final core::int? #t9 = self::value in #t9 == null ?{core::int} 0 : #t9{core::int});
   let final core::int? #t10 = let final self::Class? #t11 = c in #t11 == null ?{core::int?} null : let final core::int #t12 = 42 in let final void #t13 = self::Extension|set#property(#t11{self::Class}, #t12) in #t12 in #t10 == null ?{core::int} 0 : #t10{core::int};
   let final core::int? #t14 = let final self::Class? #t15 = c in #t15 == null ?{core::int?} null : let final core::int? #t16 = self::value in let final void #t17 = self::Extension|set#property(#t15{self::Class}, #t16) in #t16 in #t14 == null ?{core::int} 0 : #t14{core::int};
diff --git a/pkg/front_end/testcases/extensions/if_null2.dart.weak.modular.expect b/pkg/front_end/testcases/extensions/if_null2.dart.weak.modular.expect
index 593a674..4558359 100644
--- a/pkg/front_end/testcases/extensions/if_null2.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/extensions/if_null2.dart.weak.modular.expect
@@ -1,11 +1,4 @@
 library /*isNonNullableByDefault*/;
-//
-// Problems in library:
-//
-// pkg/front_end/testcases/extensions/if_null2.dart:30:6: Error: This expression has type 'void' and can't be used.
-//   c?.property = value ?? 0;
-//      ^
-//
 import self as self;
 import "dart:core" as core;
 
@@ -41,7 +34,7 @@
 static method test(self::Class? c) → dynamic {
   let final core::int? #t2 = let final self::Class? #t3 = c in #t3 == null ?{core::int?} null : self::Extension|get#property(#t3{self::Class}) in #t2 == null ?{core::int} 0 : #t2{core::int};
   let final core::int? #t4 = let final self::Class? #t5 = c in #t5 == null ?{core::int?} null : self::Extension|get#property(#t5{self::Class}) in #t4 == null ?{core::int} 0 : #t4{core::int};
-  let final self::Class? #t6 = c in #t6 == null ?{void} null : self::Extension|set#property(#t6{self::Class}, let final core::int? #t7 = self::value in #t7 == null ?{core::int} 0 : #t7{core::int});
+  let final self::Class? #t6 = c in #t6 == null ?{core::int?} null : self::Extension|set#property(#t6{self::Class}, let final core::int? #t7 = self::value in #t7 == null ?{core::int} 0 : #t7{core::int});
   let final self::Class? #t8 = c in #t8 == null ?{core::int?} null : self::Extension|set#property(#t8{self::Class}, let final core::int? #t9 = self::value in #t9 == null ?{core::int} 0 : #t9{core::int});
   let final core::int? #t10 = let final self::Class? #t11 = c in #t11 == null ?{core::int?} null : let final core::int #t12 = 42 in let final void #t13 = self::Extension|set#property(#t11{self::Class}, #t12) in #t12 in #t10 == null ?{core::int} 0 : #t10{core::int};
   let final core::int? #t14 = let final self::Class? #t15 = c in #t15 == null ?{core::int?} null : let final core::int? #t16 = self::value in let final void #t17 = self::Extension|set#property(#t15{self::Class}, #t16) in #t16 in #t14 == null ?{core::int} 0 : #t14{core::int};
diff --git a/pkg/front_end/testcases/extensions/if_null2.dart.weak.transformed.expect b/pkg/front_end/testcases/extensions/if_null2.dart.weak.transformed.expect
index e50e683..23f6b42 100644
--- a/pkg/front_end/testcases/extensions/if_null2.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/extensions/if_null2.dart.weak.transformed.expect
@@ -1,11 +1,4 @@
 library /*isNonNullableByDefault*/;
-//
-// Problems in library:
-//
-// pkg/front_end/testcases/extensions/if_null2.dart:30:6: Error: This expression has type 'void' and can't be used.
-//   c?.property = value ?? 0;
-//      ^
-//
 import self as self;
 import "dart:core" as core;
 
@@ -41,7 +34,7 @@
 static method test(self::Class? c) → dynamic {
   let final core::int? #t2 = let final self::Class? #t3 = c in #t3 == null ?{core::int?} null : self::Extension|get#property(#t3{self::Class}) in #t2 == null ?{core::int} 0 : #t2{core::int};
   let final core::int? #t4 = let final self::Class? #t5 = c in #t5 == null ?{core::int?} null : self::Extension|get#property(#t5{self::Class}) in #t4 == null ?{core::int} 0 : #t4{core::int};
-  let final self::Class? #t6 = c in #t6 == null ?{void} null : self::Extension|set#property(#t6{self::Class}, let final core::int? #t7 = self::value in #t7 == null ?{core::int} 0 : #t7{core::int});
+  let final self::Class? #t6 = c in #t6 == null ?{core::int?} null : self::Extension|set#property(#t6{self::Class}, let final core::int? #t7 = self::value in #t7 == null ?{core::int} 0 : #t7{core::int});
   let final self::Class? #t8 = c in #t8 == null ?{core::int?} null : self::Extension|set#property(#t8{self::Class}, let final core::int? #t9 = self::value in #t9 == null ?{core::int} 0 : #t9{core::int});
   let final core::int? #t10 = let final self::Class? #t11 = c in #t11 == null ?{core::int?} null : let final core::int #t12 = 42 in let final void #t13 = self::Extension|set#property(#t11{self::Class}, #t12) in #t12 in #t10 == null ?{core::int} 0 : #t10{core::int};
   let final core::int? #t14 = let final self::Class? #t15 = c in #t15 == null ?{core::int?} null : let final core::int? #t16 = self::value in let final void #t17 = self::Extension|set#property(#t15{self::Class}, #t16) in #t16 in #t14 == null ?{core::int} 0 : #t14{core::int};
diff --git a/pkg/front_end/testcases/extensions/null_aware.dart.weak.expect b/pkg/front_end/testcases/extensions/null_aware.dart.weak.expect
index 2d3bbef..8d2b2f8 100644
--- a/pkg/front_end/testcases/extensions/null_aware.dart.weak.expect
+++ b/pkg/front_end/testcases/extensions/null_aware.dart.weak.expect
@@ -1,23 +1,4 @@
 library;
-//
-// Problems in library:
-//
-// pkg/front_end/testcases/extensions/null_aware.dart:44:6: Error: This expression has type 'void' and can't be used.
-//   c?.property = null;
-//      ^
-//
-// pkg/front_end/testcases/extensions/null_aware.dart:55:6: Error: This expression has type 'void' and can't be used.
-//   c?.property = null;
-//      ^
-//
-// pkg/front_end/testcases/extensions/null_aware.dart:60:6: Error: This expression has type 'void' and can't be used.
-//   c?.property = null;
-//      ^
-//
-// pkg/front_end/testcases/extensions/null_aware.dart:67:6: Error: This expression has type 'void' and can't be used.
-//   c?.property = null;
-//      ^
-//
 import self as self;
 import "dart:core" as core;
 
@@ -77,7 +58,7 @@
   self::expect(42, tearOff(){() →* core::int*});
   self::expect(null, let final self::Class* #t23 = c in #t23 == null ?{Null} null : let final has-declared-initializer Null #t24 = null in let final void #t25 = self::Extension|set#property(#t23, #t24) in #t24);
   self::expect(42, let final self::Class* #t26 = c in #t26 == null ?{core::int*} null : let final core::int* #t27 = 42 in let final void #t28 = self::Extension|set#property(#t26, #t27) in #t27);
-  let final self::Class* #t29 = c in #t29 == null ?{void} null : self::Extension|set#property(#t29, null);
+  let final self::Class* #t29 = c in #t29 == null ?{Null} null : self::Extension|set#property(#t29, null);
   self::expect(null, let final self::Class* #t30 = c in #t30 == null ?{core::int*} null : self::Extension|get#property(#t30));
   self::expect(42, let final self::Class* #t31 = c in let final core::int* #t32 = self::Extension|get#property(#t31) in #t32 == null ?{core::int*} let final core::int* #t33 = 42 in let final void #t34 = self::Extension|set#property(#t31, #t33) in #t33 : #t32);
   self::expect(42, let final self::Class* #t35 = c in let final core::int* #t36 = self::Extension|get#property(#t35) in #t36 == null ?{core::int*} let final core::int* #t37 = 87 in let final void #t38 = self::Extension|set#property(#t35, #t37) in #t37 : #t36);
@@ -86,17 +67,17 @@
   self::expect(42, let final self::Class* #t43 = c in #t43 == null ?{core::int*} null : self::Extension|get#property(#t43));
   let final self::Class* #t44 = c in self::Extension|get#property(#t44) == null ?{core::int*} self::Extension|set#property(#t44, 87) : null;
   self::expect(42, let final self::Class* #t45 = c in #t45 == null ?{core::int*} null : self::Extension|get#property(#t45));
-  let final self::Class* #t46 = c in #t46 == null ?{void} null : self::Extension|set#property(#t46, null);
+  let final self::Class* #t46 = c in #t46 == null ?{Null} null : self::Extension|set#property(#t46, null);
   self::expect(null, let final self::Class* #t47 = c in #t47 == null ?{core::int*} null : self::Extension|get#property(#t47));
   self::expect(42, let final self::Class* #t48 = c in let final core::int* #t49 = self::Extension|get#property(#t48) in #t49 == null ?{core::int*} let final core::int* #t50 = 42 in let final void #t51 = self::Extension|set#property(#t48, #t50) in #t50 : #t49);
   self::expect(42, let final self::Class* #t52 = c in let final core::int* #t53 = self::Extension|get#property(#t52) in #t53 == null ?{core::int*} let final core::int* #t54 = 87 in let final void #t55 = self::Extension|set#property(#t52, #t54) in #t54 : #t53);
-  let final self::Class* #t56 = c in #t56 == null ?{void} null : self::Extension|set#property(#t56, null);
+  let final self::Class* #t56 = c in #t56 == null ?{Null} null : self::Extension|set#property(#t56, null);
   self::expect(null, let final self::Class* #t57 = c in #t57 == null ?{core::int*} null : self::Extension|get#property(#t57));
   let final self::Class* #t58 = c in self::Extension|get#property(#t58) == null ?{core::int*} self::Extension|set#property(#t58, 42) : null;
   self::expect(42, let final self::Class* #t59 = c in #t59 == null ?{core::int*} null : self::Extension|get#property(#t59));
   let final self::Class* #t60 = c in self::Extension|get#property(#t60) == null ?{core::int*} self::Extension|set#property(#t60, 87) : null;
   self::expect(42, let final self::Class* #t61 = c in #t61 == null ?{core::int*} null : self::Extension|get#property(#t61));
-  let final self::Class* #t62 = c in #t62 == null ?{void} null : self::Extension|set#property(#t62, null);
+  let final self::Class* #t62 = c in #t62 == null ?{Null} null : self::Extension|set#property(#t62, null);
   self::Extension|testImplicitThis(c);
 }
 static method expect(dynamic expected, dynamic actual) → dynamic {
diff --git a/pkg/front_end/testcases/extensions/null_aware.dart.weak.modular.expect b/pkg/front_end/testcases/extensions/null_aware.dart.weak.modular.expect
index 2d3bbef..8d2b2f8 100644
--- a/pkg/front_end/testcases/extensions/null_aware.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/extensions/null_aware.dart.weak.modular.expect
@@ -1,23 +1,4 @@
 library;
-//
-// Problems in library:
-//
-// pkg/front_end/testcases/extensions/null_aware.dart:44:6: Error: This expression has type 'void' and can't be used.
-//   c?.property = null;
-//      ^
-//
-// pkg/front_end/testcases/extensions/null_aware.dart:55:6: Error: This expression has type 'void' and can't be used.
-//   c?.property = null;
-//      ^
-//
-// pkg/front_end/testcases/extensions/null_aware.dart:60:6: Error: This expression has type 'void' and can't be used.
-//   c?.property = null;
-//      ^
-//
-// pkg/front_end/testcases/extensions/null_aware.dart:67:6: Error: This expression has type 'void' and can't be used.
-//   c?.property = null;
-//      ^
-//
 import self as self;
 import "dart:core" as core;
 
@@ -77,7 +58,7 @@
   self::expect(42, tearOff(){() →* core::int*});
   self::expect(null, let final self::Class* #t23 = c in #t23 == null ?{Null} null : let final has-declared-initializer Null #t24 = null in let final void #t25 = self::Extension|set#property(#t23, #t24) in #t24);
   self::expect(42, let final self::Class* #t26 = c in #t26 == null ?{core::int*} null : let final core::int* #t27 = 42 in let final void #t28 = self::Extension|set#property(#t26, #t27) in #t27);
-  let final self::Class* #t29 = c in #t29 == null ?{void} null : self::Extension|set#property(#t29, null);
+  let final self::Class* #t29 = c in #t29 == null ?{Null} null : self::Extension|set#property(#t29, null);
   self::expect(null, let final self::Class* #t30 = c in #t30 == null ?{core::int*} null : self::Extension|get#property(#t30));
   self::expect(42, let final self::Class* #t31 = c in let final core::int* #t32 = self::Extension|get#property(#t31) in #t32 == null ?{core::int*} let final core::int* #t33 = 42 in let final void #t34 = self::Extension|set#property(#t31, #t33) in #t33 : #t32);
   self::expect(42, let final self::Class* #t35 = c in let final core::int* #t36 = self::Extension|get#property(#t35) in #t36 == null ?{core::int*} let final core::int* #t37 = 87 in let final void #t38 = self::Extension|set#property(#t35, #t37) in #t37 : #t36);
@@ -86,17 +67,17 @@
   self::expect(42, let final self::Class* #t43 = c in #t43 == null ?{core::int*} null : self::Extension|get#property(#t43));
   let final self::Class* #t44 = c in self::Extension|get#property(#t44) == null ?{core::int*} self::Extension|set#property(#t44, 87) : null;
   self::expect(42, let final self::Class* #t45 = c in #t45 == null ?{core::int*} null : self::Extension|get#property(#t45));
-  let final self::Class* #t46 = c in #t46 == null ?{void} null : self::Extension|set#property(#t46, null);
+  let final self::Class* #t46 = c in #t46 == null ?{Null} null : self::Extension|set#property(#t46, null);
   self::expect(null, let final self::Class* #t47 = c in #t47 == null ?{core::int*} null : self::Extension|get#property(#t47));
   self::expect(42, let final self::Class* #t48 = c in let final core::int* #t49 = self::Extension|get#property(#t48) in #t49 == null ?{core::int*} let final core::int* #t50 = 42 in let final void #t51 = self::Extension|set#property(#t48, #t50) in #t50 : #t49);
   self::expect(42, let final self::Class* #t52 = c in let final core::int* #t53 = self::Extension|get#property(#t52) in #t53 == null ?{core::int*} let final core::int* #t54 = 87 in let final void #t55 = self::Extension|set#property(#t52, #t54) in #t54 : #t53);
-  let final self::Class* #t56 = c in #t56 == null ?{void} null : self::Extension|set#property(#t56, null);
+  let final self::Class* #t56 = c in #t56 == null ?{Null} null : self::Extension|set#property(#t56, null);
   self::expect(null, let final self::Class* #t57 = c in #t57 == null ?{core::int*} null : self::Extension|get#property(#t57));
   let final self::Class* #t58 = c in self::Extension|get#property(#t58) == null ?{core::int*} self::Extension|set#property(#t58, 42) : null;
   self::expect(42, let final self::Class* #t59 = c in #t59 == null ?{core::int*} null : self::Extension|get#property(#t59));
   let final self::Class* #t60 = c in self::Extension|get#property(#t60) == null ?{core::int*} self::Extension|set#property(#t60, 87) : null;
   self::expect(42, let final self::Class* #t61 = c in #t61 == null ?{core::int*} null : self::Extension|get#property(#t61));
-  let final self::Class* #t62 = c in #t62 == null ?{void} null : self::Extension|set#property(#t62, null);
+  let final self::Class* #t62 = c in #t62 == null ?{Null} null : self::Extension|set#property(#t62, null);
   self::Extension|testImplicitThis(c);
 }
 static method expect(dynamic expected, dynamic actual) → dynamic {
diff --git a/pkg/front_end/testcases/extensions/null_aware.dart.weak.transformed.expect b/pkg/front_end/testcases/extensions/null_aware.dart.weak.transformed.expect
index 04798b8..f82892b 100644
--- a/pkg/front_end/testcases/extensions/null_aware.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/extensions/null_aware.dart.weak.transformed.expect
@@ -1,23 +1,4 @@
 library;
-//
-// Problems in library:
-//
-// pkg/front_end/testcases/extensions/null_aware.dart:44:6: Error: This expression has type 'void' and can't be used.
-//   c?.property = null;
-//      ^
-//
-// pkg/front_end/testcases/extensions/null_aware.dart:55:6: Error: This expression has type 'void' and can't be used.
-//   c?.property = null;
-//      ^
-//
-// pkg/front_end/testcases/extensions/null_aware.dart:60:6: Error: This expression has type 'void' and can't be used.
-//   c?.property = null;
-//      ^
-//
-// pkg/front_end/testcases/extensions/null_aware.dart:67:6: Error: This expression has type 'void' and can't be used.
-//   c?.property = null;
-//      ^
-//
 import self as self;
 import "dart:core" as core;
 
@@ -77,7 +58,7 @@
   self::expect(42, tearOff(){() →* core::int*});
   self::expect(null, let final self::Class* #t23 = c in #t23 == null ?{Null} null : let final has-declared-initializer Null #t24 = null in let final void #t25 = self::Extension|set#property(#t23, #t24) in #t24);
   self::expect(42, let final self::Class* #t26 = c in #t26 == null ?{core::int*} null : let final core::int* #t27 = 42 in let final void #t28 = self::Extension|set#property(#t26, #t27) in #t27);
-  let final self::Class* #t29 = c in #t29 == null ?{void} null : self::Extension|set#property(#t29, null);
+  let final self::Class* #t29 = c in #t29 == null ?{Null} null : self::Extension|set#property(#t29, null);
   self::expect(null, let final self::Class* #t30 = c in #t30 == null ?{core::int*} null : self::Extension|get#property(#t30));
   self::expect(42, let final self::Class* #t31 = c in let final core::int* #t32 = self::Extension|get#property(#t31) in #t32 == null ?{core::int*} let final core::int* #t33 = 42 in let final void #t34 = self::Extension|set#property(#t31, #t33) in #t33 : #t32);
   self::expect(42, let final self::Class* #t35 = c in let final core::int* #t36 = self::Extension|get#property(#t35) in #t36 == null ?{core::int*} let final core::int* #t37 = 87 in let final void #t38 = self::Extension|set#property(#t35, #t37) in #t37 : #t36);
@@ -86,17 +67,17 @@
   self::expect(42, let final self::Class* #t43 = c in #t43 == null ?{core::int*} null : self::Extension|get#property(#t43));
   let final self::Class* #t44 = c in self::Extension|get#property(#t44) == null ?{core::int*} self::Extension|set#property(#t44, 87) : null;
   self::expect(42, let final self::Class* #t45 = c in #t45 == null ?{core::int*} null : self::Extension|get#property(#t45));
-  let final self::Class* #t46 = c in #t46 == null ?{void} null : self::Extension|set#property(#t46, null);
+  let final self::Class* #t46 = c in #t46 == null ?{Null} null : self::Extension|set#property(#t46, null);
   self::expect(null, let final self::Class* #t47 = c in #t47 == null ?{core::int*} null : self::Extension|get#property(#t47));
   self::expect(42, let final self::Class* #t48 = c in let final core::int* #t49 = self::Extension|get#property(#t48) in #t49 == null ?{core::int*} let final core::int* #t50 = 42 in let final void #t51 = self::Extension|set#property(#t48, #t50) in #t50 : #t49);
   self::expect(42, let final self::Class* #t52 = c in let final core::int* #t53 = self::Extension|get#property(#t52) in #t53 == null ?{core::int*} let final core::int* #t54 = 87 in let final void #t55 = self::Extension|set#property(#t52, #t54) in #t54 : #t53);
-  let final self::Class* #t56 = c in #t56 == null ?{void} null : self::Extension|set#property(#t56, null);
+  let final self::Class* #t56 = c in #t56 == null ?{Null} null : self::Extension|set#property(#t56, null);
   self::expect(null, let final self::Class* #t57 = c in #t57 == null ?{core::int*} null : self::Extension|get#property(#t57));
   let final self::Class* #t58 = c in self::Extension|get#property(#t58) == null ?{core::int*} self::Extension|set#property(#t58, 42) : null;
   self::expect(42, let final self::Class* #t59 = c in #t59 == null ?{core::int*} null : self::Extension|get#property(#t59));
   let final self::Class* #t60 = c in self::Extension|get#property(#t60) == null ?{core::int*} self::Extension|set#property(#t60, 87) : null;
   self::expect(42, let final self::Class* #t61 = c in #t61 == null ?{core::int*} null : self::Extension|get#property(#t61));
-  let final self::Class* #t62 = c in #t62 == null ?{void} null : self::Extension|set#property(#t62, null);
+  let final self::Class* #t62 = c in #t62 == null ?{Null} null : self::Extension|set#property(#t62, null);
   self::Extension|testImplicitThis(c);
 }
 static method expect(dynamic expected, dynamic actual) → dynamic {
diff --git a/pkg/front_end/testcases/extensions/null_aware2.dart.weak.expect b/pkg/front_end/testcases/extensions/null_aware2.dart.weak.expect
index 47719c3..b5e0fa1 100644
--- a/pkg/front_end/testcases/extensions/null_aware2.dart.weak.expect
+++ b/pkg/front_end/testcases/extensions/null_aware2.dart.weak.expect
@@ -1,23 +1,4 @@
 library /*isNonNullableByDefault*/;
-//
-// Problems in library:
-//
-// pkg/front_end/testcases/extensions/null_aware2.dart:48:6: Error: This expression has type 'void' and can't be used.
-//   c?.property = null;
-//      ^
-//
-// pkg/front_end/testcases/extensions/null_aware2.dart:59:6: Error: This expression has type 'void' and can't be used.
-//   c?.property = null;
-//      ^
-//
-// pkg/front_end/testcases/extensions/null_aware2.dart:64:6: Error: This expression has type 'void' and can't be used.
-//   c?.property = null;
-//      ^
-//
-// pkg/front_end/testcases/extensions/null_aware2.dart:71:6: Error: This expression has type 'void' and can't be used.
-//   c?.property = null;
-//      ^
-//
 import self as self;
 import "dart:core" as core;
 
@@ -71,7 +52,7 @@
   self::expect(42, tearOff{() → core::int?}(){() → core::int?});
   self::expect(null, let final self::Class? #t23 = c in #t23 == null ?{Null} null : let final has-declared-initializer Null #t24 = null in let final void #t25 = self::Extension|set#property(#t23{self::Class}, #t24) in #t24);
   self::expect(42, let final self::Class? #t26 = c in #t26 == null ?{core::int?} null : let final core::int #t27 = 42 in let final void #t28 = self::Extension|set#property(#t26{self::Class}, #t27) in #t27);
-  let final self::Class? #t29 = c in #t29 == null ?{void} null : self::Extension|set#property(#t29{self::Class}, null);
+  let final self::Class? #t29 = c in #t29 == null ?{Null} null : self::Extension|set#property(#t29{self::Class}, null);
   self::expect(null, let final self::Class? #t30 = c in #t30 == null ?{core::int?} null : self::Extension|get#property(#t30{self::Class}));
   self::expect(42, let final self::Class? #t31 = c in #t31 == null ?{core::int?} null : let final core::int? #t32 = self::Extension|get#property(#t31) in #t32 == null ?{core::int} let final core::int #t33 = 42 in let final void #t34 = self::Extension|set#property(#t31, #t33) in #t33 : #t32{core::int});
   self::expect(42, let final self::Class? #t35 = c in #t35 == null ?{core::int?} null : let final core::int? #t36 = self::Extension|get#property(#t35) in #t36 == null ?{core::int} let final core::int #t37 = 87 in let final void #t38 = self::Extension|set#property(#t35, #t37) in #t37 : #t36{core::int});
@@ -80,17 +61,17 @@
   self::expect(42, let final self::Class? #t43 = c in #t43 == null ?{core::int?} null : self::Extension|get#property(#t43{self::Class}));
   let final self::Class? #t44 = c in #t44 == null ?{core::int?} null : self::Extension|get#property(#t44) == null ?{core::int} self::Extension|set#property(#t44, 87) : null;
   self::expect(42, let final self::Class? #t45 = c in #t45 == null ?{core::int?} null : self::Extension|get#property(#t45{self::Class}));
-  let final self::Class? #t46 = c in #t46 == null ?{void} null : self::Extension|set#property(#t46{self::Class}, null);
+  let final self::Class? #t46 = c in #t46 == null ?{Null} null : self::Extension|set#property(#t46{self::Class}, null);
   self::expect(null, let final self::Class? #t47 = c in #t47 == null ?{core::int?} null : self::Extension|get#property(#t47{self::Class}));
   self::expect(42, let final self::Class? #t48 = c in #t48 == null ?{core::int?} null : let final core::int? #t49 = self::Extension|get#property(#t48{self::Class}) in #t49 == null ?{core::int} let final core::int #t50 = 42 in let final void #t51 = self::Extension|set#property(#t48{self::Class}, #t50) in #t50 : #t49{core::int});
   self::expect(42, let final self::Class? #t52 = c in #t52 == null ?{core::int?} null : let final core::int? #t53 = self::Extension|get#property(#t52{self::Class}) in #t53 == null ?{core::int} let final core::int #t54 = 87 in let final void #t55 = self::Extension|set#property(#t52{self::Class}, #t54) in #t54 : #t53{core::int});
-  let final self::Class? #t56 = c in #t56 == null ?{void} null : self::Extension|set#property(#t56{self::Class}, null);
+  let final self::Class? #t56 = c in #t56 == null ?{Null} null : self::Extension|set#property(#t56{self::Class}, null);
   self::expect(null, let final self::Class? #t57 = c in #t57 == null ?{core::int?} null : self::Extension|get#property(#t57{self::Class}));
   let final self::Class? #t58 = c in #t58 == null ?{core::int?} null : self::Extension|get#property(#t58{self::Class}) == null ?{core::int} self::Extension|set#property(#t58{self::Class}, 42) : null;
   self::expect(42, let final self::Class? #t59 = c in #t59 == null ?{core::int?} null : self::Extension|get#property(#t59{self::Class}));
   let final self::Class? #t60 = c in #t60 == null ?{core::int?} null : self::Extension|get#property(#t60{self::Class}) == null ?{core::int} self::Extension|set#property(#t60{self::Class}, 87) : null;
   self::expect(42, let final self::Class? #t61 = c in #t61 == null ?{core::int?} null : self::Extension|get#property(#t61{self::Class}));
-  let final self::Class? #t62 = c in #t62 == null ?{void} null : self::Extension|set#property(#t62{self::Class}, null);
+  let final self::Class? #t62 = c in #t62 == null ?{Null} null : self::Extension|set#property(#t62{self::Class}, null);
   let final self::Class? #t63 = c in #t63 == null ?{dynamic} null : self::Extension|testImplicitThis(#t63{self::Class});
 }
 static method expect(dynamic expected, dynamic actual) → dynamic {
diff --git a/pkg/front_end/testcases/extensions/null_aware2.dart.weak.modular.expect b/pkg/front_end/testcases/extensions/null_aware2.dart.weak.modular.expect
index 47719c3..b5e0fa1 100644
--- a/pkg/front_end/testcases/extensions/null_aware2.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/extensions/null_aware2.dart.weak.modular.expect
@@ -1,23 +1,4 @@
 library /*isNonNullableByDefault*/;
-//
-// Problems in library:
-//
-// pkg/front_end/testcases/extensions/null_aware2.dart:48:6: Error: This expression has type 'void' and can't be used.
-//   c?.property = null;
-//      ^
-//
-// pkg/front_end/testcases/extensions/null_aware2.dart:59:6: Error: This expression has type 'void' and can't be used.
-//   c?.property = null;
-//      ^
-//
-// pkg/front_end/testcases/extensions/null_aware2.dart:64:6: Error: This expression has type 'void' and can't be used.
-//   c?.property = null;
-//      ^
-//
-// pkg/front_end/testcases/extensions/null_aware2.dart:71:6: Error: This expression has type 'void' and can't be used.
-//   c?.property = null;
-//      ^
-//
 import self as self;
 import "dart:core" as core;
 
@@ -71,7 +52,7 @@
   self::expect(42, tearOff{() → core::int?}(){() → core::int?});
   self::expect(null, let final self::Class? #t23 = c in #t23 == null ?{Null} null : let final has-declared-initializer Null #t24 = null in let final void #t25 = self::Extension|set#property(#t23{self::Class}, #t24) in #t24);
   self::expect(42, let final self::Class? #t26 = c in #t26 == null ?{core::int?} null : let final core::int #t27 = 42 in let final void #t28 = self::Extension|set#property(#t26{self::Class}, #t27) in #t27);
-  let final self::Class? #t29 = c in #t29 == null ?{void} null : self::Extension|set#property(#t29{self::Class}, null);
+  let final self::Class? #t29 = c in #t29 == null ?{Null} null : self::Extension|set#property(#t29{self::Class}, null);
   self::expect(null, let final self::Class? #t30 = c in #t30 == null ?{core::int?} null : self::Extension|get#property(#t30{self::Class}));
   self::expect(42, let final self::Class? #t31 = c in #t31 == null ?{core::int?} null : let final core::int? #t32 = self::Extension|get#property(#t31) in #t32 == null ?{core::int} let final core::int #t33 = 42 in let final void #t34 = self::Extension|set#property(#t31, #t33) in #t33 : #t32{core::int});
   self::expect(42, let final self::Class? #t35 = c in #t35 == null ?{core::int?} null : let final core::int? #t36 = self::Extension|get#property(#t35) in #t36 == null ?{core::int} let final core::int #t37 = 87 in let final void #t38 = self::Extension|set#property(#t35, #t37) in #t37 : #t36{core::int});
@@ -80,17 +61,17 @@
   self::expect(42, let final self::Class? #t43 = c in #t43 == null ?{core::int?} null : self::Extension|get#property(#t43{self::Class}));
   let final self::Class? #t44 = c in #t44 == null ?{core::int?} null : self::Extension|get#property(#t44) == null ?{core::int} self::Extension|set#property(#t44, 87) : null;
   self::expect(42, let final self::Class? #t45 = c in #t45 == null ?{core::int?} null : self::Extension|get#property(#t45{self::Class}));
-  let final self::Class? #t46 = c in #t46 == null ?{void} null : self::Extension|set#property(#t46{self::Class}, null);
+  let final self::Class? #t46 = c in #t46 == null ?{Null} null : self::Extension|set#property(#t46{self::Class}, null);
   self::expect(null, let final self::Class? #t47 = c in #t47 == null ?{core::int?} null : self::Extension|get#property(#t47{self::Class}));
   self::expect(42, let final self::Class? #t48 = c in #t48 == null ?{core::int?} null : let final core::int? #t49 = self::Extension|get#property(#t48{self::Class}) in #t49 == null ?{core::int} let final core::int #t50 = 42 in let final void #t51 = self::Extension|set#property(#t48{self::Class}, #t50) in #t50 : #t49{core::int});
   self::expect(42, let final self::Class? #t52 = c in #t52 == null ?{core::int?} null : let final core::int? #t53 = self::Extension|get#property(#t52{self::Class}) in #t53 == null ?{core::int} let final core::int #t54 = 87 in let final void #t55 = self::Extension|set#property(#t52{self::Class}, #t54) in #t54 : #t53{core::int});
-  let final self::Class? #t56 = c in #t56 == null ?{void} null : self::Extension|set#property(#t56{self::Class}, null);
+  let final self::Class? #t56 = c in #t56 == null ?{Null} null : self::Extension|set#property(#t56{self::Class}, null);
   self::expect(null, let final self::Class? #t57 = c in #t57 == null ?{core::int?} null : self::Extension|get#property(#t57{self::Class}));
   let final self::Class? #t58 = c in #t58 == null ?{core::int?} null : self::Extension|get#property(#t58{self::Class}) == null ?{core::int} self::Extension|set#property(#t58{self::Class}, 42) : null;
   self::expect(42, let final self::Class? #t59 = c in #t59 == null ?{core::int?} null : self::Extension|get#property(#t59{self::Class}));
   let final self::Class? #t60 = c in #t60 == null ?{core::int?} null : self::Extension|get#property(#t60{self::Class}) == null ?{core::int} self::Extension|set#property(#t60{self::Class}, 87) : null;
   self::expect(42, let final self::Class? #t61 = c in #t61 == null ?{core::int?} null : self::Extension|get#property(#t61{self::Class}));
-  let final self::Class? #t62 = c in #t62 == null ?{void} null : self::Extension|set#property(#t62{self::Class}, null);
+  let final self::Class? #t62 = c in #t62 == null ?{Null} null : self::Extension|set#property(#t62{self::Class}, null);
   let final self::Class? #t63 = c in #t63 == null ?{dynamic} null : self::Extension|testImplicitThis(#t63{self::Class});
 }
 static method expect(dynamic expected, dynamic actual) → dynamic {
diff --git a/pkg/front_end/testcases/extensions/null_aware2.dart.weak.transformed.expect b/pkg/front_end/testcases/extensions/null_aware2.dart.weak.transformed.expect
index e6995cc..a927b20 100644
--- a/pkg/front_end/testcases/extensions/null_aware2.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/extensions/null_aware2.dart.weak.transformed.expect
@@ -1,23 +1,4 @@
 library /*isNonNullableByDefault*/;
-//
-// Problems in library:
-//
-// pkg/front_end/testcases/extensions/null_aware2.dart:48:6: Error: This expression has type 'void' and can't be used.
-//   c?.property = null;
-//      ^
-//
-// pkg/front_end/testcases/extensions/null_aware2.dart:59:6: Error: This expression has type 'void' and can't be used.
-//   c?.property = null;
-//      ^
-//
-// pkg/front_end/testcases/extensions/null_aware2.dart:64:6: Error: This expression has type 'void' and can't be used.
-//   c?.property = null;
-//      ^
-//
-// pkg/front_end/testcases/extensions/null_aware2.dart:71:6: Error: This expression has type 'void' and can't be used.
-//   c?.property = null;
-//      ^
-//
 import self as self;
 import "dart:core" as core;
 
@@ -71,7 +52,7 @@
   self::expect(42, tearOff{() → core::int?}(){() → core::int?});
   self::expect(null, let final self::Class? #t23 = c in #t23 == null ?{Null} null : let final has-declared-initializer Null #t24 = null in let final void #t25 = self::Extension|set#property(#t23{self::Class}, #t24) in #t24);
   self::expect(42, let final self::Class? #t26 = c in #t26 == null ?{core::int?} null : let final core::int #t27 = 42 in let final void #t28 = self::Extension|set#property(#t26{self::Class}, #t27) in #t27);
-  let final self::Class? #t29 = c in #t29 == null ?{void} null : self::Extension|set#property(#t29{self::Class}, null);
+  let final self::Class? #t29 = c in #t29 == null ?{Null} null : self::Extension|set#property(#t29{self::Class}, null);
   self::expect(null, let final self::Class? #t30 = c in #t30 == null ?{core::int?} null : self::Extension|get#property(#t30{self::Class}));
   self::expect(42, let final self::Class? #t31 = c in #t31 == null ?{core::int?} null : let final core::int? #t32 = self::Extension|get#property(#t31) in #t32 == null ?{core::int} let final core::int #t33 = 42 in let final void #t34 = self::Extension|set#property(#t31, #t33) in #t33 : #t32{core::int});
   self::expect(42, let final self::Class? #t35 = c in #t35 == null ?{core::int?} null : let final core::int? #t36 = self::Extension|get#property(#t35) in #t36 == null ?{core::int} let final core::int #t37 = 87 in let final void #t38 = self::Extension|set#property(#t35, #t37) in #t37 : #t36{core::int});
@@ -80,17 +61,17 @@
   self::expect(42, let final self::Class? #t43 = c in #t43 == null ?{core::int?} null : self::Extension|get#property(#t43{self::Class}));
   let final self::Class? #t44 = c in #t44 == null ?{core::int?} null : self::Extension|get#property(#t44) == null ?{core::int} self::Extension|set#property(#t44, 87) : null;
   self::expect(42, let final self::Class? #t45 = c in #t45 == null ?{core::int?} null : self::Extension|get#property(#t45{self::Class}));
-  let final self::Class? #t46 = c in #t46 == null ?{void} null : self::Extension|set#property(#t46{self::Class}, null);
+  let final self::Class? #t46 = c in #t46 == null ?{Null} null : self::Extension|set#property(#t46{self::Class}, null);
   self::expect(null, let final self::Class? #t47 = c in #t47 == null ?{core::int?} null : self::Extension|get#property(#t47{self::Class}));
   self::expect(42, let final self::Class? #t48 = c in #t48 == null ?{core::int?} null : let final core::int? #t49 = self::Extension|get#property(#t48{self::Class}) in #t49 == null ?{core::int} let final core::int #t50 = 42 in let final void #t51 = self::Extension|set#property(#t48{self::Class}, #t50) in #t50 : #t49{core::int});
   self::expect(42, let final self::Class? #t52 = c in #t52 == null ?{core::int?} null : let final core::int? #t53 = self::Extension|get#property(#t52{self::Class}) in #t53 == null ?{core::int} let final core::int #t54 = 87 in let final void #t55 = self::Extension|set#property(#t52{self::Class}, #t54) in #t54 : #t53{core::int});
-  let final self::Class? #t56 = c in #t56 == null ?{void} null : self::Extension|set#property(#t56{self::Class}, null);
+  let final self::Class? #t56 = c in #t56 == null ?{Null} null : self::Extension|set#property(#t56{self::Class}, null);
   self::expect(null, let final self::Class? #t57 = c in #t57 == null ?{core::int?} null : self::Extension|get#property(#t57{self::Class}));
   let final self::Class? #t58 = c in #t58 == null ?{core::int?} null : self::Extension|get#property(#t58{self::Class}) == null ?{core::int} self::Extension|set#property(#t58{self::Class}, 42) : null;
   self::expect(42, let final self::Class? #t59 = c in #t59 == null ?{core::int?} null : self::Extension|get#property(#t59{self::Class}));
   let final self::Class? #t60 = c in #t60 == null ?{core::int?} null : self::Extension|get#property(#t60{self::Class}) == null ?{core::int} self::Extension|set#property(#t60{self::Class}, 87) : null;
   self::expect(42, let final self::Class? #t61 = c in #t61 == null ?{core::int?} null : self::Extension|get#property(#t61{self::Class}));
-  let final self::Class? #t62 = c in #t62 == null ?{void} null : self::Extension|set#property(#t62{self::Class}, null);
+  let final self::Class? #t62 = c in #t62 == null ?{Null} null : self::Extension|set#property(#t62{self::Class}, null);
   let final self::Class? #t63 = c in #t63 == null ?{dynamic} null : self::Extension|testImplicitThis(#t63{self::Class});
 }
 static method expect(dynamic expected, dynamic actual) → dynamic {
diff --git a/pkg/front_end/testcases/extensions/post_inc.dart b/pkg/front_end/testcases/extensions/post_inc.dart
deleted file mode 100644
index 798733e..0000000
--- a/pkg/front_end/testcases/extensions/post_inc.dart
+++ /dev/null
@@ -1,32 +0,0 @@
-// Copyright (c) 2019, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-void main() {
-  Object a = "a";
-
-  expect("a.field", a.field++, "a.field=(a.field+1)");
-  expect("a.field", a.field--, "a.field=(a.field-1)");
-}
-
-// Last value set by a setter.
-String setValue = "";
-
-void expect(String expect, Object value, String expectSet) {
-  if (expect != value) {
-    throw 'Expected value ${expect}, actual ${value}';
-  }
-  if (expectSet != setValue) {
-    throw 'Expected assignment ${expectSet}, actual ${setValue}';
-  }
-}
-
-extension Ops on Object {
-  Object operator +(Object other) => "(${this}+$other)";
-  Object operator -(Object other) => "(${this}-$other)";
-
-  Object get field => "${this}.field";
-  void set field(Object other) {
-    setValue = "${this}.field=$other";
-  }
-}
diff --git a/pkg/front_end/testcases/extensions/post_inc.dart.textual_outline.expect b/pkg/front_end/testcases/extensions/post_inc.dart.textual_outline.expect
deleted file mode 100644
index dd330d9..0000000
--- a/pkg/front_end/testcases/extensions/post_inc.dart.textual_outline.expect
+++ /dev/null
@@ -1,10 +0,0 @@
-void main() {}
-String setValue = "";
-void expect(String expect, Object value, String expectSet) {}
-
-extension Ops on Object {
-  Object operator +(Object other) => "(${this}+$other)";
-  Object operator -(Object other) => "(${this}-$other)";
-  Object get field => "${this}.field";
-  void set field(Object other) {}
-}
diff --git a/pkg/front_end/testcases/extensions/post_inc.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/extensions/post_inc.dart.textual_outline_modelled.expect
deleted file mode 100644
index 9f28461..0000000
--- a/pkg/front_end/testcases/extensions/post_inc.dart.textual_outline_modelled.expect
+++ /dev/null
@@ -1,11 +0,0 @@
-String setValue = "";
-
-extension Ops on Object {
-  Object get field => "${this}.field";
-  Object operator +(Object other) => "(${this}+$other)";
-  Object operator -(Object other) => "(${this}-$other)";
-  void set field(Object other) {}
-}
-
-void expect(String expect, Object value, String expectSet) {}
-void main() {}
diff --git a/pkg/front_end/testcases/extensions/post_inc.dart.weak.expect b/pkg/front_end/testcases/extensions/post_inc.dart.weak.expect
deleted file mode 100644
index b35021d..0000000
--- a/pkg/front_end/testcases/extensions/post_inc.dart.weak.expect
+++ /dev/null
@@ -1,33 +0,0 @@
-library /*isNonNullableByDefault*/;
-import self as self;
-import "dart:core" as core;
-
-extension Ops on core::Object {
-  operator + = self::Ops|+;
-  operator - = self::Ops|-;
-  get field = self::Ops|get#field;
-  set field = self::Ops|set#field;
-}
-static field core::String setValue = "";
-static method main() → void {
-  core::Object a = "a";
-  self::expect("a.field", let final core::Object #t1 = a in let final core::Object #t2 = self::Ops|get#field(#t1) in let final void #t3 = self::Ops|set#field(#t1, self::Ops|+(#t2, 1)) in #t2, "a.field=(a.field+1)");
-  self::expect("a.field", let final core::Object #t4 = a in let final core::Object #t5 = self::Ops|get#field(#t4) in let final void #t6 = self::Ops|set#field(#t4, self::Ops|-(#t5, 1)) in #t5, "a.field=(a.field-1)");
-}
-static method expect(core::String expect, core::Object value, core::String expectSet) → void {
-  if(!(expect =={core::String::==}{(core::Object) → core::bool} value)) {
-    throw "Expected value ${expect}, actual ${value}";
-  }
-  if(!(expectSet =={core::String::==}{(core::Object) → core::bool} self::setValue)) {
-    throw "Expected assignment ${expectSet}, actual ${self::setValue}";
-  }
-}
-static method Ops|+(lowered final core::Object #this, core::Object other) → core::Object
-  return "(${#this}+${other})";
-static method Ops|-(lowered final core::Object #this, core::Object other) → core::Object
-  return "(${#this}-${other})";
-static method Ops|get#field(lowered final core::Object #this) → core::Object
-  return "${#this}.field";
-static method Ops|set#field(lowered final core::Object #this, core::Object other) → void {
-  self::setValue = "${#this}.field=${other}";
-}
diff --git a/pkg/front_end/testcases/extensions/post_inc.dart.weak.modular.expect b/pkg/front_end/testcases/extensions/post_inc.dart.weak.modular.expect
deleted file mode 100644
index b35021d..0000000
--- a/pkg/front_end/testcases/extensions/post_inc.dart.weak.modular.expect
+++ /dev/null
@@ -1,33 +0,0 @@
-library /*isNonNullableByDefault*/;
-import self as self;
-import "dart:core" as core;
-
-extension Ops on core::Object {
-  operator + = self::Ops|+;
-  operator - = self::Ops|-;
-  get field = self::Ops|get#field;
-  set field = self::Ops|set#field;
-}
-static field core::String setValue = "";
-static method main() → void {
-  core::Object a = "a";
-  self::expect("a.field", let final core::Object #t1 = a in let final core::Object #t2 = self::Ops|get#field(#t1) in let final void #t3 = self::Ops|set#field(#t1, self::Ops|+(#t2, 1)) in #t2, "a.field=(a.field+1)");
-  self::expect("a.field", let final core::Object #t4 = a in let final core::Object #t5 = self::Ops|get#field(#t4) in let final void #t6 = self::Ops|set#field(#t4, self::Ops|-(#t5, 1)) in #t5, "a.field=(a.field-1)");
-}
-static method expect(core::String expect, core::Object value, core::String expectSet) → void {
-  if(!(expect =={core::String::==}{(core::Object) → core::bool} value)) {
-    throw "Expected value ${expect}, actual ${value}";
-  }
-  if(!(expectSet =={core::String::==}{(core::Object) → core::bool} self::setValue)) {
-    throw "Expected assignment ${expectSet}, actual ${self::setValue}";
-  }
-}
-static method Ops|+(lowered final core::Object #this, core::Object other) → core::Object
-  return "(${#this}+${other})";
-static method Ops|-(lowered final core::Object #this, core::Object other) → core::Object
-  return "(${#this}-${other})";
-static method Ops|get#field(lowered final core::Object #this) → core::Object
-  return "${#this}.field";
-static method Ops|set#field(lowered final core::Object #this, core::Object other) → void {
-  self::setValue = "${#this}.field=${other}";
-}
diff --git a/pkg/front_end/testcases/extensions/post_inc.dart.weak.outline.expect b/pkg/front_end/testcases/extensions/post_inc.dart.weak.outline.expect
deleted file mode 100644
index e89ec23..0000000
--- a/pkg/front_end/testcases/extensions/post_inc.dart.weak.outline.expect
+++ /dev/null
@@ -1,23 +0,0 @@
-library /*isNonNullableByDefault*/;
-import self as self;
-import "dart:core" as core;
-
-extension Ops on core::Object {
-  operator + = self::Ops|+;
-  operator - = self::Ops|-;
-  get field = self::Ops|get#field;
-  set field = self::Ops|set#field;
-}
-static field core::String setValue;
-static method main() → void
-  ;
-static method expect(core::String expect, core::Object value, core::String expectSet) → void
-  ;
-static method Ops|+(lowered final core::Object #this, core::Object other) → core::Object
-  ;
-static method Ops|-(lowered final core::Object #this, core::Object other) → core::Object
-  ;
-static method Ops|get#field(lowered final core::Object #this) → core::Object
-  ;
-static method Ops|set#field(lowered final core::Object #this, core::Object other) → void
-  ;
diff --git a/pkg/front_end/testcases/extensions/post_inc.dart.weak.transformed.expect b/pkg/front_end/testcases/extensions/post_inc.dart.weak.transformed.expect
deleted file mode 100644
index b35021d..0000000
--- a/pkg/front_end/testcases/extensions/post_inc.dart.weak.transformed.expect
+++ /dev/null
@@ -1,33 +0,0 @@
-library /*isNonNullableByDefault*/;
-import self as self;
-import "dart:core" as core;
-
-extension Ops on core::Object {
-  operator + = self::Ops|+;
-  operator - = self::Ops|-;
-  get field = self::Ops|get#field;
-  set field = self::Ops|set#field;
-}
-static field core::String setValue = "";
-static method main() → void {
-  core::Object a = "a";
-  self::expect("a.field", let final core::Object #t1 = a in let final core::Object #t2 = self::Ops|get#field(#t1) in let final void #t3 = self::Ops|set#field(#t1, self::Ops|+(#t2, 1)) in #t2, "a.field=(a.field+1)");
-  self::expect("a.field", let final core::Object #t4 = a in let final core::Object #t5 = self::Ops|get#field(#t4) in let final void #t6 = self::Ops|set#field(#t4, self::Ops|-(#t5, 1)) in #t5, "a.field=(a.field-1)");
-}
-static method expect(core::String expect, core::Object value, core::String expectSet) → void {
-  if(!(expect =={core::String::==}{(core::Object) → core::bool} value)) {
-    throw "Expected value ${expect}, actual ${value}";
-  }
-  if(!(expectSet =={core::String::==}{(core::Object) → core::bool} self::setValue)) {
-    throw "Expected assignment ${expectSet}, actual ${self::setValue}";
-  }
-}
-static method Ops|+(lowered final core::Object #this, core::Object other) → core::Object
-  return "(${#this}+${other})";
-static method Ops|-(lowered final core::Object #this, core::Object other) → core::Object
-  return "(${#this}-${other})";
-static method Ops|get#field(lowered final core::Object #this) → core::Object
-  return "${#this}.field";
-static method Ops|set#field(lowered final core::Object #this, core::Object other) → void {
-  self::setValue = "${#this}.field=${other}";
-}
diff --git a/pkg/front_end/testcases/general/null_aware_postfix.dart.weak.expect b/pkg/front_end/testcases/general/null_aware_postfix.dart.weak.expect
index ccaaac2..b31646a 100644
--- a/pkg/front_end/testcases/general/null_aware_postfix.dart.weak.expect
+++ b/pkg/front_end/testcases/general/null_aware_postfix.dart.weak.expect
@@ -43,5 +43,5 @@
 static method main() → dynamic {
   self::A* a;
   let final self::A* #t1 = a in #t1 == null ?{self::B*} null : #t1.{self::A::b} = #t1.{self::A::b}{self::B*}.{self::B::+}(1){(core::int*) →* self::C*};
-  self::C* c = (let final self::A* #t2 = a in #t2 == null ?{self::B*} null : let final self::B* #t3 = #t2.{self::A::b}{self::B*} in let final self::C* #t4 = #t2.{self::A::b} = #t3.{self::B::+}(1){(core::int*) →* self::C*} in #t3) as{TypeError} self::C*;
+  self::C* c = (let final self::A* #t2 = a in #t2 == null ?{self::B*} null : let final self::B* #t3 = #t2.{self::A::b}{self::B*} in let final void #t4 = #t2.{self::A::b} = #t3.{self::B::+}(1){(core::int*) →* self::C*} in #t3) as{TypeError} self::C*;
 }
diff --git a/pkg/front_end/testcases/general/null_aware_postfix.dart.weak.modular.expect b/pkg/front_end/testcases/general/null_aware_postfix.dart.weak.modular.expect
index ccaaac2..b31646a 100644
--- a/pkg/front_end/testcases/general/null_aware_postfix.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/general/null_aware_postfix.dart.weak.modular.expect
@@ -43,5 +43,5 @@
 static method main() → dynamic {
   self::A* a;
   let final self::A* #t1 = a in #t1 == null ?{self::B*} null : #t1.{self::A::b} = #t1.{self::A::b}{self::B*}.{self::B::+}(1){(core::int*) →* self::C*};
-  self::C* c = (let final self::A* #t2 = a in #t2 == null ?{self::B*} null : let final self::B* #t3 = #t2.{self::A::b}{self::B*} in let final self::C* #t4 = #t2.{self::A::b} = #t3.{self::B::+}(1){(core::int*) →* self::C*} in #t3) as{TypeError} self::C*;
+  self::C* c = (let final self::A* #t2 = a in #t2 == null ?{self::B*} null : let final self::B* #t3 = #t2.{self::A::b}{self::B*} in let final void #t4 = #t2.{self::A::b} = #t3.{self::B::+}(1){(core::int*) →* self::C*} in #t3) as{TypeError} self::C*;
 }
diff --git a/pkg/front_end/testcases/general/null_aware_postfix.dart.weak.transformed.expect b/pkg/front_end/testcases/general/null_aware_postfix.dart.weak.transformed.expect
index ccaaac2..b31646a 100644
--- a/pkg/front_end/testcases/general/null_aware_postfix.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general/null_aware_postfix.dart.weak.transformed.expect
@@ -43,5 +43,5 @@
 static method main() → dynamic {
   self::A* a;
   let final self::A* #t1 = a in #t1 == null ?{self::B*} null : #t1.{self::A::b} = #t1.{self::A::b}{self::B*}.{self::B::+}(1){(core::int*) →* self::C*};
-  self::C* c = (let final self::A* #t2 = a in #t2 == null ?{self::B*} null : let final self::B* #t3 = #t2.{self::A::b}{self::B*} in let final self::C* #t4 = #t2.{self::A::b} = #t3.{self::B::+}(1){(core::int*) →* self::C*} in #t3) as{TypeError} self::C*;
+  self::C* c = (let final self::A* #t2 = a in #t2 == null ?{self::B*} null : let final self::B* #t3 = #t2.{self::A::b}{self::B*} in let final void #t4 = #t2.{self::A::b} = #t3.{self::B::+}(1){(core::int*) →* self::C*} in #t3) as{TypeError} self::C*;
 }
diff --git a/pkg/front_end/testcases/general/null_aware_postfix2.dart.weak.expect b/pkg/front_end/testcases/general/null_aware_postfix2.dart.weak.expect
index cc85178..bc5d862 100644
--- a/pkg/front_end/testcases/general/null_aware_postfix2.dart.weak.expect
+++ b/pkg/front_end/testcases/general/null_aware_postfix2.dart.weak.expect
@@ -23,5 +23,5 @@
 static method main() → dynamic {
   self::A? a;
   let final self::A? #t1 = a in #t1 == null ?{self::B?} null : #t1.{self::A::b} = #t1.{self::A::b}{self::B}.{self::B::+}(1){(core::int) → self::C};
-  self::B? c = let final self::A? #t2 = a in #t2 == null ?{self::B?} null : let final self::B #t3 = #t2.{self::A::b}{self::B} in let final self::C #t4 = #t2.{self::A::b} = #t3.{self::B::+}(1){(core::int) → self::C} in #t3;
+  self::B? c = let final self::A? #t2 = a in #t2 == null ?{self::B?} null : let final self::B #t3 = #t2.{self::A::b}{self::B} in let final void #t4 = #t2.{self::A::b} = #t3.{self::B::+}(1){(core::int) → self::C} in #t3;
 }
diff --git a/pkg/front_end/testcases/general/null_aware_postfix2.dart.weak.modular.expect b/pkg/front_end/testcases/general/null_aware_postfix2.dart.weak.modular.expect
index cc85178..bc5d862 100644
--- a/pkg/front_end/testcases/general/null_aware_postfix2.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/general/null_aware_postfix2.dart.weak.modular.expect
@@ -23,5 +23,5 @@
 static method main() → dynamic {
   self::A? a;
   let final self::A? #t1 = a in #t1 == null ?{self::B?} null : #t1.{self::A::b} = #t1.{self::A::b}{self::B}.{self::B::+}(1){(core::int) → self::C};
-  self::B? c = let final self::A? #t2 = a in #t2 == null ?{self::B?} null : let final self::B #t3 = #t2.{self::A::b}{self::B} in let final self::C #t4 = #t2.{self::A::b} = #t3.{self::B::+}(1){(core::int) → self::C} in #t3;
+  self::B? c = let final self::A? #t2 = a in #t2 == null ?{self::B?} null : let final self::B #t3 = #t2.{self::A::b}{self::B} in let final void #t4 = #t2.{self::A::b} = #t3.{self::B::+}(1){(core::int) → self::C} in #t3;
 }
diff --git a/pkg/front_end/testcases/general/null_aware_postfix2.dart.weak.transformed.expect b/pkg/front_end/testcases/general/null_aware_postfix2.dart.weak.transformed.expect
index cc85178..bc5d862 100644
--- a/pkg/front_end/testcases/general/null_aware_postfix2.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general/null_aware_postfix2.dart.weak.transformed.expect
@@ -23,5 +23,5 @@
 static method main() → dynamic {
   self::A? a;
   let final self::A? #t1 = a in #t1 == null ?{self::B?} null : #t1.{self::A::b} = #t1.{self::A::b}{self::B}.{self::B::+}(1){(core::int) → self::C};
-  self::B? c = let final self::A? #t2 = a in #t2 == null ?{self::B?} null : let final self::B #t3 = #t2.{self::A::b}{self::B} in let final self::C #t4 = #t2.{self::A::b} = #t3.{self::B::+}(1){(core::int) → self::C} in #t3;
+  self::B? c = let final self::A? #t2 = a in #t2 == null ?{self::B?} null : let final self::B #t3 = #t2.{self::A::b}{self::B} in let final void #t4 = #t2.{self::A::b} = #t3.{self::B::+}(1){(core::int) → self::C} in #t3;
 }
diff --git a/pkg/front_end/testcases/inference/infer_assign_to_property_null_aware.dart.weak.expect b/pkg/front_end/testcases/inference/infer_assign_to_property_null_aware.dart.weak.expect
index 9dadba8..c367692 100644
--- a/pkg/front_end/testcases/inference/infer_assign_to_property_null_aware.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/infer_assign_to_property_null_aware.dart.weak.expect
@@ -54,7 +54,7 @@
     self::B* v4 = let final self::Test* #t16 = t in #t16 == null ?{self::B*} null : let final self::B* #t17 = #t16.{self::Test::member}{self::B*}.{self::B::*}(self::f<self::B*>()){(self::B*) →* self::B*} in let final void #t18 = #t16.{self::Test::member} = #t17 in #t17;
     self::C* v5 = let final self::Test* #t19 = t in #t19 == null ?{self::C*} null : let final self::C* #t20 = #t19.{self::Test::member}{self::B*}.{self::B::&}(self::f<self::A*>()){(self::A*) →* self::C*} in let final void #t21 = #t19.{self::Test::member} = #t20 in #t20;
     self::B* v6 = let final self::Test* #t22 = t in #t22 == null ?{self::B*} null : let final self::B* #t23 = #t22.{self::Test::member}{self::B*}.{self::B::-}(1){(core::int*) →* self::B*} in let final void #t24 = #t22.{self::Test::member} = #t23 in #t23;
-    self::B* v7 = let final self::Test* #t25 = t in #t25 == null ?{self::B*} null : let final self::B* #t26 = #t25.{self::Test::member}{self::B*} in let final self::B* #t27 = #t25.{self::Test::member} = #t26.{self::B::-}(1){(core::int*) →* self::B*} in #t26;
+    self::B* v7 = let final self::Test* #t25 = t in #t25 == null ?{self::B*} null : let final self::B* #t26 = #t25.{self::Test::member}{self::B*} in let final void #t27 = #t25.{self::Test::member} = #t26.{self::B::-}(1){(core::int*) →* self::B*} in #t26;
   }
   abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
   abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
diff --git a/pkg/front_end/testcases/inference/infer_assign_to_property_null_aware.dart.weak.modular.expect b/pkg/front_end/testcases/inference/infer_assign_to_property_null_aware.dart.weak.modular.expect
index 9dadba8..c367692 100644
--- a/pkg/front_end/testcases/inference/infer_assign_to_property_null_aware.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/infer_assign_to_property_null_aware.dart.weak.modular.expect
@@ -54,7 +54,7 @@
     self::B* v4 = let final self::Test* #t16 = t in #t16 == null ?{self::B*} null : let final self::B* #t17 = #t16.{self::Test::member}{self::B*}.{self::B::*}(self::f<self::B*>()){(self::B*) →* self::B*} in let final void #t18 = #t16.{self::Test::member} = #t17 in #t17;
     self::C* v5 = let final self::Test* #t19 = t in #t19 == null ?{self::C*} null : let final self::C* #t20 = #t19.{self::Test::member}{self::B*}.{self::B::&}(self::f<self::A*>()){(self::A*) →* self::C*} in let final void #t21 = #t19.{self::Test::member} = #t20 in #t20;
     self::B* v6 = let final self::Test* #t22 = t in #t22 == null ?{self::B*} null : let final self::B* #t23 = #t22.{self::Test::member}{self::B*}.{self::B::-}(1){(core::int*) →* self::B*} in let final void #t24 = #t22.{self::Test::member} = #t23 in #t23;
-    self::B* v7 = let final self::Test* #t25 = t in #t25 == null ?{self::B*} null : let final self::B* #t26 = #t25.{self::Test::member}{self::B*} in let final self::B* #t27 = #t25.{self::Test::member} = #t26.{self::B::-}(1){(core::int*) →* self::B*} in #t26;
+    self::B* v7 = let final self::Test* #t25 = t in #t25 == null ?{self::B*} null : let final self::B* #t26 = #t25.{self::Test::member}{self::B*} in let final void #t27 = #t25.{self::Test::member} = #t26.{self::B::-}(1){(core::int*) →* self::B*} in #t26;
   }
   abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
   abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
diff --git a/pkg/front_end/testcases/inference/infer_assign_to_property_null_aware.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/infer_assign_to_property_null_aware.dart.weak.transformed.expect
index 9dadba8..c367692 100644
--- a/pkg/front_end/testcases/inference/infer_assign_to_property_null_aware.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/infer_assign_to_property_null_aware.dart.weak.transformed.expect
@@ -54,7 +54,7 @@
     self::B* v4 = let final self::Test* #t16 = t in #t16 == null ?{self::B*} null : let final self::B* #t17 = #t16.{self::Test::member}{self::B*}.{self::B::*}(self::f<self::B*>()){(self::B*) →* self::B*} in let final void #t18 = #t16.{self::Test::member} = #t17 in #t17;
     self::C* v5 = let final self::Test* #t19 = t in #t19 == null ?{self::C*} null : let final self::C* #t20 = #t19.{self::Test::member}{self::B*}.{self::B::&}(self::f<self::A*>()){(self::A*) →* self::C*} in let final void #t21 = #t19.{self::Test::member} = #t20 in #t20;
     self::B* v6 = let final self::Test* #t22 = t in #t22 == null ?{self::B*} null : let final self::B* #t23 = #t22.{self::Test::member}{self::B*}.{self::B::-}(1){(core::int*) →* self::B*} in let final void #t24 = #t22.{self::Test::member} = #t23 in #t23;
-    self::B* v7 = let final self::Test* #t25 = t in #t25 == null ?{self::B*} null : let final self::B* #t26 = #t25.{self::Test::member}{self::B*} in let final self::B* #t27 = #t25.{self::Test::member} = #t26.{self::B::-}(1){(core::int*) →* self::B*} in #t26;
+    self::B* v7 = let final self::Test* #t25 = t in #t25 == null ?{self::B*} null : let final self::B* #t26 = #t25.{self::Test::member}{self::B*} in let final void #t27 = #t25.{self::Test::member} = #t26.{self::B::-}(1){(core::int*) →* self::B*} in #t26;
   }
   abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
   abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
diff --git a/pkg/front_end/testcases/inference/infer_assign_to_property_null_aware2.dart.weak.expect b/pkg/front_end/testcases/inference/infer_assign_to_property_null_aware2.dart.weak.expect
index 515794b..86c15c5 100644
--- a/pkg/front_end/testcases/inference/infer_assign_to_property_null_aware2.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/infer_assign_to_property_null_aware2.dart.weak.expect
@@ -52,7 +52,7 @@
     self::B? v4 = let final self::Test? #t16 = t in #t16 == null ?{self::B?} null : let final self::B #t17 = #t16.{self::Test::member}{self::B}.{self::B::*}(self::f<self::B>()){(self::B) → self::B} in let final void #t18 = #t16.{self::Test::member} = #t17 in #t17;
     self::C? v5 = let final self::Test? #t19 = t in #t19 == null ?{self::C?} null : let final self::C #t20 = #t19.{self::Test::member}{self::B}.{self::B::&}(self::f<self::A>()){(self::A) → self::C} in let final void #t21 = #t19.{self::Test::member} = #t20 in #t20;
     self::B? v6 = let final self::Test? #t22 = t in #t22 == null ?{self::B?} null : let final self::B #t23 = #t22.{self::Test::member}{self::B}.{self::B::-}(1){(core::int) → self::B} in let final void #t24 = #t22.{self::Test::member} = #t23 in #t23;
-    self::B? v7 = let final self::Test? #t25 = t in #t25 == null ?{self::B?} null : let final self::B #t26 = #t25.{self::Test::member}{self::B} in let final self::B #t27 = #t25.{self::Test::member} = #t26.{self::B::-}(1){(core::int) → self::B} in #t26;
+    self::B? v7 = let final self::Test? #t25 = t in #t25 == null ?{self::B?} null : let final self::B #t26 = #t25.{self::Test::member}{self::B} in let final void #t27 = #t25.{self::Test::member} = #t26.{self::B::-}(1){(core::int) → self::B} in #t26;
   }
 }
 static method f<T extends core::Object? = dynamic>() → self::f::T%
diff --git a/pkg/front_end/testcases/inference/infer_assign_to_property_null_aware2.dart.weak.modular.expect b/pkg/front_end/testcases/inference/infer_assign_to_property_null_aware2.dart.weak.modular.expect
index 515794b..86c15c5 100644
--- a/pkg/front_end/testcases/inference/infer_assign_to_property_null_aware2.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/infer_assign_to_property_null_aware2.dart.weak.modular.expect
@@ -52,7 +52,7 @@
     self::B? v4 = let final self::Test? #t16 = t in #t16 == null ?{self::B?} null : let final self::B #t17 = #t16.{self::Test::member}{self::B}.{self::B::*}(self::f<self::B>()){(self::B) → self::B} in let final void #t18 = #t16.{self::Test::member} = #t17 in #t17;
     self::C? v5 = let final self::Test? #t19 = t in #t19 == null ?{self::C?} null : let final self::C #t20 = #t19.{self::Test::member}{self::B}.{self::B::&}(self::f<self::A>()){(self::A) → self::C} in let final void #t21 = #t19.{self::Test::member} = #t20 in #t20;
     self::B? v6 = let final self::Test? #t22 = t in #t22 == null ?{self::B?} null : let final self::B #t23 = #t22.{self::Test::member}{self::B}.{self::B::-}(1){(core::int) → self::B} in let final void #t24 = #t22.{self::Test::member} = #t23 in #t23;
-    self::B? v7 = let final self::Test? #t25 = t in #t25 == null ?{self::B?} null : let final self::B #t26 = #t25.{self::Test::member}{self::B} in let final self::B #t27 = #t25.{self::Test::member} = #t26.{self::B::-}(1){(core::int) → self::B} in #t26;
+    self::B? v7 = let final self::Test? #t25 = t in #t25 == null ?{self::B?} null : let final self::B #t26 = #t25.{self::Test::member}{self::B} in let final void #t27 = #t25.{self::Test::member} = #t26.{self::B::-}(1){(core::int) → self::B} in #t26;
   }
 }
 static method f<T extends core::Object? = dynamic>() → self::f::T%
diff --git a/pkg/front_end/testcases/inference/infer_assign_to_property_null_aware2.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/infer_assign_to_property_null_aware2.dart.weak.transformed.expect
index 515794b..86c15c5 100644
--- a/pkg/front_end/testcases/inference/infer_assign_to_property_null_aware2.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/infer_assign_to_property_null_aware2.dart.weak.transformed.expect
@@ -52,7 +52,7 @@
     self::B? v4 = let final self::Test? #t16 = t in #t16 == null ?{self::B?} null : let final self::B #t17 = #t16.{self::Test::member}{self::B}.{self::B::*}(self::f<self::B>()){(self::B) → self::B} in let final void #t18 = #t16.{self::Test::member} = #t17 in #t17;
     self::C? v5 = let final self::Test? #t19 = t in #t19 == null ?{self::C?} null : let final self::C #t20 = #t19.{self::Test::member}{self::B}.{self::B::&}(self::f<self::A>()){(self::A) → self::C} in let final void #t21 = #t19.{self::Test::member} = #t20 in #t20;
     self::B? v6 = let final self::Test? #t22 = t in #t22 == null ?{self::B?} null : let final self::B #t23 = #t22.{self::Test::member}{self::B}.{self::B::-}(1){(core::int) → self::B} in let final void #t24 = #t22.{self::Test::member} = #t23 in #t23;
-    self::B? v7 = let final self::Test? #t25 = t in #t25 == null ?{self::B?} null : let final self::B #t26 = #t25.{self::Test::member}{self::B} in let final self::B #t27 = #t25.{self::Test::member} = #t26.{self::B::-}(1){(core::int) → self::B} in #t26;
+    self::B? v7 = let final self::Test? #t25 = t in #t25 == null ?{self::B?} null : let final self::B #t26 = #t25.{self::Test::member}{self::B} in let final void #t27 = #t25.{self::Test::member} = #t26.{self::B::-}(1){(core::int) → self::B} in #t26;
   }
 }
 static method f<T extends core::Object? = dynamic>() → self::f::T%
diff --git a/pkg/front_end/testcases/inference/infer_assign_to_property_null_aware_upwards.dart.weak.expect b/pkg/front_end/testcases/inference/infer_assign_to_property_null_aware_upwards.dart.weak.expect
index 20a793c..e4986a3 100644
--- a/pkg/front_end/testcases/inference/infer_assign_to_property_null_aware_upwards.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/infer_assign_to_property_null_aware_upwards.dart.weak.expect
@@ -13,7 +13,7 @@
     core::int? v4 = let final self::Test1? #t2 = t in #t2 == null ?{core::int?} null : let final core::int? #t3 = #t2.{self::Test1::prop2}{core::int?} in #t3 == null ?{core::int} #t2.{self::Test1::prop2} = self::getInt() : #t3{core::int};
     core::int? v7 = let final self::Test1? #t4 = t in #t4 == null ?{core::int?} null : let final core::int #t5 = #t4.{self::Test1::prop}{core::int}.{core::num::+}(self::getInt()){(core::num) → core::int} in let final void #t6 = #t4.{self::Test1::prop} = #t5 in #t5;
     core::int? v10 = let final self::Test1? #t7 = t in #t7 == null ?{core::int?} null : let final core::int #t8 = #t7.{self::Test1::prop}{core::int}.{core::num::+}(1){(core::num) → core::int} in let final void #t9 = #t7.{self::Test1::prop} = #t8 in #t8;
-    core::int? v11 = let final self::Test1? #t10 = t in #t10 == null ?{core::int?} null : let final core::int #t11 = #t10.{self::Test1::prop}{core::int} in let final core::int #t12 = #t10.{self::Test1::prop} = #t11.{core::num::+}(1){(core::num) → core::int} in #t11;
+    core::int? v11 = let final self::Test1? #t10 = t in #t10 == null ?{core::int?} null : let final core::int #t11 = #t10.{self::Test1::prop}{core::int} in let final void #t12 = #t10.{self::Test1::prop} = #t11.{core::num::+}(1){(core::num) → core::int} in #t11;
   }
 }
 class Test2 extends core::Object {
@@ -33,7 +33,7 @@
     core::num? v8 = let final self::Test2? #t25 = t in #t25 == null ?{core::num?} null : let final core::num #t26 = #t25.{self::Test2::prop}{core::num}.{core::num::+}(self::getNum()){(core::num) → core::num} in let final void #t27 = #t25.{self::Test2::prop} = #t26 in #t26;
     core::double? v9 = let final self::Test2? #t28 = t in #t28 == null ?{core::double?} null : let final core::double #t29 = #t28.{self::Test2::prop}{core::num}.{core::num::+}(self::getDouble()){(core::num) → core::double} in let final void #t30 = #t28.{self::Test2::prop} = #t29 in #t29;
     core::num? v10 = let final self::Test2? #t31 = t in #t31 == null ?{core::num?} null : let final core::num #t32 = #t31.{self::Test2::prop}{core::num}.{core::num::+}(1){(core::num) → core::num} in let final void #t33 = #t31.{self::Test2::prop} = #t32 in #t32;
-    core::num? v11 = let final self::Test2? #t34 = t in #t34 == null ?{core::num?} null : let final core::num #t35 = #t34.{self::Test2::prop}{core::num} in let final core::num #t36 = #t34.{self::Test2::prop} = #t35.{core::num::+}(1){(core::num) → core::num} in #t35;
+    core::num? v11 = let final self::Test2? #t34 = t in #t34 == null ?{core::num?} null : let final core::num #t35 = #t34.{self::Test2::prop}{core::num} in let final void #t36 = #t34.{self::Test2::prop} = #t35.{core::num::+}(1){(core::num) → core::num} in #t35;
   }
 }
 class Test3 extends core::Object {
@@ -49,7 +49,7 @@
     core::double? v8 = let final self::Test3? #t43 = t in #t43 == null ?{core::double?} null : let final core::double #t44 = #t43.{self::Test3::prop}{core::double}.{core::double::+}(self::getNum()){(core::num) → core::double} in let final void #t45 = #t43.{self::Test3::prop} = #t44 in #t44;
     core::double? v9 = let final self::Test3? #t46 = t in #t46 == null ?{core::double?} null : let final core::double #t47 = #t46.{self::Test3::prop}{core::double}.{core::double::+}(self::getDouble()){(core::num) → core::double} in let final void #t48 = #t46.{self::Test3::prop} = #t47 in #t47;
     core::double? v10 = let final self::Test3? #t49 = t in #t49 == null ?{core::double?} null : let final core::double #t50 = #t49.{self::Test3::prop}{core::double}.{core::double::+}(1){(core::num) → core::double} in let final void #t51 = #t49.{self::Test3::prop} = #t50 in #t50;
-    core::double? v11 = let final self::Test3? #t52 = t in #t52 == null ?{core::double?} null : let final core::double #t53 = #t52.{self::Test3::prop}{core::double} in let final core::double #t54 = #t52.{self::Test3::prop} = #t53.{core::double::+}(1){(core::num) → core::double} in #t53;
+    core::double? v11 = let final self::Test3? #t52 = t in #t52 == null ?{core::double?} null : let final core::double #t53 = #t52.{self::Test3::prop}{core::double} in let final void #t54 = #t52.{self::Test3::prop} = #t53.{core::double::+}(1){(core::num) → core::double} in #t53;
   }
 }
 static method getInt() → core::int
diff --git a/pkg/front_end/testcases/inference/infer_assign_to_property_null_aware_upwards.dart.weak.modular.expect b/pkg/front_end/testcases/inference/infer_assign_to_property_null_aware_upwards.dart.weak.modular.expect
index 20a793c..e4986a3 100644
--- a/pkg/front_end/testcases/inference/infer_assign_to_property_null_aware_upwards.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/infer_assign_to_property_null_aware_upwards.dart.weak.modular.expect
@@ -13,7 +13,7 @@
     core::int? v4 = let final self::Test1? #t2 = t in #t2 == null ?{core::int?} null : let final core::int? #t3 = #t2.{self::Test1::prop2}{core::int?} in #t3 == null ?{core::int} #t2.{self::Test1::prop2} = self::getInt() : #t3{core::int};
     core::int? v7 = let final self::Test1? #t4 = t in #t4 == null ?{core::int?} null : let final core::int #t5 = #t4.{self::Test1::prop}{core::int}.{core::num::+}(self::getInt()){(core::num) → core::int} in let final void #t6 = #t4.{self::Test1::prop} = #t5 in #t5;
     core::int? v10 = let final self::Test1? #t7 = t in #t7 == null ?{core::int?} null : let final core::int #t8 = #t7.{self::Test1::prop}{core::int}.{core::num::+}(1){(core::num) → core::int} in let final void #t9 = #t7.{self::Test1::prop} = #t8 in #t8;
-    core::int? v11 = let final self::Test1? #t10 = t in #t10 == null ?{core::int?} null : let final core::int #t11 = #t10.{self::Test1::prop}{core::int} in let final core::int #t12 = #t10.{self::Test1::prop} = #t11.{core::num::+}(1){(core::num) → core::int} in #t11;
+    core::int? v11 = let final self::Test1? #t10 = t in #t10 == null ?{core::int?} null : let final core::int #t11 = #t10.{self::Test1::prop}{core::int} in let final void #t12 = #t10.{self::Test1::prop} = #t11.{core::num::+}(1){(core::num) → core::int} in #t11;
   }
 }
 class Test2 extends core::Object {
@@ -33,7 +33,7 @@
     core::num? v8 = let final self::Test2? #t25 = t in #t25 == null ?{core::num?} null : let final core::num #t26 = #t25.{self::Test2::prop}{core::num}.{core::num::+}(self::getNum()){(core::num) → core::num} in let final void #t27 = #t25.{self::Test2::prop} = #t26 in #t26;
     core::double? v9 = let final self::Test2? #t28 = t in #t28 == null ?{core::double?} null : let final core::double #t29 = #t28.{self::Test2::prop}{core::num}.{core::num::+}(self::getDouble()){(core::num) → core::double} in let final void #t30 = #t28.{self::Test2::prop} = #t29 in #t29;
     core::num? v10 = let final self::Test2? #t31 = t in #t31 == null ?{core::num?} null : let final core::num #t32 = #t31.{self::Test2::prop}{core::num}.{core::num::+}(1){(core::num) → core::num} in let final void #t33 = #t31.{self::Test2::prop} = #t32 in #t32;
-    core::num? v11 = let final self::Test2? #t34 = t in #t34 == null ?{core::num?} null : let final core::num #t35 = #t34.{self::Test2::prop}{core::num} in let final core::num #t36 = #t34.{self::Test2::prop} = #t35.{core::num::+}(1){(core::num) → core::num} in #t35;
+    core::num? v11 = let final self::Test2? #t34 = t in #t34 == null ?{core::num?} null : let final core::num #t35 = #t34.{self::Test2::prop}{core::num} in let final void #t36 = #t34.{self::Test2::prop} = #t35.{core::num::+}(1){(core::num) → core::num} in #t35;
   }
 }
 class Test3 extends core::Object {
@@ -49,7 +49,7 @@
     core::double? v8 = let final self::Test3? #t43 = t in #t43 == null ?{core::double?} null : let final core::double #t44 = #t43.{self::Test3::prop}{core::double}.{core::double::+}(self::getNum()){(core::num) → core::double} in let final void #t45 = #t43.{self::Test3::prop} = #t44 in #t44;
     core::double? v9 = let final self::Test3? #t46 = t in #t46 == null ?{core::double?} null : let final core::double #t47 = #t46.{self::Test3::prop}{core::double}.{core::double::+}(self::getDouble()){(core::num) → core::double} in let final void #t48 = #t46.{self::Test3::prop} = #t47 in #t47;
     core::double? v10 = let final self::Test3? #t49 = t in #t49 == null ?{core::double?} null : let final core::double #t50 = #t49.{self::Test3::prop}{core::double}.{core::double::+}(1){(core::num) → core::double} in let final void #t51 = #t49.{self::Test3::prop} = #t50 in #t50;
-    core::double? v11 = let final self::Test3? #t52 = t in #t52 == null ?{core::double?} null : let final core::double #t53 = #t52.{self::Test3::prop}{core::double} in let final core::double #t54 = #t52.{self::Test3::prop} = #t53.{core::double::+}(1){(core::num) → core::double} in #t53;
+    core::double? v11 = let final self::Test3? #t52 = t in #t52 == null ?{core::double?} null : let final core::double #t53 = #t52.{self::Test3::prop}{core::double} in let final void #t54 = #t52.{self::Test3::prop} = #t53.{core::double::+}(1){(core::num) → core::double} in #t53;
   }
 }
 static method getInt() → core::int
diff --git a/pkg/front_end/testcases/inference/infer_assign_to_property_null_aware_upwards.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/infer_assign_to_property_null_aware_upwards.dart.weak.transformed.expect
index 20a793c..e4986a3 100644
--- a/pkg/front_end/testcases/inference/infer_assign_to_property_null_aware_upwards.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/infer_assign_to_property_null_aware_upwards.dart.weak.transformed.expect
@@ -13,7 +13,7 @@
     core::int? v4 = let final self::Test1? #t2 = t in #t2 == null ?{core::int?} null : let final core::int? #t3 = #t2.{self::Test1::prop2}{core::int?} in #t3 == null ?{core::int} #t2.{self::Test1::prop2} = self::getInt() : #t3{core::int};
     core::int? v7 = let final self::Test1? #t4 = t in #t4 == null ?{core::int?} null : let final core::int #t5 = #t4.{self::Test1::prop}{core::int}.{core::num::+}(self::getInt()){(core::num) → core::int} in let final void #t6 = #t4.{self::Test1::prop} = #t5 in #t5;
     core::int? v10 = let final self::Test1? #t7 = t in #t7 == null ?{core::int?} null : let final core::int #t8 = #t7.{self::Test1::prop}{core::int}.{core::num::+}(1){(core::num) → core::int} in let final void #t9 = #t7.{self::Test1::prop} = #t8 in #t8;
-    core::int? v11 = let final self::Test1? #t10 = t in #t10 == null ?{core::int?} null : let final core::int #t11 = #t10.{self::Test1::prop}{core::int} in let final core::int #t12 = #t10.{self::Test1::prop} = #t11.{core::num::+}(1){(core::num) → core::int} in #t11;
+    core::int? v11 = let final self::Test1? #t10 = t in #t10 == null ?{core::int?} null : let final core::int #t11 = #t10.{self::Test1::prop}{core::int} in let final void #t12 = #t10.{self::Test1::prop} = #t11.{core::num::+}(1){(core::num) → core::int} in #t11;
   }
 }
 class Test2 extends core::Object {
@@ -33,7 +33,7 @@
     core::num? v8 = let final self::Test2? #t25 = t in #t25 == null ?{core::num?} null : let final core::num #t26 = #t25.{self::Test2::prop}{core::num}.{core::num::+}(self::getNum()){(core::num) → core::num} in let final void #t27 = #t25.{self::Test2::prop} = #t26 in #t26;
     core::double? v9 = let final self::Test2? #t28 = t in #t28 == null ?{core::double?} null : let final core::double #t29 = #t28.{self::Test2::prop}{core::num}.{core::num::+}(self::getDouble()){(core::num) → core::double} in let final void #t30 = #t28.{self::Test2::prop} = #t29 in #t29;
     core::num? v10 = let final self::Test2? #t31 = t in #t31 == null ?{core::num?} null : let final core::num #t32 = #t31.{self::Test2::prop}{core::num}.{core::num::+}(1){(core::num) → core::num} in let final void #t33 = #t31.{self::Test2::prop} = #t32 in #t32;
-    core::num? v11 = let final self::Test2? #t34 = t in #t34 == null ?{core::num?} null : let final core::num #t35 = #t34.{self::Test2::prop}{core::num} in let final core::num #t36 = #t34.{self::Test2::prop} = #t35.{core::num::+}(1){(core::num) → core::num} in #t35;
+    core::num? v11 = let final self::Test2? #t34 = t in #t34 == null ?{core::num?} null : let final core::num #t35 = #t34.{self::Test2::prop}{core::num} in let final void #t36 = #t34.{self::Test2::prop} = #t35.{core::num::+}(1){(core::num) → core::num} in #t35;
   }
 }
 class Test3 extends core::Object {
@@ -49,7 +49,7 @@
     core::double? v8 = let final self::Test3? #t43 = t in #t43 == null ?{core::double?} null : let final core::double #t44 = #t43.{self::Test3::prop}{core::double}.{core::double::+}(self::getNum()){(core::num) → core::double} in let final void #t45 = #t43.{self::Test3::prop} = #t44 in #t44;
     core::double? v9 = let final self::Test3? #t46 = t in #t46 == null ?{core::double?} null : let final core::double #t47 = #t46.{self::Test3::prop}{core::double}.{core::double::+}(self::getDouble()){(core::num) → core::double} in let final void #t48 = #t46.{self::Test3::prop} = #t47 in #t47;
     core::double? v10 = let final self::Test3? #t49 = t in #t49 == null ?{core::double?} null : let final core::double #t50 = #t49.{self::Test3::prop}{core::double}.{core::double::+}(1){(core::num) → core::double} in let final void #t51 = #t49.{self::Test3::prop} = #t50 in #t50;
-    core::double? v11 = let final self::Test3? #t52 = t in #t52 == null ?{core::double?} null : let final core::double #t53 = #t52.{self::Test3::prop}{core::double} in let final core::double #t54 = #t52.{self::Test3::prop} = #t53.{core::double::+}(1){(core::num) → core::double} in #t53;
+    core::double? v11 = let final self::Test3? #t52 = t in #t52 == null ?{core::double?} null : let final core::double #t53 = #t52.{self::Test3::prop}{core::double} in let final void #t54 = #t52.{self::Test3::prop} = #t53.{core::double::+}(1){(core::num) → core::double} in #t53;
   }
 }
 static method getInt() → core::int
diff --git a/pkg/front_end/testcases/inference_new/infer_assign_to_property_null_aware.dart.weak.expect b/pkg/front_end/testcases/inference_new/infer_assign_to_property_null_aware.dart.weak.expect
index e961535..681f9aa 100644
--- a/pkg/front_end/testcases/inference_new/infer_assign_to_property_null_aware.dart.weak.expect
+++ b/pkg/front_end/testcases/inference_new/infer_assign_to_property_null_aware.dart.weak.expect
@@ -54,7 +54,7 @@
     self::B* v4 = let final self::Test* #t16 = t in #t16 == null ?{self::B*} null : let final self::B* #t17 = #t16.{self::Test::member}{self::B*}.{self::B::*}(self::f<self::B*>()){(self::B*) →* self::B*} in let final void #t18 = #t16.{self::Test::member} = #t17 in #t17;
     self::C* v5 = let final self::Test* #t19 = t in #t19 == null ?{self::C*} null : let final self::C* #t20 = #t19.{self::Test::member}{self::B*}.{self::B::&}(self::f<self::A*>()){(self::A*) →* self::C*} in let final void #t21 = #t19.{self::Test::member} = #t20 in #t20;
     self::B* v6 = let final self::Test* #t22 = t in #t22 == null ?{self::B*} null : let final self::B* #t23 = #t22.{self::Test::member}{self::B*}.{self::B::-}(1){(core::int*) →* self::B*} in let final void #t24 = #t22.{self::Test::member} = #t23 in #t23;
-    self::B* v7 = let final self::Test* #t25 = t in #t25 == null ?{self::B*} null : let final self::B* #t26 = #t25.{self::Test::member}{self::B*} in let final self::B* #t27 = #t25.{self::Test::member} = #t26.{self::B::-}(1){(core::int*) →* self::B*} in #t26;
+    self::B* v7 = let final self::Test* #t25 = t in #t25 == null ?{self::B*} null : let final self::B* #t26 = #t25.{self::Test::member}{self::B*} in let final void #t27 = #t25.{self::Test::member} = #t26.{self::B::-}(1){(core::int*) →* self::B*} in #t26;
   }
   abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
   abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
diff --git a/pkg/front_end/testcases/inference_new/infer_assign_to_property_null_aware.dart.weak.modular.expect b/pkg/front_end/testcases/inference_new/infer_assign_to_property_null_aware.dart.weak.modular.expect
index e961535..681f9aa 100644
--- a/pkg/front_end/testcases/inference_new/infer_assign_to_property_null_aware.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference_new/infer_assign_to_property_null_aware.dart.weak.modular.expect
@@ -54,7 +54,7 @@
     self::B* v4 = let final self::Test* #t16 = t in #t16 == null ?{self::B*} null : let final self::B* #t17 = #t16.{self::Test::member}{self::B*}.{self::B::*}(self::f<self::B*>()){(self::B*) →* self::B*} in let final void #t18 = #t16.{self::Test::member} = #t17 in #t17;
     self::C* v5 = let final self::Test* #t19 = t in #t19 == null ?{self::C*} null : let final self::C* #t20 = #t19.{self::Test::member}{self::B*}.{self::B::&}(self::f<self::A*>()){(self::A*) →* self::C*} in let final void #t21 = #t19.{self::Test::member} = #t20 in #t20;
     self::B* v6 = let final self::Test* #t22 = t in #t22 == null ?{self::B*} null : let final self::B* #t23 = #t22.{self::Test::member}{self::B*}.{self::B::-}(1){(core::int*) →* self::B*} in let final void #t24 = #t22.{self::Test::member} = #t23 in #t23;
-    self::B* v7 = let final self::Test* #t25 = t in #t25 == null ?{self::B*} null : let final self::B* #t26 = #t25.{self::Test::member}{self::B*} in let final self::B* #t27 = #t25.{self::Test::member} = #t26.{self::B::-}(1){(core::int*) →* self::B*} in #t26;
+    self::B* v7 = let final self::Test* #t25 = t in #t25 == null ?{self::B*} null : let final self::B* #t26 = #t25.{self::Test::member}{self::B*} in let final void #t27 = #t25.{self::Test::member} = #t26.{self::B::-}(1){(core::int*) →* self::B*} in #t26;
   }
   abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
   abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
diff --git a/pkg/front_end/testcases/inference_new/infer_assign_to_property_null_aware.dart.weak.transformed.expect b/pkg/front_end/testcases/inference_new/infer_assign_to_property_null_aware.dart.weak.transformed.expect
index e961535..681f9aa 100644
--- a/pkg/front_end/testcases/inference_new/infer_assign_to_property_null_aware.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference_new/infer_assign_to_property_null_aware.dart.weak.transformed.expect
@@ -54,7 +54,7 @@
     self::B* v4 = let final self::Test* #t16 = t in #t16 == null ?{self::B*} null : let final self::B* #t17 = #t16.{self::Test::member}{self::B*}.{self::B::*}(self::f<self::B*>()){(self::B*) →* self::B*} in let final void #t18 = #t16.{self::Test::member} = #t17 in #t17;
     self::C* v5 = let final self::Test* #t19 = t in #t19 == null ?{self::C*} null : let final self::C* #t20 = #t19.{self::Test::member}{self::B*}.{self::B::&}(self::f<self::A*>()){(self::A*) →* self::C*} in let final void #t21 = #t19.{self::Test::member} = #t20 in #t20;
     self::B* v6 = let final self::Test* #t22 = t in #t22 == null ?{self::B*} null : let final self::B* #t23 = #t22.{self::Test::member}{self::B*}.{self::B::-}(1){(core::int*) →* self::B*} in let final void #t24 = #t22.{self::Test::member} = #t23 in #t23;
-    self::B* v7 = let final self::Test* #t25 = t in #t25 == null ?{self::B*} null : let final self::B* #t26 = #t25.{self::Test::member}{self::B*} in let final self::B* #t27 = #t25.{self::Test::member} = #t26.{self::B::-}(1){(core::int*) →* self::B*} in #t26;
+    self::B* v7 = let final self::Test* #t25 = t in #t25 == null ?{self::B*} null : let final self::B* #t26 = #t25.{self::Test::member}{self::B*} in let final void #t27 = #t25.{self::Test::member} = #t26.{self::B::-}(1){(core::int*) →* self::B*} in #t26;
   }
   abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
   abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
diff --git a/pkg/front_end/testcases/inference_new/infer_assign_to_property_null_aware2.dart.weak.expect b/pkg/front_end/testcases/inference_new/infer_assign_to_property_null_aware2.dart.weak.expect
index 5aa69ad..aa67c0b 100644
--- a/pkg/front_end/testcases/inference_new/infer_assign_to_property_null_aware2.dart.weak.expect
+++ b/pkg/front_end/testcases/inference_new/infer_assign_to_property_null_aware2.dart.weak.expect
@@ -45,7 +45,7 @@
     self::B? v4 = let final self::Test? #t16 = t in #t16 == null ?{self::B?} null : let final self::B #t17 = #t16.{self::Test::member}{self::B}.{self::B::*}(self::f<self::B>()){(self::B) → self::B} in let final void #t18 = #t16.{self::Test::member} = #t17 in #t17;
     self::C? v5 = let final self::Test? #t19 = t in #t19 == null ?{self::C?} null : let final self::C #t20 = #t19.{self::Test::member}{self::B}.{self::B::&}(self::f<self::A>()){(self::A) → self::C} in let final void #t21 = #t19.{self::Test::member} = #t20 in #t20;
     self::B? v6 = let final self::Test? #t22 = t in #t22 == null ?{self::B?} null : let final self::B #t23 = #t22.{self::Test::member}{self::B}.{self::B::-}(1){(core::int) → self::B} in let final void #t24 = #t22.{self::Test::member} = #t23 in #t23;
-    self::B? v7 = let final self::Test? #t25 = t in #t25 == null ?{self::B?} null : let final self::B #t26 = #t25.{self::Test::member}{self::B} in let final self::B #t27 = #t25.{self::Test::member} = #t26.{self::B::-}(1){(core::int) → self::B} in #t26;
+    self::B? v7 = let final self::Test? #t25 = t in #t25 == null ?{self::B?} null : let final self::B #t26 = #t25.{self::Test::member}{self::B} in let final void #t27 = #t25.{self::Test::member} = #t26.{self::B::-}(1){(core::int) → self::B} in #t26;
   }
 }
 static method f<T extends core::Object? = dynamic>() → self::f::T%
diff --git a/pkg/front_end/testcases/inference_new/infer_assign_to_property_null_aware2.dart.weak.modular.expect b/pkg/front_end/testcases/inference_new/infer_assign_to_property_null_aware2.dart.weak.modular.expect
index 5aa69ad..aa67c0b 100644
--- a/pkg/front_end/testcases/inference_new/infer_assign_to_property_null_aware2.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference_new/infer_assign_to_property_null_aware2.dart.weak.modular.expect
@@ -45,7 +45,7 @@
     self::B? v4 = let final self::Test? #t16 = t in #t16 == null ?{self::B?} null : let final self::B #t17 = #t16.{self::Test::member}{self::B}.{self::B::*}(self::f<self::B>()){(self::B) → self::B} in let final void #t18 = #t16.{self::Test::member} = #t17 in #t17;
     self::C? v5 = let final self::Test? #t19 = t in #t19 == null ?{self::C?} null : let final self::C #t20 = #t19.{self::Test::member}{self::B}.{self::B::&}(self::f<self::A>()){(self::A) → self::C} in let final void #t21 = #t19.{self::Test::member} = #t20 in #t20;
     self::B? v6 = let final self::Test? #t22 = t in #t22 == null ?{self::B?} null : let final self::B #t23 = #t22.{self::Test::member}{self::B}.{self::B::-}(1){(core::int) → self::B} in let final void #t24 = #t22.{self::Test::member} = #t23 in #t23;
-    self::B? v7 = let final self::Test? #t25 = t in #t25 == null ?{self::B?} null : let final self::B #t26 = #t25.{self::Test::member}{self::B} in let final self::B #t27 = #t25.{self::Test::member} = #t26.{self::B::-}(1){(core::int) → self::B} in #t26;
+    self::B? v7 = let final self::Test? #t25 = t in #t25 == null ?{self::B?} null : let final self::B #t26 = #t25.{self::Test::member}{self::B} in let final void #t27 = #t25.{self::Test::member} = #t26.{self::B::-}(1){(core::int) → self::B} in #t26;
   }
 }
 static method f<T extends core::Object? = dynamic>() → self::f::T%
diff --git a/pkg/front_end/testcases/inference_new/infer_assign_to_property_null_aware2.dart.weak.transformed.expect b/pkg/front_end/testcases/inference_new/infer_assign_to_property_null_aware2.dart.weak.transformed.expect
index 5aa69ad..aa67c0b 100644
--- a/pkg/front_end/testcases/inference_new/infer_assign_to_property_null_aware2.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference_new/infer_assign_to_property_null_aware2.dart.weak.transformed.expect
@@ -45,7 +45,7 @@
     self::B? v4 = let final self::Test? #t16 = t in #t16 == null ?{self::B?} null : let final self::B #t17 = #t16.{self::Test::member}{self::B}.{self::B::*}(self::f<self::B>()){(self::B) → self::B} in let final void #t18 = #t16.{self::Test::member} = #t17 in #t17;
     self::C? v5 = let final self::Test? #t19 = t in #t19 == null ?{self::C?} null : let final self::C #t20 = #t19.{self::Test::member}{self::B}.{self::B::&}(self::f<self::A>()){(self::A) → self::C} in let final void #t21 = #t19.{self::Test::member} = #t20 in #t20;
     self::B? v6 = let final self::Test? #t22 = t in #t22 == null ?{self::B?} null : let final self::B #t23 = #t22.{self::Test::member}{self::B}.{self::B::-}(1){(core::int) → self::B} in let final void #t24 = #t22.{self::Test::member} = #t23 in #t23;
-    self::B? v7 = let final self::Test? #t25 = t in #t25 == null ?{self::B?} null : let final self::B #t26 = #t25.{self::Test::member}{self::B} in let final self::B #t27 = #t25.{self::Test::member} = #t26.{self::B::-}(1){(core::int) → self::B} in #t26;
+    self::B? v7 = let final self::Test? #t25 = t in #t25 == null ?{self::B?} null : let final self::B #t26 = #t25.{self::Test::member}{self::B} in let final void #t27 = #t25.{self::Test::member} = #t26.{self::B::-}(1){(core::int) → self::B} in #t26;
   }
 }
 static method f<T extends core::Object? = dynamic>() → self::f::T%
diff --git a/pkg/front_end/testcases/inference_new/infer_assign_to_property_null_aware_upwards.dart.weak.expect b/pkg/front_end/testcases/inference_new/infer_assign_to_property_null_aware_upwards.dart.weak.expect
index 66e390b..1e360b8 100644
--- a/pkg/front_end/testcases/inference_new/infer_assign_to_property_null_aware_upwards.dart.weak.expect
+++ b/pkg/front_end/testcases/inference_new/infer_assign_to_property_null_aware_upwards.dart.weak.expect
@@ -15,7 +15,7 @@
     core::int* v7 = let final self::Test1* #t7 = t in #t7 == null ?{core::int*} null : let final core::int* #t8 = #t7.{self::Test1::prop}{core::int*}.{core::num::+}(self::getInt()){(core::num*) →* core::int*} in let final void #t9 = #t7.{self::Test1::prop} = #t8 in #t8;
     core::num* v8 = let final self::Test1* #t10 = t in #t10 == null ?{core::num*} null : let final core::num* #t11 = #t10.{self::Test1::prop}{core::int*}.{core::num::+}(self::getNum()){(core::num*) →* core::num*} as{TypeError} core::int* in let final void #t12 = #t10.{self::Test1::prop} = #t11 in #t11;
     core::int* v10 = let final self::Test1* #t13 = t in #t13 == null ?{core::int*} null : let final core::int* #t14 = #t13.{self::Test1::prop}{core::int*}.{core::num::+}(1){(core::num*) →* core::int*} in let final void #t15 = #t13.{self::Test1::prop} = #t14 in #t14;
-    core::int* v11 = let final self::Test1* #t16 = t in #t16 == null ?{core::int*} null : let final core::int* #t17 = #t16.{self::Test1::prop}{core::int*} in let final core::int* #t18 = #t16.{self::Test1::prop} = #t17.{core::num::+}(1){(core::num*) →* core::int*} in #t17;
+    core::int* v11 = let final self::Test1* #t16 = t in #t16 == null ?{core::int*} null : let final core::int* #t17 = #t16.{self::Test1::prop}{core::int*} in let final void #t18 = #t16.{self::Test1::prop} = #t17.{core::num::+}(1){(core::num*) →* core::int*} in #t17;
   }
   abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
   abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
@@ -44,7 +44,7 @@
     core::num* v8 = let final self::Test2* #t31 = t in #t31 == null ?{core::num*} null : let final core::num* #t32 = #t31.{self::Test2::prop}{core::num*}.{core::num::+}(self::getNum()){(core::num*) →* core::num*} in let final void #t33 = #t31.{self::Test2::prop} = #t32 in #t32;
     core::num* v9 = let final self::Test2* #t34 = t in #t34 == null ?{core::num*} null : let final core::num* #t35 = #t34.{self::Test2::prop}{core::num*}.{core::num::+}(self::getDouble()){(core::num*) →* core::num*} in let final void #t36 = #t34.{self::Test2::prop} = #t35 in #t35;
     core::num* v10 = let final self::Test2* #t37 = t in #t37 == null ?{core::num*} null : let final core::num* #t38 = #t37.{self::Test2::prop}{core::num*}.{core::num::+}(1){(core::num*) →* core::num*} in let final void #t39 = #t37.{self::Test2::prop} = #t38 in #t38;
-    core::num* v11 = let final self::Test2* #t40 = t in #t40 == null ?{core::num*} null : let final core::num* #t41 = #t40.{self::Test2::prop}{core::num*} in let final core::num* #t42 = #t40.{self::Test2::prop} = #t41.{core::num::+}(1){(core::num*) →* core::num*} in #t41;
+    core::num* v11 = let final self::Test2* #t40 = t in #t40 == null ?{core::num*} null : let final core::num* #t41 = #t40.{self::Test2::prop}{core::num*} in let final void #t42 = #t40.{self::Test2::prop} = #t41.{core::num::+}(1){(core::num*) →* core::num*} in #t41;
   }
   abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
   abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
@@ -71,7 +71,7 @@
     core::double* v8 = let final self::Test3* #t52 = t in #t52 == null ?{core::double*} null : let final core::double* #t53 = #t52.{self::Test3::prop}{core::double*}.{core::double::+}(self::getNum()){(core::num*) →* core::double*} in let final void #t54 = #t52.{self::Test3::prop} = #t53 in #t53;
     core::double* v9 = let final self::Test3* #t55 = t in #t55 == null ?{core::double*} null : let final core::double* #t56 = #t55.{self::Test3::prop}{core::double*}.{core::double::+}(self::getDouble()){(core::num*) →* core::double*} in let final void #t57 = #t55.{self::Test3::prop} = #t56 in #t56;
     core::double* v10 = let final self::Test3* #t58 = t in #t58 == null ?{core::double*} null : let final core::double* #t59 = #t58.{self::Test3::prop}{core::double*}.{core::double::+}(1){(core::num*) →* core::double*} in let final void #t60 = #t58.{self::Test3::prop} = #t59 in #t59;
-    core::double* v11 = let final self::Test3* #t61 = t in #t61 == null ?{core::double*} null : let final core::double* #t62 = #t61.{self::Test3::prop}{core::double*} in let final core::double* #t63 = #t61.{self::Test3::prop} = #t62.{core::double::+}(1){(core::num*) →* core::double*} in #t62;
+    core::double* v11 = let final self::Test3* #t61 = t in #t61 == null ?{core::double*} null : let final core::double* #t62 = #t61.{self::Test3::prop}{core::double*} in let final void #t63 = #t61.{self::Test3::prop} = #t62.{core::double::+}(1){(core::num*) →* core::double*} in #t62;
   }
   abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
   abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
diff --git a/pkg/front_end/testcases/inference_new/infer_assign_to_property_null_aware_upwards.dart.weak.modular.expect b/pkg/front_end/testcases/inference_new/infer_assign_to_property_null_aware_upwards.dart.weak.modular.expect
index 66e390b..1e360b8 100644
--- a/pkg/front_end/testcases/inference_new/infer_assign_to_property_null_aware_upwards.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference_new/infer_assign_to_property_null_aware_upwards.dart.weak.modular.expect
@@ -15,7 +15,7 @@
     core::int* v7 = let final self::Test1* #t7 = t in #t7 == null ?{core::int*} null : let final core::int* #t8 = #t7.{self::Test1::prop}{core::int*}.{core::num::+}(self::getInt()){(core::num*) →* core::int*} in let final void #t9 = #t7.{self::Test1::prop} = #t8 in #t8;
     core::num* v8 = let final self::Test1* #t10 = t in #t10 == null ?{core::num*} null : let final core::num* #t11 = #t10.{self::Test1::prop}{core::int*}.{core::num::+}(self::getNum()){(core::num*) →* core::num*} as{TypeError} core::int* in let final void #t12 = #t10.{self::Test1::prop} = #t11 in #t11;
     core::int* v10 = let final self::Test1* #t13 = t in #t13 == null ?{core::int*} null : let final core::int* #t14 = #t13.{self::Test1::prop}{core::int*}.{core::num::+}(1){(core::num*) →* core::int*} in let final void #t15 = #t13.{self::Test1::prop} = #t14 in #t14;
-    core::int* v11 = let final self::Test1* #t16 = t in #t16 == null ?{core::int*} null : let final core::int* #t17 = #t16.{self::Test1::prop}{core::int*} in let final core::int* #t18 = #t16.{self::Test1::prop} = #t17.{core::num::+}(1){(core::num*) →* core::int*} in #t17;
+    core::int* v11 = let final self::Test1* #t16 = t in #t16 == null ?{core::int*} null : let final core::int* #t17 = #t16.{self::Test1::prop}{core::int*} in let final void #t18 = #t16.{self::Test1::prop} = #t17.{core::num::+}(1){(core::num*) →* core::int*} in #t17;
   }
   abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
   abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
@@ -44,7 +44,7 @@
     core::num* v8 = let final self::Test2* #t31 = t in #t31 == null ?{core::num*} null : let final core::num* #t32 = #t31.{self::Test2::prop}{core::num*}.{core::num::+}(self::getNum()){(core::num*) →* core::num*} in let final void #t33 = #t31.{self::Test2::prop} = #t32 in #t32;
     core::num* v9 = let final self::Test2* #t34 = t in #t34 == null ?{core::num*} null : let final core::num* #t35 = #t34.{self::Test2::prop}{core::num*}.{core::num::+}(self::getDouble()){(core::num*) →* core::num*} in let final void #t36 = #t34.{self::Test2::prop} = #t35 in #t35;
     core::num* v10 = let final self::Test2* #t37 = t in #t37 == null ?{core::num*} null : let final core::num* #t38 = #t37.{self::Test2::prop}{core::num*}.{core::num::+}(1){(core::num*) →* core::num*} in let final void #t39 = #t37.{self::Test2::prop} = #t38 in #t38;
-    core::num* v11 = let final self::Test2* #t40 = t in #t40 == null ?{core::num*} null : let final core::num* #t41 = #t40.{self::Test2::prop}{core::num*} in let final core::num* #t42 = #t40.{self::Test2::prop} = #t41.{core::num::+}(1){(core::num*) →* core::num*} in #t41;
+    core::num* v11 = let final self::Test2* #t40 = t in #t40 == null ?{core::num*} null : let final core::num* #t41 = #t40.{self::Test2::prop}{core::num*} in let final void #t42 = #t40.{self::Test2::prop} = #t41.{core::num::+}(1){(core::num*) →* core::num*} in #t41;
   }
   abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
   abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
@@ -71,7 +71,7 @@
     core::double* v8 = let final self::Test3* #t52 = t in #t52 == null ?{core::double*} null : let final core::double* #t53 = #t52.{self::Test3::prop}{core::double*}.{core::double::+}(self::getNum()){(core::num*) →* core::double*} in let final void #t54 = #t52.{self::Test3::prop} = #t53 in #t53;
     core::double* v9 = let final self::Test3* #t55 = t in #t55 == null ?{core::double*} null : let final core::double* #t56 = #t55.{self::Test3::prop}{core::double*}.{core::double::+}(self::getDouble()){(core::num*) →* core::double*} in let final void #t57 = #t55.{self::Test3::prop} = #t56 in #t56;
     core::double* v10 = let final self::Test3* #t58 = t in #t58 == null ?{core::double*} null : let final core::double* #t59 = #t58.{self::Test3::prop}{core::double*}.{core::double::+}(1){(core::num*) →* core::double*} in let final void #t60 = #t58.{self::Test3::prop} = #t59 in #t59;
-    core::double* v11 = let final self::Test3* #t61 = t in #t61 == null ?{core::double*} null : let final core::double* #t62 = #t61.{self::Test3::prop}{core::double*} in let final core::double* #t63 = #t61.{self::Test3::prop} = #t62.{core::double::+}(1){(core::num*) →* core::double*} in #t62;
+    core::double* v11 = let final self::Test3* #t61 = t in #t61 == null ?{core::double*} null : let final core::double* #t62 = #t61.{self::Test3::prop}{core::double*} in let final void #t63 = #t61.{self::Test3::prop} = #t62.{core::double::+}(1){(core::num*) →* core::double*} in #t62;
   }
   abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
   abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
diff --git a/pkg/front_end/testcases/inference_new/infer_assign_to_property_null_aware_upwards.dart.weak.transformed.expect b/pkg/front_end/testcases/inference_new/infer_assign_to_property_null_aware_upwards.dart.weak.transformed.expect
index 66e390b..1e360b8 100644
--- a/pkg/front_end/testcases/inference_new/infer_assign_to_property_null_aware_upwards.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference_new/infer_assign_to_property_null_aware_upwards.dart.weak.transformed.expect
@@ -15,7 +15,7 @@
     core::int* v7 = let final self::Test1* #t7 = t in #t7 == null ?{core::int*} null : let final core::int* #t8 = #t7.{self::Test1::prop}{core::int*}.{core::num::+}(self::getInt()){(core::num*) →* core::int*} in let final void #t9 = #t7.{self::Test1::prop} = #t8 in #t8;
     core::num* v8 = let final self::Test1* #t10 = t in #t10 == null ?{core::num*} null : let final core::num* #t11 = #t10.{self::Test1::prop}{core::int*}.{core::num::+}(self::getNum()){(core::num*) →* core::num*} as{TypeError} core::int* in let final void #t12 = #t10.{self::Test1::prop} = #t11 in #t11;
     core::int* v10 = let final self::Test1* #t13 = t in #t13 == null ?{core::int*} null : let final core::int* #t14 = #t13.{self::Test1::prop}{core::int*}.{core::num::+}(1){(core::num*) →* core::int*} in let final void #t15 = #t13.{self::Test1::prop} = #t14 in #t14;
-    core::int* v11 = let final self::Test1* #t16 = t in #t16 == null ?{core::int*} null : let final core::int* #t17 = #t16.{self::Test1::prop}{core::int*} in let final core::int* #t18 = #t16.{self::Test1::prop} = #t17.{core::num::+}(1){(core::num*) →* core::int*} in #t17;
+    core::int* v11 = let final self::Test1* #t16 = t in #t16 == null ?{core::int*} null : let final core::int* #t17 = #t16.{self::Test1::prop}{core::int*} in let final void #t18 = #t16.{self::Test1::prop} = #t17.{core::num::+}(1){(core::num*) →* core::int*} in #t17;
   }
   abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
   abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
@@ -44,7 +44,7 @@
     core::num* v8 = let final self::Test2* #t31 = t in #t31 == null ?{core::num*} null : let final core::num* #t32 = #t31.{self::Test2::prop}{core::num*}.{core::num::+}(self::getNum()){(core::num*) →* core::num*} in let final void #t33 = #t31.{self::Test2::prop} = #t32 in #t32;
     core::num* v9 = let final self::Test2* #t34 = t in #t34 == null ?{core::num*} null : let final core::num* #t35 = #t34.{self::Test2::prop}{core::num*}.{core::num::+}(self::getDouble()){(core::num*) →* core::num*} in let final void #t36 = #t34.{self::Test2::prop} = #t35 in #t35;
     core::num* v10 = let final self::Test2* #t37 = t in #t37 == null ?{core::num*} null : let final core::num* #t38 = #t37.{self::Test2::prop}{core::num*}.{core::num::+}(1){(core::num*) →* core::num*} in let final void #t39 = #t37.{self::Test2::prop} = #t38 in #t38;
-    core::num* v11 = let final self::Test2* #t40 = t in #t40 == null ?{core::num*} null : let final core::num* #t41 = #t40.{self::Test2::prop}{core::num*} in let final core::num* #t42 = #t40.{self::Test2::prop} = #t41.{core::num::+}(1){(core::num*) →* core::num*} in #t41;
+    core::num* v11 = let final self::Test2* #t40 = t in #t40 == null ?{core::num*} null : let final core::num* #t41 = #t40.{self::Test2::prop}{core::num*} in let final void #t42 = #t40.{self::Test2::prop} = #t41.{core::num::+}(1){(core::num*) →* core::num*} in #t41;
   }
   abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
   abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
@@ -71,7 +71,7 @@
     core::double* v8 = let final self::Test3* #t52 = t in #t52 == null ?{core::double*} null : let final core::double* #t53 = #t52.{self::Test3::prop}{core::double*}.{core::double::+}(self::getNum()){(core::num*) →* core::double*} in let final void #t54 = #t52.{self::Test3::prop} = #t53 in #t53;
     core::double* v9 = let final self::Test3* #t55 = t in #t55 == null ?{core::double*} null : let final core::double* #t56 = #t55.{self::Test3::prop}{core::double*}.{core::double::+}(self::getDouble()){(core::num*) →* core::double*} in let final void #t57 = #t55.{self::Test3::prop} = #t56 in #t56;
     core::double* v10 = let final self::Test3* #t58 = t in #t58 == null ?{core::double*} null : let final core::double* #t59 = #t58.{self::Test3::prop}{core::double*}.{core::double::+}(1){(core::num*) →* core::double*} in let final void #t60 = #t58.{self::Test3::prop} = #t59 in #t59;
-    core::double* v11 = let final self::Test3* #t61 = t in #t61 == null ?{core::double*} null : let final core::double* #t62 = #t61.{self::Test3::prop}{core::double*} in let final core::double* #t63 = #t61.{self::Test3::prop} = #t62.{core::double::+}(1){(core::num*) →* core::double*} in #t62;
+    core::double* v11 = let final self::Test3* #t61 = t in #t61 == null ?{core::double*} null : let final core::double* #t62 = #t61.{self::Test3::prop}{core::double*} in let final void #t63 = #t61.{self::Test3::prop} = #t62.{core::double::+}(1){(core::num*) →* core::double*} in #t62;
   }
   abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
   abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
diff --git a/pkg/front_end/testcases/inference_new/infer_assign_to_property_null_aware_upwards2.dart.weak.expect b/pkg/front_end/testcases/inference_new/infer_assign_to_property_null_aware_upwards2.dart.weak.expect
index 47e81b4..592b84d 100644
--- a/pkg/front_end/testcases/inference_new/infer_assign_to_property_null_aware_upwards2.dart.weak.expect
+++ b/pkg/front_end/testcases/inference_new/infer_assign_to_property_null_aware_upwards2.dart.weak.expect
@@ -13,7 +13,7 @@
     core::int? v4 = let final self::Test1? #t2 = t in #t2 == null ?{core::int?} null : let final core::int? #t3 = #t2.{self::Test1::prop2}{core::int?} in #t3 == null ?{core::int} #t2.{self::Test1::prop2} = self::getInt() : #t3{core::int};
     core::int? v7 = let final self::Test1? #t4 = t in #t4 == null ?{core::int?} null : let final core::int #t5 = #t4.{self::Test1::prop}{core::int}.{core::num::+}(self::getInt()){(core::num) → core::int} in let final void #t6 = #t4.{self::Test1::prop} = #t5 in #t5;
     core::int? v10 = let final self::Test1? #t7 = t in #t7 == null ?{core::int?} null : let final core::int #t8 = #t7.{self::Test1::prop}{core::int}.{core::num::+}(1){(core::num) → core::int} in let final void #t9 = #t7.{self::Test1::prop} = #t8 in #t8;
-    core::int? v11 = let final self::Test1? #t10 = t in #t10 == null ?{core::int?} null : let final core::int #t11 = #t10.{self::Test1::prop}{core::int} in let final core::int #t12 = #t10.{self::Test1::prop} = #t11.{core::num::+}(1){(core::num) → core::int} in #t11;
+    core::int? v11 = let final self::Test1? #t10 = t in #t10 == null ?{core::int?} null : let final core::int #t11 = #t10.{self::Test1::prop}{core::int} in let final void #t12 = #t10.{self::Test1::prop} = #t11.{core::num::+}(1){(core::num) → core::int} in #t11;
   }
 }
 class Test2 extends core::Object {
@@ -33,7 +33,7 @@
     core::num? v8 = let final self::Test2? #t25 = t in #t25 == null ?{core::num?} null : let final core::num #t26 = #t25.{self::Test2::prop}{core::num}.{core::num::+}(self::getNum()){(core::num) → core::num} in let final void #t27 = #t25.{self::Test2::prop} = #t26 in #t26;
     core::double? v9 = let final self::Test2? #t28 = t in #t28 == null ?{core::double?} null : let final core::double #t29 = #t28.{self::Test2::prop}{core::num}.{core::num::+}(self::getDouble()){(core::num) → core::double} in let final void #t30 = #t28.{self::Test2::prop} = #t29 in #t29;
     core::num? v10 = let final self::Test2? #t31 = t in #t31 == null ?{core::num?} null : let final core::num #t32 = #t31.{self::Test2::prop}{core::num}.{core::num::+}(1){(core::num) → core::num} in let final void #t33 = #t31.{self::Test2::prop} = #t32 in #t32;
-    core::num? v11 = let final self::Test2? #t34 = t in #t34 == null ?{core::num?} null : let final core::num #t35 = #t34.{self::Test2::prop}{core::num} in let final core::num #t36 = #t34.{self::Test2::prop} = #t35.{core::num::+}(1){(core::num) → core::num} in #t35;
+    core::num? v11 = let final self::Test2? #t34 = t in #t34 == null ?{core::num?} null : let final core::num #t35 = #t34.{self::Test2::prop}{core::num} in let final void #t36 = #t34.{self::Test2::prop} = #t35.{core::num::+}(1){(core::num) → core::num} in #t35;
   }
 }
 class Test3 extends core::Object {
@@ -49,7 +49,7 @@
     core::double? v8 = let final self::Test3? #t43 = t in #t43 == null ?{core::double?} null : let final core::double #t44 = #t43.{self::Test3::prop}{core::double}.{core::double::+}(self::getNum()){(core::num) → core::double} in let final void #t45 = #t43.{self::Test3::prop} = #t44 in #t44;
     core::double? v9 = let final self::Test3? #t46 = t in #t46 == null ?{core::double?} null : let final core::double #t47 = #t46.{self::Test3::prop}{core::double}.{core::double::+}(self::getDouble()){(core::num) → core::double} in let final void #t48 = #t46.{self::Test3::prop} = #t47 in #t47;
     core::double? v10 = let final self::Test3? #t49 = t in #t49 == null ?{core::double?} null : let final core::double #t50 = #t49.{self::Test3::prop}{core::double}.{core::double::+}(1){(core::num) → core::double} in let final void #t51 = #t49.{self::Test3::prop} = #t50 in #t50;
-    core::double? v11 = let final self::Test3? #t52 = t in #t52 == null ?{core::double?} null : let final core::double #t53 = #t52.{self::Test3::prop}{core::double} in let final core::double #t54 = #t52.{self::Test3::prop} = #t53.{core::double::+}(1){(core::num) → core::double} in #t53;
+    core::double? v11 = let final self::Test3? #t52 = t in #t52 == null ?{core::double?} null : let final core::double #t53 = #t52.{self::Test3::prop}{core::double} in let final void #t54 = #t52.{self::Test3::prop} = #t53.{core::double::+}(1){(core::num) → core::double} in #t53;
   }
 }
 static method getInt() → core::int
diff --git a/pkg/front_end/testcases/inference_new/infer_assign_to_property_null_aware_upwards2.dart.weak.modular.expect b/pkg/front_end/testcases/inference_new/infer_assign_to_property_null_aware_upwards2.dart.weak.modular.expect
index 47e81b4..592b84d 100644
--- a/pkg/front_end/testcases/inference_new/infer_assign_to_property_null_aware_upwards2.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference_new/infer_assign_to_property_null_aware_upwards2.dart.weak.modular.expect
@@ -13,7 +13,7 @@
     core::int? v4 = let final self::Test1? #t2 = t in #t2 == null ?{core::int?} null : let final core::int? #t3 = #t2.{self::Test1::prop2}{core::int?} in #t3 == null ?{core::int} #t2.{self::Test1::prop2} = self::getInt() : #t3{core::int};
     core::int? v7 = let final self::Test1? #t4 = t in #t4 == null ?{core::int?} null : let final core::int #t5 = #t4.{self::Test1::prop}{core::int}.{core::num::+}(self::getInt()){(core::num) → core::int} in let final void #t6 = #t4.{self::Test1::prop} = #t5 in #t5;
     core::int? v10 = let final self::Test1? #t7 = t in #t7 == null ?{core::int?} null : let final core::int #t8 = #t7.{self::Test1::prop}{core::int}.{core::num::+}(1){(core::num) → core::int} in let final void #t9 = #t7.{self::Test1::prop} = #t8 in #t8;
-    core::int? v11 = let final self::Test1? #t10 = t in #t10 == null ?{core::int?} null : let final core::int #t11 = #t10.{self::Test1::prop}{core::int} in let final core::int #t12 = #t10.{self::Test1::prop} = #t11.{core::num::+}(1){(core::num) → core::int} in #t11;
+    core::int? v11 = let final self::Test1? #t10 = t in #t10 == null ?{core::int?} null : let final core::int #t11 = #t10.{self::Test1::prop}{core::int} in let final void #t12 = #t10.{self::Test1::prop} = #t11.{core::num::+}(1){(core::num) → core::int} in #t11;
   }
 }
 class Test2 extends core::Object {
@@ -33,7 +33,7 @@
     core::num? v8 = let final self::Test2? #t25 = t in #t25 == null ?{core::num?} null : let final core::num #t26 = #t25.{self::Test2::prop}{core::num}.{core::num::+}(self::getNum()){(core::num) → core::num} in let final void #t27 = #t25.{self::Test2::prop} = #t26 in #t26;
     core::double? v9 = let final self::Test2? #t28 = t in #t28 == null ?{core::double?} null : let final core::double #t29 = #t28.{self::Test2::prop}{core::num}.{core::num::+}(self::getDouble()){(core::num) → core::double} in let final void #t30 = #t28.{self::Test2::prop} = #t29 in #t29;
     core::num? v10 = let final self::Test2? #t31 = t in #t31 == null ?{core::num?} null : let final core::num #t32 = #t31.{self::Test2::prop}{core::num}.{core::num::+}(1){(core::num) → core::num} in let final void #t33 = #t31.{self::Test2::prop} = #t32 in #t32;
-    core::num? v11 = let final self::Test2? #t34 = t in #t34 == null ?{core::num?} null : let final core::num #t35 = #t34.{self::Test2::prop}{core::num} in let final core::num #t36 = #t34.{self::Test2::prop} = #t35.{core::num::+}(1){(core::num) → core::num} in #t35;
+    core::num? v11 = let final self::Test2? #t34 = t in #t34 == null ?{core::num?} null : let final core::num #t35 = #t34.{self::Test2::prop}{core::num} in let final void #t36 = #t34.{self::Test2::prop} = #t35.{core::num::+}(1){(core::num) → core::num} in #t35;
   }
 }
 class Test3 extends core::Object {
@@ -49,7 +49,7 @@
     core::double? v8 = let final self::Test3? #t43 = t in #t43 == null ?{core::double?} null : let final core::double #t44 = #t43.{self::Test3::prop}{core::double}.{core::double::+}(self::getNum()){(core::num) → core::double} in let final void #t45 = #t43.{self::Test3::prop} = #t44 in #t44;
     core::double? v9 = let final self::Test3? #t46 = t in #t46 == null ?{core::double?} null : let final core::double #t47 = #t46.{self::Test3::prop}{core::double}.{core::double::+}(self::getDouble()){(core::num) → core::double} in let final void #t48 = #t46.{self::Test3::prop} = #t47 in #t47;
     core::double? v10 = let final self::Test3? #t49 = t in #t49 == null ?{core::double?} null : let final core::double #t50 = #t49.{self::Test3::prop}{core::double}.{core::double::+}(1){(core::num) → core::double} in let final void #t51 = #t49.{self::Test3::prop} = #t50 in #t50;
-    core::double? v11 = let final self::Test3? #t52 = t in #t52 == null ?{core::double?} null : let final core::double #t53 = #t52.{self::Test3::prop}{core::double} in let final core::double #t54 = #t52.{self::Test3::prop} = #t53.{core::double::+}(1){(core::num) → core::double} in #t53;
+    core::double? v11 = let final self::Test3? #t52 = t in #t52 == null ?{core::double?} null : let final core::double #t53 = #t52.{self::Test3::prop}{core::double} in let final void #t54 = #t52.{self::Test3::prop} = #t53.{core::double::+}(1){(core::num) → core::double} in #t53;
   }
 }
 static method getInt() → core::int
diff --git a/pkg/front_end/testcases/inference_new/infer_assign_to_property_null_aware_upwards2.dart.weak.transformed.expect b/pkg/front_end/testcases/inference_new/infer_assign_to_property_null_aware_upwards2.dart.weak.transformed.expect
index 47e81b4..592b84d 100644
--- a/pkg/front_end/testcases/inference_new/infer_assign_to_property_null_aware_upwards2.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference_new/infer_assign_to_property_null_aware_upwards2.dart.weak.transformed.expect
@@ -13,7 +13,7 @@
     core::int? v4 = let final self::Test1? #t2 = t in #t2 == null ?{core::int?} null : let final core::int? #t3 = #t2.{self::Test1::prop2}{core::int?} in #t3 == null ?{core::int} #t2.{self::Test1::prop2} = self::getInt() : #t3{core::int};
     core::int? v7 = let final self::Test1? #t4 = t in #t4 == null ?{core::int?} null : let final core::int #t5 = #t4.{self::Test1::prop}{core::int}.{core::num::+}(self::getInt()){(core::num) → core::int} in let final void #t6 = #t4.{self::Test1::prop} = #t5 in #t5;
     core::int? v10 = let final self::Test1? #t7 = t in #t7 == null ?{core::int?} null : let final core::int #t8 = #t7.{self::Test1::prop}{core::int}.{core::num::+}(1){(core::num) → core::int} in let final void #t9 = #t7.{self::Test1::prop} = #t8 in #t8;
-    core::int? v11 = let final self::Test1? #t10 = t in #t10 == null ?{core::int?} null : let final core::int #t11 = #t10.{self::Test1::prop}{core::int} in let final core::int #t12 = #t10.{self::Test1::prop} = #t11.{core::num::+}(1){(core::num) → core::int} in #t11;
+    core::int? v11 = let final self::Test1? #t10 = t in #t10 == null ?{core::int?} null : let final core::int #t11 = #t10.{self::Test1::prop}{core::int} in let final void #t12 = #t10.{self::Test1::prop} = #t11.{core::num::+}(1){(core::num) → core::int} in #t11;
   }
 }
 class Test2 extends core::Object {
@@ -33,7 +33,7 @@
     core::num? v8 = let final self::Test2? #t25 = t in #t25 == null ?{core::num?} null : let final core::num #t26 = #t25.{self::Test2::prop}{core::num}.{core::num::+}(self::getNum()){(core::num) → core::num} in let final void #t27 = #t25.{self::Test2::prop} = #t26 in #t26;
     core::double? v9 = let final self::Test2? #t28 = t in #t28 == null ?{core::double?} null : let final core::double #t29 = #t28.{self::Test2::prop}{core::num}.{core::num::+}(self::getDouble()){(core::num) → core::double} in let final void #t30 = #t28.{self::Test2::prop} = #t29 in #t29;
     core::num? v10 = let final self::Test2? #t31 = t in #t31 == null ?{core::num?} null : let final core::num #t32 = #t31.{self::Test2::prop}{core::num}.{core::num::+}(1){(core::num) → core::num} in let final void #t33 = #t31.{self::Test2::prop} = #t32 in #t32;
-    core::num? v11 = let final self::Test2? #t34 = t in #t34 == null ?{core::num?} null : let final core::num #t35 = #t34.{self::Test2::prop}{core::num} in let final core::num #t36 = #t34.{self::Test2::prop} = #t35.{core::num::+}(1){(core::num) → core::num} in #t35;
+    core::num? v11 = let final self::Test2? #t34 = t in #t34 == null ?{core::num?} null : let final core::num #t35 = #t34.{self::Test2::prop}{core::num} in let final void #t36 = #t34.{self::Test2::prop} = #t35.{core::num::+}(1){(core::num) → core::num} in #t35;
   }
 }
 class Test3 extends core::Object {
@@ -49,7 +49,7 @@
     core::double? v8 = let final self::Test3? #t43 = t in #t43 == null ?{core::double?} null : let final core::double #t44 = #t43.{self::Test3::prop}{core::double}.{core::double::+}(self::getNum()){(core::num) → core::double} in let final void #t45 = #t43.{self::Test3::prop} = #t44 in #t44;
     core::double? v9 = let final self::Test3? #t46 = t in #t46 == null ?{core::double?} null : let final core::double #t47 = #t46.{self::Test3::prop}{core::double}.{core::double::+}(self::getDouble()){(core::num) → core::double} in let final void #t48 = #t46.{self::Test3::prop} = #t47 in #t47;
     core::double? v10 = let final self::Test3? #t49 = t in #t49 == null ?{core::double?} null : let final core::double #t50 = #t49.{self::Test3::prop}{core::double}.{core::double::+}(1){(core::num) → core::double} in let final void #t51 = #t49.{self::Test3::prop} = #t50 in #t50;
-    core::double? v11 = let final self::Test3? #t52 = t in #t52 == null ?{core::double?} null : let final core::double #t53 = #t52.{self::Test3::prop}{core::double} in let final core::double #t54 = #t52.{self::Test3::prop} = #t53.{core::double::+}(1){(core::num) → core::double} in #t53;
+    core::double? v11 = let final self::Test3? #t52 = t in #t52 == null ?{core::double?} null : let final core::double #t53 = #t52.{self::Test3::prop}{core::double} in let final void #t54 = #t52.{self::Test3::prop} = #t53.{core::double::+}(1){(core::num) → core::double} in #t53;
   }
 }
 static method getInt() → core::int
diff --git a/pkg/front_end/testcases/nnbd/null_shorting.dart.strong.expect b/pkg/front_end/testcases/nnbd/null_shorting.dart.strong.expect
index 6c661dd..6be85bf 100644
--- a/pkg/front_end/testcases/nnbd/null_shorting.dart.strong.expect
+++ b/pkg/front_end/testcases/nnbd/null_shorting.dart.strong.expect
@@ -245,7 +245,7 @@
   let final self::Class2? #t245 = n2 in #t245 == null ?{self::Class2?} null : let final self::Class2 #t246 = #t245{self::Class2}.{self::Class2::nonNullable2}{self::Class2} in #t246.{self::Class2::nonNullable2} = #t246.{self::Class2::nonNullable2}{self::Class2}.{self::Class2::+}(0){(core::int) → self::Class2};
   nullable2 = let final self::Class2? #t247 = n2 in #t247 == null ?{self::Class2?} null : let final self::Class2 #t248 = #t247{self::Class2}.{self::Class2::nonNullable2}{self::Class2} in #t248.{self::Class2::nonNullable2} = #t248.{self::Class2::nonNullable2}{self::Class2}.{self::Class2::+}(0){(core::int) → self::Class2};
   let final self::Class2? #t249 = n2 in #t249 == null ?{self::Class2?} null : #t249.{self::Class2::nonNullable2} = #t249.{self::Class2::nonNullable2}{self::Class2}.{self::Class2::+}(1){(core::int) → self::Class2};
-  nullable2 = let final self::Class2? #t250 = n2 in #t250 == null ?{self::Class2?} null : let final self::Class2 #t251 = #t250.{self::Class2::nonNullable2}{self::Class2} in let final self::Class2 #t252 = #t250.{self::Class2::nonNullable2} = #t251.{self::Class2::+}(1){(core::int) → self::Class2} in #t251;
+  nullable2 = let final self::Class2? #t250 = n2 in #t250 == null ?{self::Class2?} null : let final self::Class2 #t251 = #t250.{self::Class2::nonNullable2}{self::Class2} in let final void #t252 = #t250.{self::Class2::nonNullable2} = #t251.{self::Class2::+}(1){(core::int) → self::Class2} in #t251;
   let final self::Class2? #t253 = n2 in #t253 == null ?{self::Class2?} null : let final self::Class2 #t254 = #t253.{self::Class2::nonNullable2}{self::Class2}.{self::Class2::+}(1){(core::int) → self::Class2} in let final void #t255 = #t253.{self::Class2::nonNullable2} = #t254 in #t254;
   nullable2 = let final self::Class2? #t256 = n2 in #t256 == null ?{self::Class2?} null : let final self::Class2 #t257 = #t256.{self::Class2::nonNullable2}{self::Class2}.{self::Class2::+}(1){(core::int) → self::Class2} in let final void #t258 = #t256.{self::Class2::nonNullable2} = #t257 in #t257;
 }
diff --git a/pkg/front_end/testcases/nnbd/null_shorting.dart.strong.transformed.expect b/pkg/front_end/testcases/nnbd/null_shorting.dart.strong.transformed.expect
index 6c661dd..6be85bf 100644
--- a/pkg/front_end/testcases/nnbd/null_shorting.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/null_shorting.dart.strong.transformed.expect
@@ -245,7 +245,7 @@
   let final self::Class2? #t245 = n2 in #t245 == null ?{self::Class2?} null : let final self::Class2 #t246 = #t245{self::Class2}.{self::Class2::nonNullable2}{self::Class2} in #t246.{self::Class2::nonNullable2} = #t246.{self::Class2::nonNullable2}{self::Class2}.{self::Class2::+}(0){(core::int) → self::Class2};
   nullable2 = let final self::Class2? #t247 = n2 in #t247 == null ?{self::Class2?} null : let final self::Class2 #t248 = #t247{self::Class2}.{self::Class2::nonNullable2}{self::Class2} in #t248.{self::Class2::nonNullable2} = #t248.{self::Class2::nonNullable2}{self::Class2}.{self::Class2::+}(0){(core::int) → self::Class2};
   let final self::Class2? #t249 = n2 in #t249 == null ?{self::Class2?} null : #t249.{self::Class2::nonNullable2} = #t249.{self::Class2::nonNullable2}{self::Class2}.{self::Class2::+}(1){(core::int) → self::Class2};
-  nullable2 = let final self::Class2? #t250 = n2 in #t250 == null ?{self::Class2?} null : let final self::Class2 #t251 = #t250.{self::Class2::nonNullable2}{self::Class2} in let final self::Class2 #t252 = #t250.{self::Class2::nonNullable2} = #t251.{self::Class2::+}(1){(core::int) → self::Class2} in #t251;
+  nullable2 = let final self::Class2? #t250 = n2 in #t250 == null ?{self::Class2?} null : let final self::Class2 #t251 = #t250.{self::Class2::nonNullable2}{self::Class2} in let final void #t252 = #t250.{self::Class2::nonNullable2} = #t251.{self::Class2::+}(1){(core::int) → self::Class2} in #t251;
   let final self::Class2? #t253 = n2 in #t253 == null ?{self::Class2?} null : let final self::Class2 #t254 = #t253.{self::Class2::nonNullable2}{self::Class2}.{self::Class2::+}(1){(core::int) → self::Class2} in let final void #t255 = #t253.{self::Class2::nonNullable2} = #t254 in #t254;
   nullable2 = let final self::Class2? #t256 = n2 in #t256 == null ?{self::Class2?} null : let final self::Class2 #t257 = #t256.{self::Class2::nonNullable2}{self::Class2}.{self::Class2::+}(1){(core::int) → self::Class2} in let final void #t258 = #t256.{self::Class2::nonNullable2} = #t257 in #t257;
 }
diff --git a/pkg/front_end/testcases/nnbd/null_shorting.dart.weak.expect b/pkg/front_end/testcases/nnbd/null_shorting.dart.weak.expect
index 6c661dd..6be85bf 100644
--- a/pkg/front_end/testcases/nnbd/null_shorting.dart.weak.expect
+++ b/pkg/front_end/testcases/nnbd/null_shorting.dart.weak.expect
@@ -245,7 +245,7 @@
   let final self::Class2? #t245 = n2 in #t245 == null ?{self::Class2?} null : let final self::Class2 #t246 = #t245{self::Class2}.{self::Class2::nonNullable2}{self::Class2} in #t246.{self::Class2::nonNullable2} = #t246.{self::Class2::nonNullable2}{self::Class2}.{self::Class2::+}(0){(core::int) → self::Class2};
   nullable2 = let final self::Class2? #t247 = n2 in #t247 == null ?{self::Class2?} null : let final self::Class2 #t248 = #t247{self::Class2}.{self::Class2::nonNullable2}{self::Class2} in #t248.{self::Class2::nonNullable2} = #t248.{self::Class2::nonNullable2}{self::Class2}.{self::Class2::+}(0){(core::int) → self::Class2};
   let final self::Class2? #t249 = n2 in #t249 == null ?{self::Class2?} null : #t249.{self::Class2::nonNullable2} = #t249.{self::Class2::nonNullable2}{self::Class2}.{self::Class2::+}(1){(core::int) → self::Class2};
-  nullable2 = let final self::Class2? #t250 = n2 in #t250 == null ?{self::Class2?} null : let final self::Class2 #t251 = #t250.{self::Class2::nonNullable2}{self::Class2} in let final self::Class2 #t252 = #t250.{self::Class2::nonNullable2} = #t251.{self::Class2::+}(1){(core::int) → self::Class2} in #t251;
+  nullable2 = let final self::Class2? #t250 = n2 in #t250 == null ?{self::Class2?} null : let final self::Class2 #t251 = #t250.{self::Class2::nonNullable2}{self::Class2} in let final void #t252 = #t250.{self::Class2::nonNullable2} = #t251.{self::Class2::+}(1){(core::int) → self::Class2} in #t251;
   let final self::Class2? #t253 = n2 in #t253 == null ?{self::Class2?} null : let final self::Class2 #t254 = #t253.{self::Class2::nonNullable2}{self::Class2}.{self::Class2::+}(1){(core::int) → self::Class2} in let final void #t255 = #t253.{self::Class2::nonNullable2} = #t254 in #t254;
   nullable2 = let final self::Class2? #t256 = n2 in #t256 == null ?{self::Class2?} null : let final self::Class2 #t257 = #t256.{self::Class2::nonNullable2}{self::Class2}.{self::Class2::+}(1){(core::int) → self::Class2} in let final void #t258 = #t256.{self::Class2::nonNullable2} = #t257 in #t257;
 }
diff --git a/pkg/front_end/testcases/nnbd/null_shorting.dart.weak.modular.expect b/pkg/front_end/testcases/nnbd/null_shorting.dart.weak.modular.expect
index 6c661dd..6be85bf 100644
--- a/pkg/front_end/testcases/nnbd/null_shorting.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/nnbd/null_shorting.dart.weak.modular.expect
@@ -245,7 +245,7 @@
   let final self::Class2? #t245 = n2 in #t245 == null ?{self::Class2?} null : let final self::Class2 #t246 = #t245{self::Class2}.{self::Class2::nonNullable2}{self::Class2} in #t246.{self::Class2::nonNullable2} = #t246.{self::Class2::nonNullable2}{self::Class2}.{self::Class2::+}(0){(core::int) → self::Class2};
   nullable2 = let final self::Class2? #t247 = n2 in #t247 == null ?{self::Class2?} null : let final self::Class2 #t248 = #t247{self::Class2}.{self::Class2::nonNullable2}{self::Class2} in #t248.{self::Class2::nonNullable2} = #t248.{self::Class2::nonNullable2}{self::Class2}.{self::Class2::+}(0){(core::int) → self::Class2};
   let final self::Class2? #t249 = n2 in #t249 == null ?{self::Class2?} null : #t249.{self::Class2::nonNullable2} = #t249.{self::Class2::nonNullable2}{self::Class2}.{self::Class2::+}(1){(core::int) → self::Class2};
-  nullable2 = let final self::Class2? #t250 = n2 in #t250 == null ?{self::Class2?} null : let final self::Class2 #t251 = #t250.{self::Class2::nonNullable2}{self::Class2} in let final self::Class2 #t252 = #t250.{self::Class2::nonNullable2} = #t251.{self::Class2::+}(1){(core::int) → self::Class2} in #t251;
+  nullable2 = let final self::Class2? #t250 = n2 in #t250 == null ?{self::Class2?} null : let final self::Class2 #t251 = #t250.{self::Class2::nonNullable2}{self::Class2} in let final void #t252 = #t250.{self::Class2::nonNullable2} = #t251.{self::Class2::+}(1){(core::int) → self::Class2} in #t251;
   let final self::Class2? #t253 = n2 in #t253 == null ?{self::Class2?} null : let final self::Class2 #t254 = #t253.{self::Class2::nonNullable2}{self::Class2}.{self::Class2::+}(1){(core::int) → self::Class2} in let final void #t255 = #t253.{self::Class2::nonNullable2} = #t254 in #t254;
   nullable2 = let final self::Class2? #t256 = n2 in #t256 == null ?{self::Class2?} null : let final self::Class2 #t257 = #t256.{self::Class2::nonNullable2}{self::Class2}.{self::Class2::+}(1){(core::int) → self::Class2} in let final void #t258 = #t256.{self::Class2::nonNullable2} = #t257 in #t257;
 }
diff --git a/pkg/front_end/testcases/nnbd/null_shorting.dart.weak.transformed.expect b/pkg/front_end/testcases/nnbd/null_shorting.dart.weak.transformed.expect
index 6c661dd..6be85bf 100644
--- a/pkg/front_end/testcases/nnbd/null_shorting.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/null_shorting.dart.weak.transformed.expect
@@ -245,7 +245,7 @@
   let final self::Class2? #t245 = n2 in #t245 == null ?{self::Class2?} null : let final self::Class2 #t246 = #t245{self::Class2}.{self::Class2::nonNullable2}{self::Class2} in #t246.{self::Class2::nonNullable2} = #t246.{self::Class2::nonNullable2}{self::Class2}.{self::Class2::+}(0){(core::int) → self::Class2};
   nullable2 = let final self::Class2? #t247 = n2 in #t247 == null ?{self::Class2?} null : let final self::Class2 #t248 = #t247{self::Class2}.{self::Class2::nonNullable2}{self::Class2} in #t248.{self::Class2::nonNullable2} = #t248.{self::Class2::nonNullable2}{self::Class2}.{self::Class2::+}(0){(core::int) → self::Class2};
   let final self::Class2? #t249 = n2 in #t249 == null ?{self::Class2?} null : #t249.{self::Class2::nonNullable2} = #t249.{self::Class2::nonNullable2}{self::Class2}.{self::Class2::+}(1){(core::int) → self::Class2};
-  nullable2 = let final self::Class2? #t250 = n2 in #t250 == null ?{self::Class2?} null : let final self::Class2 #t251 = #t250.{self::Class2::nonNullable2}{self::Class2} in let final self::Class2 #t252 = #t250.{self::Class2::nonNullable2} = #t251.{self::Class2::+}(1){(core::int) → self::Class2} in #t251;
+  nullable2 = let final self::Class2? #t250 = n2 in #t250 == null ?{self::Class2?} null : let final self::Class2 #t251 = #t250.{self::Class2::nonNullable2}{self::Class2} in let final void #t252 = #t250.{self::Class2::nonNullable2} = #t251.{self::Class2::+}(1){(core::int) → self::Class2} in #t251;
   let final self::Class2? #t253 = n2 in #t253 == null ?{self::Class2?} null : let final self::Class2 #t254 = #t253.{self::Class2::nonNullable2}{self::Class2}.{self::Class2::+}(1){(core::int) → self::Class2} in let final void #t255 = #t253.{self::Class2::nonNullable2} = #t254 in #t254;
   nullable2 = let final self::Class2? #t256 = n2 in #t256 == null ?{self::Class2?} null : let final self::Class2 #t257 = #t256.{self::Class2::nonNullable2}{self::Class2}.{self::Class2::+}(1){(core::int) → self::Class2} in let final void #t258 = #t256.{self::Class2::nonNullable2} = #t257 in #t257;
 }
diff --git a/pkg/front_end/testcases/nnbd/null_shorting_explicit_extension.dart.strong.expect b/pkg/front_end/testcases/nnbd/null_shorting_explicit_extension.dart.strong.expect
index 2793bf7..410df6c 100644
--- a/pkg/front_end/testcases/nnbd/null_shorting_explicit_extension.dart.strong.expect
+++ b/pkg/front_end/testcases/nnbd/null_shorting_explicit_extension.dart.strong.expect
@@ -2,14 +2,6 @@
 //
 // Problems in library:
 //
-// pkg/front_end/testcases/nnbd/null_shorting_explicit_extension.dart:90:30: Error: This expression has type 'void' and can't be used.
-//   Extension1(n1)?.nullable1?.nullable1 = new Class1();
-//                              ^
-//
-// pkg/front_end/testcases/nnbd/null_shorting_explicit_extension.dart:91:43: Error: This expression has type 'void' and can't be used.
-//   Extension1(n1)?.nonNullable1.nullable1?.nullable1 = new Class1();
-//                                           ^
-//
 // pkg/front_end/testcases/nnbd/null_shorting_explicit_extension.dart:93:59: Error: Property 'nullable1' cannot be accessed on 'Class1?' because it is potentially null.
 //  - 'Class1' is from 'pkg/front_end/testcases/nnbd/null_shorting_explicit_extension.dart'.
 // Try accessing using ?. instead.
@@ -143,9 +135,9 @@
   let final self::Class1? #t7 = n1 in #t7 == null ?{self::Class1?} null : self::Extension1|get#nullable1(self::Extension1|get#nonNullable1(#t7{self::Class1}));
   let final self::Class1? #t8 = n1 in #t8 == null ?{self::Class1?} null : let final self::Class1? #t9 = self::Extension1|get#nullable1(#t8{self::Class1}) in #t9 == null ?{self::Class1?} null : self::Extension1|get#nullable1(#t9{self::Class1});
   let final self::Class1? #t10 = n1 in #t10 == null ?{self::Class1?} null : let final self::Class1? #t11 = self::Extension1|get#nullable1(self::Extension1|get#nonNullable1(#t10{self::Class1})) in #t11 == null ?{self::Class1?} null : self::Extension1|get#nullable1(#t11{self::Class1});
-  let final self::Class1? #t12 = n1 in #t12 == null ?{void} null : self::Extension1|set#nullable1(self::Extension1|get#nonNullable1(#t12{self::Class1}), new self::Class1::•());
-  let final self::Class1? #t13 = n1 in #t13 == null ?{void} null : let final self::Class1? #t14 = self::Extension1|get#nullable1(#t13{self::Class1}) in #t14 == null ?{void} null : self::Extension1|set#nullable1(#t14{self::Class1}, new self::Class1::•());
-  let final self::Class1? #t15 = n1 in #t15 == null ?{void} null : let final self::Class1? #t16 = self::Extension1|get#nullable1(self::Extension1|get#nonNullable1(#t15{self::Class1})) in #t16 == null ?{void} null : self::Extension1|set#nullable1(#t16{self::Class1}, new self::Class1::•());
+  let final self::Class1? #t12 = n1 in #t12 == null ?{self::Class1?} null : self::Extension1|set#nullable1(self::Extension1|get#nonNullable1(#t12{self::Class1}), new self::Class1::•());
+  let final self::Class1? #t13 = n1 in #t13 == null ?{self::Class1?} null : let final self::Class1? #t14 = self::Extension1|get#nullable1(#t13{self::Class1}) in #t14 == null ?{self::Class1?} null : self::Extension1|set#nullable1(#t14{self::Class1}, new self::Class1::•());
+  let final self::Class1? #t15 = n1 in #t15 == null ?{self::Class1?} null : let final self::Class1? #t16 = self::Extension1|get#nullable1(self::Extension1|get#nonNullable1(#t15{self::Class1})) in #t16 == null ?{self::Class1?} null : self::Extension1|set#nullable1(#t16{self::Class1}, new self::Class1::•());
   let final self::Class1? #t17 = let final self::Class1? #t18 = n1 in #t18 == null ?{self::Class1?} null : self::Extension1|get#nullable1(#t18{self::Class1}) in #t17 == null ?{self::Class1?} null : self::Extension1|get#nullable1(#t17{self::Class1});
   self::throws(() → void => invalid-expression "pkg/front_end/testcases/nnbd/null_shorting_explicit_extension.dart:93:59: Error: Property 'nullable1' cannot be accessed on 'Class1?' because it is potentially null.
  - 'Class1' is from 'pkg/front_end/testcases/nnbd/null_shorting_explicit_extension.dart'.
@@ -168,10 +160,10 @@
   let final self::Class1? #t48 = n1 in #t48 == null ?{self::Class1?} null : self::Extension1|set#nullable1(#t48{self::Class1}, self::Extension1|nonNullable1Method(new self::Class1::•()));
   nullable1 = let final self::Class1? #t49 = n1 in #t49 == null ?{self::Class1?} null : let final self::Class1 #t50 = self::Extension1|nonNullable1Method(new self::Class1::•()) in let final void #t51 = self::Extension1|set#nullable1(#t49{self::Class1}, #t50) in #t50;
   let final self::Class1? #t52 = n1 in #t52 == null ?{self::Class1?} null : self::Extension1|get#nullable1(self::Extension1|nonNullable1Method(#t52{self::Class1}));
-  let final self::Class1? #t53 = n1 in #t53 == null ?{void} null : self::Extension1|set#nullable1(self::Extension1|nonNullable1Method(#t53{self::Class1}), new self::Class1::•());
+  let final self::Class1? #t53 = n1 in #t53 == null ?{self::Class1?} null : self::Extension1|set#nullable1(self::Extension1|nonNullable1Method(#t53{self::Class1}), new self::Class1::•());
   let final self::Class1? #t54 = n1 in #t54 == null ?{self::Class1?} null : self::Extension1|nonNullable1Method(self::Extension1|nonNullable1Method(#t54{self::Class1}));
   let final self::Class1? #t55 = n1 in #t55 == null ?{self::Class1?} null : self::Extension1|get#nullable1(self::Extension1|get#nonNullable1(self::Extension1|get#nonNullable1(#t55{self::Class1})));
-  let final self::Class1? #t56 = n1 in #t56 == null ?{void} null : self::Extension1|set#nullable1(self::Extension1|get#nonNullable1(self::Extension1|get#nonNullable1(#t56{self::Class1})), new self::Class1::•());
+  let final self::Class1? #t56 = n1 in #t56 == null ?{self::Class1?} null : self::Extension1|set#nullable1(self::Extension1|get#nonNullable1(self::Extension1|get#nonNullable1(#t56{self::Class1})), new self::Class1::•());
   nullable1 = let final self::Class1? #t57 = n1 in #t57 == null ?{self::Class1?} null : let final self::Class1 #t58 = new self::Class1::•() in let final void #t59 = self::Extension1|set#nullable1(self::Extension1|get#nonNullable1(self::Extension1|get#nonNullable1(#t57{self::Class1})), #t58) in #t58;
   let final self::Class1? #t60 = n1 in #t60 == null ?{self::Class1?} null : let final self::Class1? #t61 = self::Extension1|get#nullable1(self::Extension1|get#nonNullable1(#t60{self::Class1})) in #t61 == null ?{self::Class1?} null : self::Extension1|nonNullable1Method(#t61{self::Class1});
   let final self::Class1? #t62 = n1 in #t62 == null ?{self::Class1?} null : self::Extension1|set#nullable1(#t62{self::Class1}, self::Extension1|get#nullable1(self::Extension1|get#nonNullable1(new self::Class1::•())));
@@ -181,13 +173,13 @@
   let final self::Class1? #t74 = n1 in #t74 == null ?{self::Class1?} null : self::Extension1|set#nullable1(#t74{self::Class1}, self::Extension1|nonNullable1Method(self::Extension1|get#nonNullable1(new self::Class1::•())));
   nullable1 = let final self::Class1? #t75 = n1 in #t75 == null ?{self::Class1?} null : let final self::Class1 #t76 = self::Extension1|nonNullable1Method(self::Extension1|get#nonNullable1(new self::Class1::•())) in let final void #t77 = self::Extension1|set#nullable1(#t75{self::Class1}, #t76) in #t76;
   let final self::Class1? #t78 = n1 in #t78 == null ?{self::Class1?} null : self::Extension1|get#nullable1(self::Extension1|get#nonNullable1(self::Extension1|nonNullable1Method(#t78{self::Class1})));
-  let final self::Class1? #t79 = n1 in #t79 == null ?{void} null : self::Extension1|set#nullable1(self::Extension1|get#nonNullable1(self::Extension1|nonNullable1Method(#t79{self::Class1})), new self::Class1::•());
+  let final self::Class1? #t79 = n1 in #t79 == null ?{self::Class1?} null : self::Extension1|set#nullable1(self::Extension1|get#nonNullable1(self::Extension1|nonNullable1Method(#t79{self::Class1})), new self::Class1::•());
   let final self::Class1? #t80 = n1 in #t80 == null ?{self::Class1?} null : self::Extension1|nonNullable1Method(self::Extension1|get#nonNullable1(self::Extension1|nonNullable1Method(#t80{self::Class1})));
-  let final self::Class1? #t81 = n1 in #t81 == null ?{void} null : self::Extension1|set#nullable1(self::Extension1|get#nonNullable1(#t81{self::Class1}), self::Extension1|get#nullable1(new self::Class1::•()));
+  let final self::Class1? #t81 = n1 in #t81 == null ?{self::Class1?} null : self::Extension1|set#nullable1(self::Extension1|get#nonNullable1(#t81{self::Class1}), self::Extension1|get#nullable1(new self::Class1::•()));
   nullable1 = let final self::Class1? #t82 = n1 in #t82 == null ?{self::Class1?} null : let final self::Class1? #t83 = self::Extension1|get#nullable1(new self::Class1::•()) in let final void #t84 = self::Extension1|set#nullable1(self::Extension1|get#nonNullable1(#t82{self::Class1}), #t83) in #t83;
-  let final self::Class1? #t85 = n1 in #t85 == null ?{void} null : self::Extension1|set#nullable1(self::Extension1|get#nonNullable1(#t85{self::Class1}), let final self::Class1 #t86 = new self::Class1::•() in let final void #t87 = self::Extension1|set#nullable1(new self::Class1::•(), #t86) in #t86);
+  let final self::Class1? #t85 = n1 in #t85 == null ?{self::Class1?} null : self::Extension1|set#nullable1(self::Extension1|get#nonNullable1(#t85{self::Class1}), let final self::Class1 #t86 = new self::Class1::•() in let final void #t87 = self::Extension1|set#nullable1(new self::Class1::•(), #t86) in #t86);
   nullable1 = let final self::Class1? #t88 = n1 in #t88 == null ?{self::Class1?} null : let final self::Class1 #t89 = let final self::Class1 #t90 = new self::Class1::•() in let final void #t91 = self::Extension1|set#nullable1(new self::Class1::•(), #t90) in #t90 in let final void #t92 = self::Extension1|set#nullable1(self::Extension1|get#nonNullable1(#t88{self::Class1}), #t89) in #t89;
-  let final self::Class1? #t93 = n1 in #t93 == null ?{void} null : self::Extension1|set#nullable1(self::Extension1|get#nonNullable1(#t93{self::Class1}), self::Extension1|nonNullable1Method(new self::Class1::•()));
+  let final self::Class1? #t93 = n1 in #t93 == null ?{self::Class1?} null : self::Extension1|set#nullable1(self::Extension1|get#nonNullable1(#t93{self::Class1}), self::Extension1|nonNullable1Method(new self::Class1::•()));
   nullable1 = let final self::Class1? #t94 = n1 in #t94 == null ?{self::Class1?} null : let final self::Class1 #t95 = self::Extension1|nonNullable1Method(new self::Class1::•()) in let final void #t96 = self::Extension1|set#nullable1(self::Extension1|get#nonNullable1(#t94{self::Class1}), #t95) in #t95;
   let final self::Class1? #t97 = n1 in #t97 == null ?{self::Class1?} null : self::Extension1|set#nullable1(#t97{self::Class1}, let final self::Class1? #t98 = self::Extension1|get#nullable1(new self::Class1::•()) in let final void #t99 = self::Extension1|set#nullable1(new self::Class1::•(), #t98) in #t98);
   nullable1 = let final self::Class1? #t100 = n1 in #t100 == null ?{self::Class1?} null : let final self::Class1? #t101 = let final self::Class1? #t102 = self::Extension1|get#nullable1(new self::Class1::•()) in let final void #t103 = self::Extension1|set#nullable1(new self::Class1::•(), #t102) in #t102 in let final void #t104 = self::Extension1|set#nullable1(#t100{self::Class1}, #t101) in #t101;
@@ -195,14 +187,14 @@
   nullable1 = let final self::Class1? #t110 = n1 in #t110 == null ?{self::Class1?} null : let final self::Class1 #t111 = let final self::Class1 #t112 = let final self::Class1 #t113 = new self::Class1::•() in let final void #t114 = self::Extension1|set#nullable1(new self::Class1::•(), #t113) in #t113 in let final void #t115 = self::Extension1|set#nullable1(new self::Class1::•(), #t112) in #t112 in let final void #t116 = self::Extension1|set#nullable1(#t110{self::Class1}, #t111) in #t111;
   let final self::Class1? #t117 = n1 in #t117 == null ?{self::Class1?} null : self::Extension1|set#nullable1(#t117{self::Class1}, let final self::Class1 #t118 = self::Extension1|nonNullable1Method(new self::Class1::•()) in let final void #t119 = self::Extension1|set#nullable1(new self::Class1::•(), #t118) in #t118);
   nullable1 = let final self::Class1? #t120 = n1 in #t120 == null ?{self::Class1?} null : let final self::Class1 #t121 = let final self::Class1 #t122 = self::Extension1|nonNullable1Method(new self::Class1::•()) in let final void #t123 = self::Extension1|set#nullable1(new self::Class1::•(), #t122) in #t122 in let final void #t124 = self::Extension1|set#nullable1(#t120{self::Class1}, #t121) in #t121;
-  let final self::Class1? #t125 = n1 in #t125 == null ?{void} null : self::Extension1|set#nullable1(self::Extension1|nonNullable1Method(#t125{self::Class1}), self::Extension1|get#nullable1(new self::Class1::•()));
+  let final self::Class1? #t125 = n1 in #t125 == null ?{self::Class1?} null : self::Extension1|set#nullable1(self::Extension1|nonNullable1Method(#t125{self::Class1}), self::Extension1|get#nullable1(new self::Class1::•()));
   nullable1 = let final self::Class1? #t126 = n1 in #t126 == null ?{self::Class1?} null : let final self::Class1? #t127 = self::Extension1|get#nullable1(new self::Class1::•()) in let final void #t128 = self::Extension1|set#nullable1(self::Extension1|nonNullable1Method(#t126{self::Class1}), #t127) in #t127;
-  let final self::Class1? #t129 = n1 in #t129 == null ?{void} null : self::Extension1|set#nullable1(self::Extension1|nonNullable1Method(#t129{self::Class1}), let final self::Class1 #t130 = new self::Class1::•() in let final void #t131 = self::Extension1|set#nullable1(new self::Class1::•(), #t130) in #t130);
+  let final self::Class1? #t129 = n1 in #t129 == null ?{self::Class1?} null : self::Extension1|set#nullable1(self::Extension1|nonNullable1Method(#t129{self::Class1}), let final self::Class1 #t130 = new self::Class1::•() in let final void #t131 = self::Extension1|set#nullable1(new self::Class1::•(), #t130) in #t130);
   nullable1 = let final self::Class1? #t132 = n1 in #t132 == null ?{self::Class1?} null : let final self::Class1 #t133 = let final self::Class1 #t134 = new self::Class1::•() in let final void #t135 = self::Extension1|set#nullable1(new self::Class1::•(), #t134) in #t134 in let final void #t136 = self::Extension1|set#nullable1(self::Extension1|nonNullable1Method(#t132{self::Class1}), #t133) in #t133;
-  let final self::Class1? #t137 = n1 in #t137 == null ?{void} null : self::Extension1|set#nullable1(self::Extension1|nonNullable1Method(#t137{self::Class1}), self::Extension1|nonNullable1Method(new self::Class1::•()));
+  let final self::Class1? #t137 = n1 in #t137 == null ?{self::Class1?} null : self::Extension1|set#nullable1(self::Extension1|nonNullable1Method(#t137{self::Class1}), self::Extension1|nonNullable1Method(new self::Class1::•()));
   nullable1 = let final self::Class1? #t138 = n1 in #t138 == null ?{self::Class1?} null : let final self::Class1 #t139 = self::Extension1|nonNullable1Method(new self::Class1::•()) in let final void #t140 = self::Extension1|set#nullable1(self::Extension1|nonNullable1Method(#t138{self::Class1}), #t139) in #t139;
   let final self::Class1? #t141 = n1 in #t141 == null ?{self::Class1?} null : self::Extension1|get#nullable1(self::Extension1|nonNullable1Method(self::Extension1|get#nonNullable1(#t141{self::Class1})));
-  let final self::Class1? #t142 = n1 in #t142 == null ?{void} null : self::Extension1|set#nullable1(self::Extension1|nonNullable1Method(self::Extension1|get#nonNullable1(#t142{self::Class1})), new self::Class1::•());
+  let final self::Class1? #t142 = n1 in #t142 == null ?{self::Class1?} null : self::Extension1|set#nullable1(self::Extension1|nonNullable1Method(self::Extension1|get#nonNullable1(#t142{self::Class1})), new self::Class1::•());
   nullable1 = let final self::Class1? #t143 = n1 in #t143 == null ?{self::Class1?} null : let final self::Class1 #t144 = new self::Class1::•() in let final void #t145 = self::Extension1|set#nullable1(self::Extension1|nonNullable1Method(self::Extension1|get#nonNullable1(#t143{self::Class1})), #t144) in #t144;
   let final self::Class1? #t146 = n1 in #t146 == null ?{self::Class1?} null : self::Extension1|nonNullable1Method(self::Extension1|nonNullable1Method(self::Extension1|get#nonNullable1(#t146{self::Class1})));
   let final self::Class1? #t147 = n1 in #t147 == null ?{self::Class1?} null : self::Extension1|set#nullable1(#t147{self::Class1}, self::Extension1|get#nullable1(self::Extension1|nonNullable1Method(new self::Class1::•())));
@@ -212,7 +204,7 @@
   let final self::Class1? #t159 = n1 in #t159 == null ?{self::Class1?} null : self::Extension1|set#nullable1(#t159{self::Class1}, self::Extension1|nonNullable1Method(self::Extension1|nonNullable1Method(new self::Class1::•())));
   nullable1 = let final self::Class1? #t160 = n1 in #t160 == null ?{self::Class1?} null : let final self::Class1 #t161 = self::Extension1|nonNullable1Method(self::Extension1|nonNullable1Method(new self::Class1::•())) in let final void #t162 = self::Extension1|set#nullable1(#t160{self::Class1}, #t161) in #t161;
   let final self::Class1? #t163 = n1 in #t163 == null ?{self::Class1?} null : self::Extension1|get#nullable1(self::Extension1|nonNullable1Method(self::Extension1|nonNullable1Method(#t163{self::Class1})));
-  let final self::Class1? #t164 = n1 in #t164 == null ?{void} null : self::Extension1|set#nullable1(self::Extension1|nonNullable1Method(self::Extension1|nonNullable1Method(#t164{self::Class1})), new self::Class1::•());
+  let final self::Class1? #t164 = n1 in #t164 == null ?{self::Class1?} null : self::Extension1|set#nullable1(self::Extension1|nonNullable1Method(self::Extension1|nonNullable1Method(#t164{self::Class1})), new self::Class1::•());
   let final self::Class1? #t165 = n1 in #t165 == null ?{self::Class1?} null : self::Extension1|nonNullable1Method(self::Extension1|nonNullable1Method(self::Extension1|nonNullable1Method(#t165{self::Class1})));
   let final self::Class1? #t166 = n1 in #t166 == null ?{self::Class1?} null : let final self::Class1? #t167 = self::Extension1|nonNullable1Method(#t166{self::Class1}) in #t167 == null ?{self::Class1?} null : self::Extension1|nonNullable1Method(#t167{self::Class1});
 }
diff --git a/pkg/front_end/testcases/nnbd/null_shorting_explicit_extension.dart.strong.transformed.expect b/pkg/front_end/testcases/nnbd/null_shorting_explicit_extension.dart.strong.transformed.expect
index 2793bf7..410df6c 100644
--- a/pkg/front_end/testcases/nnbd/null_shorting_explicit_extension.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/null_shorting_explicit_extension.dart.strong.transformed.expect
@@ -2,14 +2,6 @@
 //
 // Problems in library:
 //
-// pkg/front_end/testcases/nnbd/null_shorting_explicit_extension.dart:90:30: Error: This expression has type 'void' and can't be used.
-//   Extension1(n1)?.nullable1?.nullable1 = new Class1();
-//                              ^
-//
-// pkg/front_end/testcases/nnbd/null_shorting_explicit_extension.dart:91:43: Error: This expression has type 'void' and can't be used.
-//   Extension1(n1)?.nonNullable1.nullable1?.nullable1 = new Class1();
-//                                           ^
-//
 // pkg/front_end/testcases/nnbd/null_shorting_explicit_extension.dart:93:59: Error: Property 'nullable1' cannot be accessed on 'Class1?' because it is potentially null.
 //  - 'Class1' is from 'pkg/front_end/testcases/nnbd/null_shorting_explicit_extension.dart'.
 // Try accessing using ?. instead.
@@ -143,9 +135,9 @@
   let final self::Class1? #t7 = n1 in #t7 == null ?{self::Class1?} null : self::Extension1|get#nullable1(self::Extension1|get#nonNullable1(#t7{self::Class1}));
   let final self::Class1? #t8 = n1 in #t8 == null ?{self::Class1?} null : let final self::Class1? #t9 = self::Extension1|get#nullable1(#t8{self::Class1}) in #t9 == null ?{self::Class1?} null : self::Extension1|get#nullable1(#t9{self::Class1});
   let final self::Class1? #t10 = n1 in #t10 == null ?{self::Class1?} null : let final self::Class1? #t11 = self::Extension1|get#nullable1(self::Extension1|get#nonNullable1(#t10{self::Class1})) in #t11 == null ?{self::Class1?} null : self::Extension1|get#nullable1(#t11{self::Class1});
-  let final self::Class1? #t12 = n1 in #t12 == null ?{void} null : self::Extension1|set#nullable1(self::Extension1|get#nonNullable1(#t12{self::Class1}), new self::Class1::•());
-  let final self::Class1? #t13 = n1 in #t13 == null ?{void} null : let final self::Class1? #t14 = self::Extension1|get#nullable1(#t13{self::Class1}) in #t14 == null ?{void} null : self::Extension1|set#nullable1(#t14{self::Class1}, new self::Class1::•());
-  let final self::Class1? #t15 = n1 in #t15 == null ?{void} null : let final self::Class1? #t16 = self::Extension1|get#nullable1(self::Extension1|get#nonNullable1(#t15{self::Class1})) in #t16 == null ?{void} null : self::Extension1|set#nullable1(#t16{self::Class1}, new self::Class1::•());
+  let final self::Class1? #t12 = n1 in #t12 == null ?{self::Class1?} null : self::Extension1|set#nullable1(self::Extension1|get#nonNullable1(#t12{self::Class1}), new self::Class1::•());
+  let final self::Class1? #t13 = n1 in #t13 == null ?{self::Class1?} null : let final self::Class1? #t14 = self::Extension1|get#nullable1(#t13{self::Class1}) in #t14 == null ?{self::Class1?} null : self::Extension1|set#nullable1(#t14{self::Class1}, new self::Class1::•());
+  let final self::Class1? #t15 = n1 in #t15 == null ?{self::Class1?} null : let final self::Class1? #t16 = self::Extension1|get#nullable1(self::Extension1|get#nonNullable1(#t15{self::Class1})) in #t16 == null ?{self::Class1?} null : self::Extension1|set#nullable1(#t16{self::Class1}, new self::Class1::•());
   let final self::Class1? #t17 = let final self::Class1? #t18 = n1 in #t18 == null ?{self::Class1?} null : self::Extension1|get#nullable1(#t18{self::Class1}) in #t17 == null ?{self::Class1?} null : self::Extension1|get#nullable1(#t17{self::Class1});
   self::throws(() → void => invalid-expression "pkg/front_end/testcases/nnbd/null_shorting_explicit_extension.dart:93:59: Error: Property 'nullable1' cannot be accessed on 'Class1?' because it is potentially null.
  - 'Class1' is from 'pkg/front_end/testcases/nnbd/null_shorting_explicit_extension.dart'.
@@ -168,10 +160,10 @@
   let final self::Class1? #t48 = n1 in #t48 == null ?{self::Class1?} null : self::Extension1|set#nullable1(#t48{self::Class1}, self::Extension1|nonNullable1Method(new self::Class1::•()));
   nullable1 = let final self::Class1? #t49 = n1 in #t49 == null ?{self::Class1?} null : let final self::Class1 #t50 = self::Extension1|nonNullable1Method(new self::Class1::•()) in let final void #t51 = self::Extension1|set#nullable1(#t49{self::Class1}, #t50) in #t50;
   let final self::Class1? #t52 = n1 in #t52 == null ?{self::Class1?} null : self::Extension1|get#nullable1(self::Extension1|nonNullable1Method(#t52{self::Class1}));
-  let final self::Class1? #t53 = n1 in #t53 == null ?{void} null : self::Extension1|set#nullable1(self::Extension1|nonNullable1Method(#t53{self::Class1}), new self::Class1::•());
+  let final self::Class1? #t53 = n1 in #t53 == null ?{self::Class1?} null : self::Extension1|set#nullable1(self::Extension1|nonNullable1Method(#t53{self::Class1}), new self::Class1::•());
   let final self::Class1? #t54 = n1 in #t54 == null ?{self::Class1?} null : self::Extension1|nonNullable1Method(self::Extension1|nonNullable1Method(#t54{self::Class1}));
   let final self::Class1? #t55 = n1 in #t55 == null ?{self::Class1?} null : self::Extension1|get#nullable1(self::Extension1|get#nonNullable1(self::Extension1|get#nonNullable1(#t55{self::Class1})));
-  let final self::Class1? #t56 = n1 in #t56 == null ?{void} null : self::Extension1|set#nullable1(self::Extension1|get#nonNullable1(self::Extension1|get#nonNullable1(#t56{self::Class1})), new self::Class1::•());
+  let final self::Class1? #t56 = n1 in #t56 == null ?{self::Class1?} null : self::Extension1|set#nullable1(self::Extension1|get#nonNullable1(self::Extension1|get#nonNullable1(#t56{self::Class1})), new self::Class1::•());
   nullable1 = let final self::Class1? #t57 = n1 in #t57 == null ?{self::Class1?} null : let final self::Class1 #t58 = new self::Class1::•() in let final void #t59 = self::Extension1|set#nullable1(self::Extension1|get#nonNullable1(self::Extension1|get#nonNullable1(#t57{self::Class1})), #t58) in #t58;
   let final self::Class1? #t60 = n1 in #t60 == null ?{self::Class1?} null : let final self::Class1? #t61 = self::Extension1|get#nullable1(self::Extension1|get#nonNullable1(#t60{self::Class1})) in #t61 == null ?{self::Class1?} null : self::Extension1|nonNullable1Method(#t61{self::Class1});
   let final self::Class1? #t62 = n1 in #t62 == null ?{self::Class1?} null : self::Extension1|set#nullable1(#t62{self::Class1}, self::Extension1|get#nullable1(self::Extension1|get#nonNullable1(new self::Class1::•())));
@@ -181,13 +173,13 @@
   let final self::Class1? #t74 = n1 in #t74 == null ?{self::Class1?} null : self::Extension1|set#nullable1(#t74{self::Class1}, self::Extension1|nonNullable1Method(self::Extension1|get#nonNullable1(new self::Class1::•())));
   nullable1 = let final self::Class1? #t75 = n1 in #t75 == null ?{self::Class1?} null : let final self::Class1 #t76 = self::Extension1|nonNullable1Method(self::Extension1|get#nonNullable1(new self::Class1::•())) in let final void #t77 = self::Extension1|set#nullable1(#t75{self::Class1}, #t76) in #t76;
   let final self::Class1? #t78 = n1 in #t78 == null ?{self::Class1?} null : self::Extension1|get#nullable1(self::Extension1|get#nonNullable1(self::Extension1|nonNullable1Method(#t78{self::Class1})));
-  let final self::Class1? #t79 = n1 in #t79 == null ?{void} null : self::Extension1|set#nullable1(self::Extension1|get#nonNullable1(self::Extension1|nonNullable1Method(#t79{self::Class1})), new self::Class1::•());
+  let final self::Class1? #t79 = n1 in #t79 == null ?{self::Class1?} null : self::Extension1|set#nullable1(self::Extension1|get#nonNullable1(self::Extension1|nonNullable1Method(#t79{self::Class1})), new self::Class1::•());
   let final self::Class1? #t80 = n1 in #t80 == null ?{self::Class1?} null : self::Extension1|nonNullable1Method(self::Extension1|get#nonNullable1(self::Extension1|nonNullable1Method(#t80{self::Class1})));
-  let final self::Class1? #t81 = n1 in #t81 == null ?{void} null : self::Extension1|set#nullable1(self::Extension1|get#nonNullable1(#t81{self::Class1}), self::Extension1|get#nullable1(new self::Class1::•()));
+  let final self::Class1? #t81 = n1 in #t81 == null ?{self::Class1?} null : self::Extension1|set#nullable1(self::Extension1|get#nonNullable1(#t81{self::Class1}), self::Extension1|get#nullable1(new self::Class1::•()));
   nullable1 = let final self::Class1? #t82 = n1 in #t82 == null ?{self::Class1?} null : let final self::Class1? #t83 = self::Extension1|get#nullable1(new self::Class1::•()) in let final void #t84 = self::Extension1|set#nullable1(self::Extension1|get#nonNullable1(#t82{self::Class1}), #t83) in #t83;
-  let final self::Class1? #t85 = n1 in #t85 == null ?{void} null : self::Extension1|set#nullable1(self::Extension1|get#nonNullable1(#t85{self::Class1}), let final self::Class1 #t86 = new self::Class1::•() in let final void #t87 = self::Extension1|set#nullable1(new self::Class1::•(), #t86) in #t86);
+  let final self::Class1? #t85 = n1 in #t85 == null ?{self::Class1?} null : self::Extension1|set#nullable1(self::Extension1|get#nonNullable1(#t85{self::Class1}), let final self::Class1 #t86 = new self::Class1::•() in let final void #t87 = self::Extension1|set#nullable1(new self::Class1::•(), #t86) in #t86);
   nullable1 = let final self::Class1? #t88 = n1 in #t88 == null ?{self::Class1?} null : let final self::Class1 #t89 = let final self::Class1 #t90 = new self::Class1::•() in let final void #t91 = self::Extension1|set#nullable1(new self::Class1::•(), #t90) in #t90 in let final void #t92 = self::Extension1|set#nullable1(self::Extension1|get#nonNullable1(#t88{self::Class1}), #t89) in #t89;
-  let final self::Class1? #t93 = n1 in #t93 == null ?{void} null : self::Extension1|set#nullable1(self::Extension1|get#nonNullable1(#t93{self::Class1}), self::Extension1|nonNullable1Method(new self::Class1::•()));
+  let final self::Class1? #t93 = n1 in #t93 == null ?{self::Class1?} null : self::Extension1|set#nullable1(self::Extension1|get#nonNullable1(#t93{self::Class1}), self::Extension1|nonNullable1Method(new self::Class1::•()));
   nullable1 = let final self::Class1? #t94 = n1 in #t94 == null ?{self::Class1?} null : let final self::Class1 #t95 = self::Extension1|nonNullable1Method(new self::Class1::•()) in let final void #t96 = self::Extension1|set#nullable1(self::Extension1|get#nonNullable1(#t94{self::Class1}), #t95) in #t95;
   let final self::Class1? #t97 = n1 in #t97 == null ?{self::Class1?} null : self::Extension1|set#nullable1(#t97{self::Class1}, let final self::Class1? #t98 = self::Extension1|get#nullable1(new self::Class1::•()) in let final void #t99 = self::Extension1|set#nullable1(new self::Class1::•(), #t98) in #t98);
   nullable1 = let final self::Class1? #t100 = n1 in #t100 == null ?{self::Class1?} null : let final self::Class1? #t101 = let final self::Class1? #t102 = self::Extension1|get#nullable1(new self::Class1::•()) in let final void #t103 = self::Extension1|set#nullable1(new self::Class1::•(), #t102) in #t102 in let final void #t104 = self::Extension1|set#nullable1(#t100{self::Class1}, #t101) in #t101;
@@ -195,14 +187,14 @@
   nullable1 = let final self::Class1? #t110 = n1 in #t110 == null ?{self::Class1?} null : let final self::Class1 #t111 = let final self::Class1 #t112 = let final self::Class1 #t113 = new self::Class1::•() in let final void #t114 = self::Extension1|set#nullable1(new self::Class1::•(), #t113) in #t113 in let final void #t115 = self::Extension1|set#nullable1(new self::Class1::•(), #t112) in #t112 in let final void #t116 = self::Extension1|set#nullable1(#t110{self::Class1}, #t111) in #t111;
   let final self::Class1? #t117 = n1 in #t117 == null ?{self::Class1?} null : self::Extension1|set#nullable1(#t117{self::Class1}, let final self::Class1 #t118 = self::Extension1|nonNullable1Method(new self::Class1::•()) in let final void #t119 = self::Extension1|set#nullable1(new self::Class1::•(), #t118) in #t118);
   nullable1 = let final self::Class1? #t120 = n1 in #t120 == null ?{self::Class1?} null : let final self::Class1 #t121 = let final self::Class1 #t122 = self::Extension1|nonNullable1Method(new self::Class1::•()) in let final void #t123 = self::Extension1|set#nullable1(new self::Class1::•(), #t122) in #t122 in let final void #t124 = self::Extension1|set#nullable1(#t120{self::Class1}, #t121) in #t121;
-  let final self::Class1? #t125 = n1 in #t125 == null ?{void} null : self::Extension1|set#nullable1(self::Extension1|nonNullable1Method(#t125{self::Class1}), self::Extension1|get#nullable1(new self::Class1::•()));
+  let final self::Class1? #t125 = n1 in #t125 == null ?{self::Class1?} null : self::Extension1|set#nullable1(self::Extension1|nonNullable1Method(#t125{self::Class1}), self::Extension1|get#nullable1(new self::Class1::•()));
   nullable1 = let final self::Class1? #t126 = n1 in #t126 == null ?{self::Class1?} null : let final self::Class1? #t127 = self::Extension1|get#nullable1(new self::Class1::•()) in let final void #t128 = self::Extension1|set#nullable1(self::Extension1|nonNullable1Method(#t126{self::Class1}), #t127) in #t127;
-  let final self::Class1? #t129 = n1 in #t129 == null ?{void} null : self::Extension1|set#nullable1(self::Extension1|nonNullable1Method(#t129{self::Class1}), let final self::Class1 #t130 = new self::Class1::•() in let final void #t131 = self::Extension1|set#nullable1(new self::Class1::•(), #t130) in #t130);
+  let final self::Class1? #t129 = n1 in #t129 == null ?{self::Class1?} null : self::Extension1|set#nullable1(self::Extension1|nonNullable1Method(#t129{self::Class1}), let final self::Class1 #t130 = new self::Class1::•() in let final void #t131 = self::Extension1|set#nullable1(new self::Class1::•(), #t130) in #t130);
   nullable1 = let final self::Class1? #t132 = n1 in #t132 == null ?{self::Class1?} null : let final self::Class1 #t133 = let final self::Class1 #t134 = new self::Class1::•() in let final void #t135 = self::Extension1|set#nullable1(new self::Class1::•(), #t134) in #t134 in let final void #t136 = self::Extension1|set#nullable1(self::Extension1|nonNullable1Method(#t132{self::Class1}), #t133) in #t133;
-  let final self::Class1? #t137 = n1 in #t137 == null ?{void} null : self::Extension1|set#nullable1(self::Extension1|nonNullable1Method(#t137{self::Class1}), self::Extension1|nonNullable1Method(new self::Class1::•()));
+  let final self::Class1? #t137 = n1 in #t137 == null ?{self::Class1?} null : self::Extension1|set#nullable1(self::Extension1|nonNullable1Method(#t137{self::Class1}), self::Extension1|nonNullable1Method(new self::Class1::•()));
   nullable1 = let final self::Class1? #t138 = n1 in #t138 == null ?{self::Class1?} null : let final self::Class1 #t139 = self::Extension1|nonNullable1Method(new self::Class1::•()) in let final void #t140 = self::Extension1|set#nullable1(self::Extension1|nonNullable1Method(#t138{self::Class1}), #t139) in #t139;
   let final self::Class1? #t141 = n1 in #t141 == null ?{self::Class1?} null : self::Extension1|get#nullable1(self::Extension1|nonNullable1Method(self::Extension1|get#nonNullable1(#t141{self::Class1})));
-  let final self::Class1? #t142 = n1 in #t142 == null ?{void} null : self::Extension1|set#nullable1(self::Extension1|nonNullable1Method(self::Extension1|get#nonNullable1(#t142{self::Class1})), new self::Class1::•());
+  let final self::Class1? #t142 = n1 in #t142 == null ?{self::Class1?} null : self::Extension1|set#nullable1(self::Extension1|nonNullable1Method(self::Extension1|get#nonNullable1(#t142{self::Class1})), new self::Class1::•());
   nullable1 = let final self::Class1? #t143 = n1 in #t143 == null ?{self::Class1?} null : let final self::Class1 #t144 = new self::Class1::•() in let final void #t145 = self::Extension1|set#nullable1(self::Extension1|nonNullable1Method(self::Extension1|get#nonNullable1(#t143{self::Class1})), #t144) in #t144;
   let final self::Class1? #t146 = n1 in #t146 == null ?{self::Class1?} null : self::Extension1|nonNullable1Method(self::Extension1|nonNullable1Method(self::Extension1|get#nonNullable1(#t146{self::Class1})));
   let final self::Class1? #t147 = n1 in #t147 == null ?{self::Class1?} null : self::Extension1|set#nullable1(#t147{self::Class1}, self::Extension1|get#nullable1(self::Extension1|nonNullable1Method(new self::Class1::•())));
@@ -212,7 +204,7 @@
   let final self::Class1? #t159 = n1 in #t159 == null ?{self::Class1?} null : self::Extension1|set#nullable1(#t159{self::Class1}, self::Extension1|nonNullable1Method(self::Extension1|nonNullable1Method(new self::Class1::•())));
   nullable1 = let final self::Class1? #t160 = n1 in #t160 == null ?{self::Class1?} null : let final self::Class1 #t161 = self::Extension1|nonNullable1Method(self::Extension1|nonNullable1Method(new self::Class1::•())) in let final void #t162 = self::Extension1|set#nullable1(#t160{self::Class1}, #t161) in #t161;
   let final self::Class1? #t163 = n1 in #t163 == null ?{self::Class1?} null : self::Extension1|get#nullable1(self::Extension1|nonNullable1Method(self::Extension1|nonNullable1Method(#t163{self::Class1})));
-  let final self::Class1? #t164 = n1 in #t164 == null ?{void} null : self::Extension1|set#nullable1(self::Extension1|nonNullable1Method(self::Extension1|nonNullable1Method(#t164{self::Class1})), new self::Class1::•());
+  let final self::Class1? #t164 = n1 in #t164 == null ?{self::Class1?} null : self::Extension1|set#nullable1(self::Extension1|nonNullable1Method(self::Extension1|nonNullable1Method(#t164{self::Class1})), new self::Class1::•());
   let final self::Class1? #t165 = n1 in #t165 == null ?{self::Class1?} null : self::Extension1|nonNullable1Method(self::Extension1|nonNullable1Method(self::Extension1|nonNullable1Method(#t165{self::Class1})));
   let final self::Class1? #t166 = n1 in #t166 == null ?{self::Class1?} null : let final self::Class1? #t167 = self::Extension1|nonNullable1Method(#t166{self::Class1}) in #t167 == null ?{self::Class1?} null : self::Extension1|nonNullable1Method(#t167{self::Class1});
 }
diff --git a/pkg/front_end/testcases/nnbd/null_shorting_explicit_extension.dart.weak.expect b/pkg/front_end/testcases/nnbd/null_shorting_explicit_extension.dart.weak.expect
index 2793bf7..410df6c 100644
--- a/pkg/front_end/testcases/nnbd/null_shorting_explicit_extension.dart.weak.expect
+++ b/pkg/front_end/testcases/nnbd/null_shorting_explicit_extension.dart.weak.expect
@@ -2,14 +2,6 @@
 //
 // Problems in library:
 //
-// pkg/front_end/testcases/nnbd/null_shorting_explicit_extension.dart:90:30: Error: This expression has type 'void' and can't be used.
-//   Extension1(n1)?.nullable1?.nullable1 = new Class1();
-//                              ^
-//
-// pkg/front_end/testcases/nnbd/null_shorting_explicit_extension.dart:91:43: Error: This expression has type 'void' and can't be used.
-//   Extension1(n1)?.nonNullable1.nullable1?.nullable1 = new Class1();
-//                                           ^
-//
 // pkg/front_end/testcases/nnbd/null_shorting_explicit_extension.dart:93:59: Error: Property 'nullable1' cannot be accessed on 'Class1?' because it is potentially null.
 //  - 'Class1' is from 'pkg/front_end/testcases/nnbd/null_shorting_explicit_extension.dart'.
 // Try accessing using ?. instead.
@@ -143,9 +135,9 @@
   let final self::Class1? #t7 = n1 in #t7 == null ?{self::Class1?} null : self::Extension1|get#nullable1(self::Extension1|get#nonNullable1(#t7{self::Class1}));
   let final self::Class1? #t8 = n1 in #t8 == null ?{self::Class1?} null : let final self::Class1? #t9 = self::Extension1|get#nullable1(#t8{self::Class1}) in #t9 == null ?{self::Class1?} null : self::Extension1|get#nullable1(#t9{self::Class1});
   let final self::Class1? #t10 = n1 in #t10 == null ?{self::Class1?} null : let final self::Class1? #t11 = self::Extension1|get#nullable1(self::Extension1|get#nonNullable1(#t10{self::Class1})) in #t11 == null ?{self::Class1?} null : self::Extension1|get#nullable1(#t11{self::Class1});
-  let final self::Class1? #t12 = n1 in #t12 == null ?{void} null : self::Extension1|set#nullable1(self::Extension1|get#nonNullable1(#t12{self::Class1}), new self::Class1::•());
-  let final self::Class1? #t13 = n1 in #t13 == null ?{void} null : let final self::Class1? #t14 = self::Extension1|get#nullable1(#t13{self::Class1}) in #t14 == null ?{void} null : self::Extension1|set#nullable1(#t14{self::Class1}, new self::Class1::•());
-  let final self::Class1? #t15 = n1 in #t15 == null ?{void} null : let final self::Class1? #t16 = self::Extension1|get#nullable1(self::Extension1|get#nonNullable1(#t15{self::Class1})) in #t16 == null ?{void} null : self::Extension1|set#nullable1(#t16{self::Class1}, new self::Class1::•());
+  let final self::Class1? #t12 = n1 in #t12 == null ?{self::Class1?} null : self::Extension1|set#nullable1(self::Extension1|get#nonNullable1(#t12{self::Class1}), new self::Class1::•());
+  let final self::Class1? #t13 = n1 in #t13 == null ?{self::Class1?} null : let final self::Class1? #t14 = self::Extension1|get#nullable1(#t13{self::Class1}) in #t14 == null ?{self::Class1?} null : self::Extension1|set#nullable1(#t14{self::Class1}, new self::Class1::•());
+  let final self::Class1? #t15 = n1 in #t15 == null ?{self::Class1?} null : let final self::Class1? #t16 = self::Extension1|get#nullable1(self::Extension1|get#nonNullable1(#t15{self::Class1})) in #t16 == null ?{self::Class1?} null : self::Extension1|set#nullable1(#t16{self::Class1}, new self::Class1::•());
   let final self::Class1? #t17 = let final self::Class1? #t18 = n1 in #t18 == null ?{self::Class1?} null : self::Extension1|get#nullable1(#t18{self::Class1}) in #t17 == null ?{self::Class1?} null : self::Extension1|get#nullable1(#t17{self::Class1});
   self::throws(() → void => invalid-expression "pkg/front_end/testcases/nnbd/null_shorting_explicit_extension.dart:93:59: Error: Property 'nullable1' cannot be accessed on 'Class1?' because it is potentially null.
  - 'Class1' is from 'pkg/front_end/testcases/nnbd/null_shorting_explicit_extension.dart'.
@@ -168,10 +160,10 @@
   let final self::Class1? #t48 = n1 in #t48 == null ?{self::Class1?} null : self::Extension1|set#nullable1(#t48{self::Class1}, self::Extension1|nonNullable1Method(new self::Class1::•()));
   nullable1 = let final self::Class1? #t49 = n1 in #t49 == null ?{self::Class1?} null : let final self::Class1 #t50 = self::Extension1|nonNullable1Method(new self::Class1::•()) in let final void #t51 = self::Extension1|set#nullable1(#t49{self::Class1}, #t50) in #t50;
   let final self::Class1? #t52 = n1 in #t52 == null ?{self::Class1?} null : self::Extension1|get#nullable1(self::Extension1|nonNullable1Method(#t52{self::Class1}));
-  let final self::Class1? #t53 = n1 in #t53 == null ?{void} null : self::Extension1|set#nullable1(self::Extension1|nonNullable1Method(#t53{self::Class1}), new self::Class1::•());
+  let final self::Class1? #t53 = n1 in #t53 == null ?{self::Class1?} null : self::Extension1|set#nullable1(self::Extension1|nonNullable1Method(#t53{self::Class1}), new self::Class1::•());
   let final self::Class1? #t54 = n1 in #t54 == null ?{self::Class1?} null : self::Extension1|nonNullable1Method(self::Extension1|nonNullable1Method(#t54{self::Class1}));
   let final self::Class1? #t55 = n1 in #t55 == null ?{self::Class1?} null : self::Extension1|get#nullable1(self::Extension1|get#nonNullable1(self::Extension1|get#nonNullable1(#t55{self::Class1})));
-  let final self::Class1? #t56 = n1 in #t56 == null ?{void} null : self::Extension1|set#nullable1(self::Extension1|get#nonNullable1(self::Extension1|get#nonNullable1(#t56{self::Class1})), new self::Class1::•());
+  let final self::Class1? #t56 = n1 in #t56 == null ?{self::Class1?} null : self::Extension1|set#nullable1(self::Extension1|get#nonNullable1(self::Extension1|get#nonNullable1(#t56{self::Class1})), new self::Class1::•());
   nullable1 = let final self::Class1? #t57 = n1 in #t57 == null ?{self::Class1?} null : let final self::Class1 #t58 = new self::Class1::•() in let final void #t59 = self::Extension1|set#nullable1(self::Extension1|get#nonNullable1(self::Extension1|get#nonNullable1(#t57{self::Class1})), #t58) in #t58;
   let final self::Class1? #t60 = n1 in #t60 == null ?{self::Class1?} null : let final self::Class1? #t61 = self::Extension1|get#nullable1(self::Extension1|get#nonNullable1(#t60{self::Class1})) in #t61 == null ?{self::Class1?} null : self::Extension1|nonNullable1Method(#t61{self::Class1});
   let final self::Class1? #t62 = n1 in #t62 == null ?{self::Class1?} null : self::Extension1|set#nullable1(#t62{self::Class1}, self::Extension1|get#nullable1(self::Extension1|get#nonNullable1(new self::Class1::•())));
@@ -181,13 +173,13 @@
   let final self::Class1? #t74 = n1 in #t74 == null ?{self::Class1?} null : self::Extension1|set#nullable1(#t74{self::Class1}, self::Extension1|nonNullable1Method(self::Extension1|get#nonNullable1(new self::Class1::•())));
   nullable1 = let final self::Class1? #t75 = n1 in #t75 == null ?{self::Class1?} null : let final self::Class1 #t76 = self::Extension1|nonNullable1Method(self::Extension1|get#nonNullable1(new self::Class1::•())) in let final void #t77 = self::Extension1|set#nullable1(#t75{self::Class1}, #t76) in #t76;
   let final self::Class1? #t78 = n1 in #t78 == null ?{self::Class1?} null : self::Extension1|get#nullable1(self::Extension1|get#nonNullable1(self::Extension1|nonNullable1Method(#t78{self::Class1})));
-  let final self::Class1? #t79 = n1 in #t79 == null ?{void} null : self::Extension1|set#nullable1(self::Extension1|get#nonNullable1(self::Extension1|nonNullable1Method(#t79{self::Class1})), new self::Class1::•());
+  let final self::Class1? #t79 = n1 in #t79 == null ?{self::Class1?} null : self::Extension1|set#nullable1(self::Extension1|get#nonNullable1(self::Extension1|nonNullable1Method(#t79{self::Class1})), new self::Class1::•());
   let final self::Class1? #t80 = n1 in #t80 == null ?{self::Class1?} null : self::Extension1|nonNullable1Method(self::Extension1|get#nonNullable1(self::Extension1|nonNullable1Method(#t80{self::Class1})));
-  let final self::Class1? #t81 = n1 in #t81 == null ?{void} null : self::Extension1|set#nullable1(self::Extension1|get#nonNullable1(#t81{self::Class1}), self::Extension1|get#nullable1(new self::Class1::•()));
+  let final self::Class1? #t81 = n1 in #t81 == null ?{self::Class1?} null : self::Extension1|set#nullable1(self::Extension1|get#nonNullable1(#t81{self::Class1}), self::Extension1|get#nullable1(new self::Class1::•()));
   nullable1 = let final self::Class1? #t82 = n1 in #t82 == null ?{self::Class1?} null : let final self::Class1? #t83 = self::Extension1|get#nullable1(new self::Class1::•()) in let final void #t84 = self::Extension1|set#nullable1(self::Extension1|get#nonNullable1(#t82{self::Class1}), #t83) in #t83;
-  let final self::Class1? #t85 = n1 in #t85 == null ?{void} null : self::Extension1|set#nullable1(self::Extension1|get#nonNullable1(#t85{self::Class1}), let final self::Class1 #t86 = new self::Class1::•() in let final void #t87 = self::Extension1|set#nullable1(new self::Class1::•(), #t86) in #t86);
+  let final self::Class1? #t85 = n1 in #t85 == null ?{self::Class1?} null : self::Extension1|set#nullable1(self::Extension1|get#nonNullable1(#t85{self::Class1}), let final self::Class1 #t86 = new self::Class1::•() in let final void #t87 = self::Extension1|set#nullable1(new self::Class1::•(), #t86) in #t86);
   nullable1 = let final self::Class1? #t88 = n1 in #t88 == null ?{self::Class1?} null : let final self::Class1 #t89 = let final self::Class1 #t90 = new self::Class1::•() in let final void #t91 = self::Extension1|set#nullable1(new self::Class1::•(), #t90) in #t90 in let final void #t92 = self::Extension1|set#nullable1(self::Extension1|get#nonNullable1(#t88{self::Class1}), #t89) in #t89;
-  let final self::Class1? #t93 = n1 in #t93 == null ?{void} null : self::Extension1|set#nullable1(self::Extension1|get#nonNullable1(#t93{self::Class1}), self::Extension1|nonNullable1Method(new self::Class1::•()));
+  let final self::Class1? #t93 = n1 in #t93 == null ?{self::Class1?} null : self::Extension1|set#nullable1(self::Extension1|get#nonNullable1(#t93{self::Class1}), self::Extension1|nonNullable1Method(new self::Class1::•()));
   nullable1 = let final self::Class1? #t94 = n1 in #t94 == null ?{self::Class1?} null : let final self::Class1 #t95 = self::Extension1|nonNullable1Method(new self::Class1::•()) in let final void #t96 = self::Extension1|set#nullable1(self::Extension1|get#nonNullable1(#t94{self::Class1}), #t95) in #t95;
   let final self::Class1? #t97 = n1 in #t97 == null ?{self::Class1?} null : self::Extension1|set#nullable1(#t97{self::Class1}, let final self::Class1? #t98 = self::Extension1|get#nullable1(new self::Class1::•()) in let final void #t99 = self::Extension1|set#nullable1(new self::Class1::•(), #t98) in #t98);
   nullable1 = let final self::Class1? #t100 = n1 in #t100 == null ?{self::Class1?} null : let final self::Class1? #t101 = let final self::Class1? #t102 = self::Extension1|get#nullable1(new self::Class1::•()) in let final void #t103 = self::Extension1|set#nullable1(new self::Class1::•(), #t102) in #t102 in let final void #t104 = self::Extension1|set#nullable1(#t100{self::Class1}, #t101) in #t101;
@@ -195,14 +187,14 @@
   nullable1 = let final self::Class1? #t110 = n1 in #t110 == null ?{self::Class1?} null : let final self::Class1 #t111 = let final self::Class1 #t112 = let final self::Class1 #t113 = new self::Class1::•() in let final void #t114 = self::Extension1|set#nullable1(new self::Class1::•(), #t113) in #t113 in let final void #t115 = self::Extension1|set#nullable1(new self::Class1::•(), #t112) in #t112 in let final void #t116 = self::Extension1|set#nullable1(#t110{self::Class1}, #t111) in #t111;
   let final self::Class1? #t117 = n1 in #t117 == null ?{self::Class1?} null : self::Extension1|set#nullable1(#t117{self::Class1}, let final self::Class1 #t118 = self::Extension1|nonNullable1Method(new self::Class1::•()) in let final void #t119 = self::Extension1|set#nullable1(new self::Class1::•(), #t118) in #t118);
   nullable1 = let final self::Class1? #t120 = n1 in #t120 == null ?{self::Class1?} null : let final self::Class1 #t121 = let final self::Class1 #t122 = self::Extension1|nonNullable1Method(new self::Class1::•()) in let final void #t123 = self::Extension1|set#nullable1(new self::Class1::•(), #t122) in #t122 in let final void #t124 = self::Extension1|set#nullable1(#t120{self::Class1}, #t121) in #t121;
-  let final self::Class1? #t125 = n1 in #t125 == null ?{void} null : self::Extension1|set#nullable1(self::Extension1|nonNullable1Method(#t125{self::Class1}), self::Extension1|get#nullable1(new self::Class1::•()));
+  let final self::Class1? #t125 = n1 in #t125 == null ?{self::Class1?} null : self::Extension1|set#nullable1(self::Extension1|nonNullable1Method(#t125{self::Class1}), self::Extension1|get#nullable1(new self::Class1::•()));
   nullable1 = let final self::Class1? #t126 = n1 in #t126 == null ?{self::Class1?} null : let final self::Class1? #t127 = self::Extension1|get#nullable1(new self::Class1::•()) in let final void #t128 = self::Extension1|set#nullable1(self::Extension1|nonNullable1Method(#t126{self::Class1}), #t127) in #t127;
-  let final self::Class1? #t129 = n1 in #t129 == null ?{void} null : self::Extension1|set#nullable1(self::Extension1|nonNullable1Method(#t129{self::Class1}), let final self::Class1 #t130 = new self::Class1::•() in let final void #t131 = self::Extension1|set#nullable1(new self::Class1::•(), #t130) in #t130);
+  let final self::Class1? #t129 = n1 in #t129 == null ?{self::Class1?} null : self::Extension1|set#nullable1(self::Extension1|nonNullable1Method(#t129{self::Class1}), let final self::Class1 #t130 = new self::Class1::•() in let final void #t131 = self::Extension1|set#nullable1(new self::Class1::•(), #t130) in #t130);
   nullable1 = let final self::Class1? #t132 = n1 in #t132 == null ?{self::Class1?} null : let final self::Class1 #t133 = let final self::Class1 #t134 = new self::Class1::•() in let final void #t135 = self::Extension1|set#nullable1(new self::Class1::•(), #t134) in #t134 in let final void #t136 = self::Extension1|set#nullable1(self::Extension1|nonNullable1Method(#t132{self::Class1}), #t133) in #t133;
-  let final self::Class1? #t137 = n1 in #t137 == null ?{void} null : self::Extension1|set#nullable1(self::Extension1|nonNullable1Method(#t137{self::Class1}), self::Extension1|nonNullable1Method(new self::Class1::•()));
+  let final self::Class1? #t137 = n1 in #t137 == null ?{self::Class1?} null : self::Extension1|set#nullable1(self::Extension1|nonNullable1Method(#t137{self::Class1}), self::Extension1|nonNullable1Method(new self::Class1::•()));
   nullable1 = let final self::Class1? #t138 = n1 in #t138 == null ?{self::Class1?} null : let final self::Class1 #t139 = self::Extension1|nonNullable1Method(new self::Class1::•()) in let final void #t140 = self::Extension1|set#nullable1(self::Extension1|nonNullable1Method(#t138{self::Class1}), #t139) in #t139;
   let final self::Class1? #t141 = n1 in #t141 == null ?{self::Class1?} null : self::Extension1|get#nullable1(self::Extension1|nonNullable1Method(self::Extension1|get#nonNullable1(#t141{self::Class1})));
-  let final self::Class1? #t142 = n1 in #t142 == null ?{void} null : self::Extension1|set#nullable1(self::Extension1|nonNullable1Method(self::Extension1|get#nonNullable1(#t142{self::Class1})), new self::Class1::•());
+  let final self::Class1? #t142 = n1 in #t142 == null ?{self::Class1?} null : self::Extension1|set#nullable1(self::Extension1|nonNullable1Method(self::Extension1|get#nonNullable1(#t142{self::Class1})), new self::Class1::•());
   nullable1 = let final self::Class1? #t143 = n1 in #t143 == null ?{self::Class1?} null : let final self::Class1 #t144 = new self::Class1::•() in let final void #t145 = self::Extension1|set#nullable1(self::Extension1|nonNullable1Method(self::Extension1|get#nonNullable1(#t143{self::Class1})), #t144) in #t144;
   let final self::Class1? #t146 = n1 in #t146 == null ?{self::Class1?} null : self::Extension1|nonNullable1Method(self::Extension1|nonNullable1Method(self::Extension1|get#nonNullable1(#t146{self::Class1})));
   let final self::Class1? #t147 = n1 in #t147 == null ?{self::Class1?} null : self::Extension1|set#nullable1(#t147{self::Class1}, self::Extension1|get#nullable1(self::Extension1|nonNullable1Method(new self::Class1::•())));
@@ -212,7 +204,7 @@
   let final self::Class1? #t159 = n1 in #t159 == null ?{self::Class1?} null : self::Extension1|set#nullable1(#t159{self::Class1}, self::Extension1|nonNullable1Method(self::Extension1|nonNullable1Method(new self::Class1::•())));
   nullable1 = let final self::Class1? #t160 = n1 in #t160 == null ?{self::Class1?} null : let final self::Class1 #t161 = self::Extension1|nonNullable1Method(self::Extension1|nonNullable1Method(new self::Class1::•())) in let final void #t162 = self::Extension1|set#nullable1(#t160{self::Class1}, #t161) in #t161;
   let final self::Class1? #t163 = n1 in #t163 == null ?{self::Class1?} null : self::Extension1|get#nullable1(self::Extension1|nonNullable1Method(self::Extension1|nonNullable1Method(#t163{self::Class1})));
-  let final self::Class1? #t164 = n1 in #t164 == null ?{void} null : self::Extension1|set#nullable1(self::Extension1|nonNullable1Method(self::Extension1|nonNullable1Method(#t164{self::Class1})), new self::Class1::•());
+  let final self::Class1? #t164 = n1 in #t164 == null ?{self::Class1?} null : self::Extension1|set#nullable1(self::Extension1|nonNullable1Method(self::Extension1|nonNullable1Method(#t164{self::Class1})), new self::Class1::•());
   let final self::Class1? #t165 = n1 in #t165 == null ?{self::Class1?} null : self::Extension1|nonNullable1Method(self::Extension1|nonNullable1Method(self::Extension1|nonNullable1Method(#t165{self::Class1})));
   let final self::Class1? #t166 = n1 in #t166 == null ?{self::Class1?} null : let final self::Class1? #t167 = self::Extension1|nonNullable1Method(#t166{self::Class1}) in #t167 == null ?{self::Class1?} null : self::Extension1|nonNullable1Method(#t167{self::Class1});
 }
diff --git a/pkg/front_end/testcases/nnbd/null_shorting_explicit_extension.dart.weak.modular.expect b/pkg/front_end/testcases/nnbd/null_shorting_explicit_extension.dart.weak.modular.expect
index 2793bf7..410df6c 100644
--- a/pkg/front_end/testcases/nnbd/null_shorting_explicit_extension.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/nnbd/null_shorting_explicit_extension.dart.weak.modular.expect
@@ -2,14 +2,6 @@
 //
 // Problems in library:
 //
-// pkg/front_end/testcases/nnbd/null_shorting_explicit_extension.dart:90:30: Error: This expression has type 'void' and can't be used.
-//   Extension1(n1)?.nullable1?.nullable1 = new Class1();
-//                              ^
-//
-// pkg/front_end/testcases/nnbd/null_shorting_explicit_extension.dart:91:43: Error: This expression has type 'void' and can't be used.
-//   Extension1(n1)?.nonNullable1.nullable1?.nullable1 = new Class1();
-//                                           ^
-//
 // pkg/front_end/testcases/nnbd/null_shorting_explicit_extension.dart:93:59: Error: Property 'nullable1' cannot be accessed on 'Class1?' because it is potentially null.
 //  - 'Class1' is from 'pkg/front_end/testcases/nnbd/null_shorting_explicit_extension.dart'.
 // Try accessing using ?. instead.
@@ -143,9 +135,9 @@
   let final self::Class1? #t7 = n1 in #t7 == null ?{self::Class1?} null : self::Extension1|get#nullable1(self::Extension1|get#nonNullable1(#t7{self::Class1}));
   let final self::Class1? #t8 = n1 in #t8 == null ?{self::Class1?} null : let final self::Class1? #t9 = self::Extension1|get#nullable1(#t8{self::Class1}) in #t9 == null ?{self::Class1?} null : self::Extension1|get#nullable1(#t9{self::Class1});
   let final self::Class1? #t10 = n1 in #t10 == null ?{self::Class1?} null : let final self::Class1? #t11 = self::Extension1|get#nullable1(self::Extension1|get#nonNullable1(#t10{self::Class1})) in #t11 == null ?{self::Class1?} null : self::Extension1|get#nullable1(#t11{self::Class1});
-  let final self::Class1? #t12 = n1 in #t12 == null ?{void} null : self::Extension1|set#nullable1(self::Extension1|get#nonNullable1(#t12{self::Class1}), new self::Class1::•());
-  let final self::Class1? #t13 = n1 in #t13 == null ?{void} null : let final self::Class1? #t14 = self::Extension1|get#nullable1(#t13{self::Class1}) in #t14 == null ?{void} null : self::Extension1|set#nullable1(#t14{self::Class1}, new self::Class1::•());
-  let final self::Class1? #t15 = n1 in #t15 == null ?{void} null : let final self::Class1? #t16 = self::Extension1|get#nullable1(self::Extension1|get#nonNullable1(#t15{self::Class1})) in #t16 == null ?{void} null : self::Extension1|set#nullable1(#t16{self::Class1}, new self::Class1::•());
+  let final self::Class1? #t12 = n1 in #t12 == null ?{self::Class1?} null : self::Extension1|set#nullable1(self::Extension1|get#nonNullable1(#t12{self::Class1}), new self::Class1::•());
+  let final self::Class1? #t13 = n1 in #t13 == null ?{self::Class1?} null : let final self::Class1? #t14 = self::Extension1|get#nullable1(#t13{self::Class1}) in #t14 == null ?{self::Class1?} null : self::Extension1|set#nullable1(#t14{self::Class1}, new self::Class1::•());
+  let final self::Class1? #t15 = n1 in #t15 == null ?{self::Class1?} null : let final self::Class1? #t16 = self::Extension1|get#nullable1(self::Extension1|get#nonNullable1(#t15{self::Class1})) in #t16 == null ?{self::Class1?} null : self::Extension1|set#nullable1(#t16{self::Class1}, new self::Class1::•());
   let final self::Class1? #t17 = let final self::Class1? #t18 = n1 in #t18 == null ?{self::Class1?} null : self::Extension1|get#nullable1(#t18{self::Class1}) in #t17 == null ?{self::Class1?} null : self::Extension1|get#nullable1(#t17{self::Class1});
   self::throws(() → void => invalid-expression "pkg/front_end/testcases/nnbd/null_shorting_explicit_extension.dart:93:59: Error: Property 'nullable1' cannot be accessed on 'Class1?' because it is potentially null.
  - 'Class1' is from 'pkg/front_end/testcases/nnbd/null_shorting_explicit_extension.dart'.
@@ -168,10 +160,10 @@
   let final self::Class1? #t48 = n1 in #t48 == null ?{self::Class1?} null : self::Extension1|set#nullable1(#t48{self::Class1}, self::Extension1|nonNullable1Method(new self::Class1::•()));
   nullable1 = let final self::Class1? #t49 = n1 in #t49 == null ?{self::Class1?} null : let final self::Class1 #t50 = self::Extension1|nonNullable1Method(new self::Class1::•()) in let final void #t51 = self::Extension1|set#nullable1(#t49{self::Class1}, #t50) in #t50;
   let final self::Class1? #t52 = n1 in #t52 == null ?{self::Class1?} null : self::Extension1|get#nullable1(self::Extension1|nonNullable1Method(#t52{self::Class1}));
-  let final self::Class1? #t53 = n1 in #t53 == null ?{void} null : self::Extension1|set#nullable1(self::Extension1|nonNullable1Method(#t53{self::Class1}), new self::Class1::•());
+  let final self::Class1? #t53 = n1 in #t53 == null ?{self::Class1?} null : self::Extension1|set#nullable1(self::Extension1|nonNullable1Method(#t53{self::Class1}), new self::Class1::•());
   let final self::Class1? #t54 = n1 in #t54 == null ?{self::Class1?} null : self::Extension1|nonNullable1Method(self::Extension1|nonNullable1Method(#t54{self::Class1}));
   let final self::Class1? #t55 = n1 in #t55 == null ?{self::Class1?} null : self::Extension1|get#nullable1(self::Extension1|get#nonNullable1(self::Extension1|get#nonNullable1(#t55{self::Class1})));
-  let final self::Class1? #t56 = n1 in #t56 == null ?{void} null : self::Extension1|set#nullable1(self::Extension1|get#nonNullable1(self::Extension1|get#nonNullable1(#t56{self::Class1})), new self::Class1::•());
+  let final self::Class1? #t56 = n1 in #t56 == null ?{self::Class1?} null : self::Extension1|set#nullable1(self::Extension1|get#nonNullable1(self::Extension1|get#nonNullable1(#t56{self::Class1})), new self::Class1::•());
   nullable1 = let final self::Class1? #t57 = n1 in #t57 == null ?{self::Class1?} null : let final self::Class1 #t58 = new self::Class1::•() in let final void #t59 = self::Extension1|set#nullable1(self::Extension1|get#nonNullable1(self::Extension1|get#nonNullable1(#t57{self::Class1})), #t58) in #t58;
   let final self::Class1? #t60 = n1 in #t60 == null ?{self::Class1?} null : let final self::Class1? #t61 = self::Extension1|get#nullable1(self::Extension1|get#nonNullable1(#t60{self::Class1})) in #t61 == null ?{self::Class1?} null : self::Extension1|nonNullable1Method(#t61{self::Class1});
   let final self::Class1? #t62 = n1 in #t62 == null ?{self::Class1?} null : self::Extension1|set#nullable1(#t62{self::Class1}, self::Extension1|get#nullable1(self::Extension1|get#nonNullable1(new self::Class1::•())));
@@ -181,13 +173,13 @@
   let final self::Class1? #t74 = n1 in #t74 == null ?{self::Class1?} null : self::Extension1|set#nullable1(#t74{self::Class1}, self::Extension1|nonNullable1Method(self::Extension1|get#nonNullable1(new self::Class1::•())));
   nullable1 = let final self::Class1? #t75 = n1 in #t75 == null ?{self::Class1?} null : let final self::Class1 #t76 = self::Extension1|nonNullable1Method(self::Extension1|get#nonNullable1(new self::Class1::•())) in let final void #t77 = self::Extension1|set#nullable1(#t75{self::Class1}, #t76) in #t76;
   let final self::Class1? #t78 = n1 in #t78 == null ?{self::Class1?} null : self::Extension1|get#nullable1(self::Extension1|get#nonNullable1(self::Extension1|nonNullable1Method(#t78{self::Class1})));
-  let final self::Class1? #t79 = n1 in #t79 == null ?{void} null : self::Extension1|set#nullable1(self::Extension1|get#nonNullable1(self::Extension1|nonNullable1Method(#t79{self::Class1})), new self::Class1::•());
+  let final self::Class1? #t79 = n1 in #t79 == null ?{self::Class1?} null : self::Extension1|set#nullable1(self::Extension1|get#nonNullable1(self::Extension1|nonNullable1Method(#t79{self::Class1})), new self::Class1::•());
   let final self::Class1? #t80 = n1 in #t80 == null ?{self::Class1?} null : self::Extension1|nonNullable1Method(self::Extension1|get#nonNullable1(self::Extension1|nonNullable1Method(#t80{self::Class1})));
-  let final self::Class1? #t81 = n1 in #t81 == null ?{void} null : self::Extension1|set#nullable1(self::Extension1|get#nonNullable1(#t81{self::Class1}), self::Extension1|get#nullable1(new self::Class1::•()));
+  let final self::Class1? #t81 = n1 in #t81 == null ?{self::Class1?} null : self::Extension1|set#nullable1(self::Extension1|get#nonNullable1(#t81{self::Class1}), self::Extension1|get#nullable1(new self::Class1::•()));
   nullable1 = let final self::Class1? #t82 = n1 in #t82 == null ?{self::Class1?} null : let final self::Class1? #t83 = self::Extension1|get#nullable1(new self::Class1::•()) in let final void #t84 = self::Extension1|set#nullable1(self::Extension1|get#nonNullable1(#t82{self::Class1}), #t83) in #t83;
-  let final self::Class1? #t85 = n1 in #t85 == null ?{void} null : self::Extension1|set#nullable1(self::Extension1|get#nonNullable1(#t85{self::Class1}), let final self::Class1 #t86 = new self::Class1::•() in let final void #t87 = self::Extension1|set#nullable1(new self::Class1::•(), #t86) in #t86);
+  let final self::Class1? #t85 = n1 in #t85 == null ?{self::Class1?} null : self::Extension1|set#nullable1(self::Extension1|get#nonNullable1(#t85{self::Class1}), let final self::Class1 #t86 = new self::Class1::•() in let final void #t87 = self::Extension1|set#nullable1(new self::Class1::•(), #t86) in #t86);
   nullable1 = let final self::Class1? #t88 = n1 in #t88 == null ?{self::Class1?} null : let final self::Class1 #t89 = let final self::Class1 #t90 = new self::Class1::•() in let final void #t91 = self::Extension1|set#nullable1(new self::Class1::•(), #t90) in #t90 in let final void #t92 = self::Extension1|set#nullable1(self::Extension1|get#nonNullable1(#t88{self::Class1}), #t89) in #t89;
-  let final self::Class1? #t93 = n1 in #t93 == null ?{void} null : self::Extension1|set#nullable1(self::Extension1|get#nonNullable1(#t93{self::Class1}), self::Extension1|nonNullable1Method(new self::Class1::•()));
+  let final self::Class1? #t93 = n1 in #t93 == null ?{self::Class1?} null : self::Extension1|set#nullable1(self::Extension1|get#nonNullable1(#t93{self::Class1}), self::Extension1|nonNullable1Method(new self::Class1::•()));
   nullable1 = let final self::Class1? #t94 = n1 in #t94 == null ?{self::Class1?} null : let final self::Class1 #t95 = self::Extension1|nonNullable1Method(new self::Class1::•()) in let final void #t96 = self::Extension1|set#nullable1(self::Extension1|get#nonNullable1(#t94{self::Class1}), #t95) in #t95;
   let final self::Class1? #t97 = n1 in #t97 == null ?{self::Class1?} null : self::Extension1|set#nullable1(#t97{self::Class1}, let final self::Class1? #t98 = self::Extension1|get#nullable1(new self::Class1::•()) in let final void #t99 = self::Extension1|set#nullable1(new self::Class1::•(), #t98) in #t98);
   nullable1 = let final self::Class1? #t100 = n1 in #t100 == null ?{self::Class1?} null : let final self::Class1? #t101 = let final self::Class1? #t102 = self::Extension1|get#nullable1(new self::Class1::•()) in let final void #t103 = self::Extension1|set#nullable1(new self::Class1::•(), #t102) in #t102 in let final void #t104 = self::Extension1|set#nullable1(#t100{self::Class1}, #t101) in #t101;
@@ -195,14 +187,14 @@
   nullable1 = let final self::Class1? #t110 = n1 in #t110 == null ?{self::Class1?} null : let final self::Class1 #t111 = let final self::Class1 #t112 = let final self::Class1 #t113 = new self::Class1::•() in let final void #t114 = self::Extension1|set#nullable1(new self::Class1::•(), #t113) in #t113 in let final void #t115 = self::Extension1|set#nullable1(new self::Class1::•(), #t112) in #t112 in let final void #t116 = self::Extension1|set#nullable1(#t110{self::Class1}, #t111) in #t111;
   let final self::Class1? #t117 = n1 in #t117 == null ?{self::Class1?} null : self::Extension1|set#nullable1(#t117{self::Class1}, let final self::Class1 #t118 = self::Extension1|nonNullable1Method(new self::Class1::•()) in let final void #t119 = self::Extension1|set#nullable1(new self::Class1::•(), #t118) in #t118);
   nullable1 = let final self::Class1? #t120 = n1 in #t120 == null ?{self::Class1?} null : let final self::Class1 #t121 = let final self::Class1 #t122 = self::Extension1|nonNullable1Method(new self::Class1::•()) in let final void #t123 = self::Extension1|set#nullable1(new self::Class1::•(), #t122) in #t122 in let final void #t124 = self::Extension1|set#nullable1(#t120{self::Class1}, #t121) in #t121;
-  let final self::Class1? #t125 = n1 in #t125 == null ?{void} null : self::Extension1|set#nullable1(self::Extension1|nonNullable1Method(#t125{self::Class1}), self::Extension1|get#nullable1(new self::Class1::•()));
+  let final self::Class1? #t125 = n1 in #t125 == null ?{self::Class1?} null : self::Extension1|set#nullable1(self::Extension1|nonNullable1Method(#t125{self::Class1}), self::Extension1|get#nullable1(new self::Class1::•()));
   nullable1 = let final self::Class1? #t126 = n1 in #t126 == null ?{self::Class1?} null : let final self::Class1? #t127 = self::Extension1|get#nullable1(new self::Class1::•()) in let final void #t128 = self::Extension1|set#nullable1(self::Extension1|nonNullable1Method(#t126{self::Class1}), #t127) in #t127;
-  let final self::Class1? #t129 = n1 in #t129 == null ?{void} null : self::Extension1|set#nullable1(self::Extension1|nonNullable1Method(#t129{self::Class1}), let final self::Class1 #t130 = new self::Class1::•() in let final void #t131 = self::Extension1|set#nullable1(new self::Class1::•(), #t130) in #t130);
+  let final self::Class1? #t129 = n1 in #t129 == null ?{self::Class1?} null : self::Extension1|set#nullable1(self::Extension1|nonNullable1Method(#t129{self::Class1}), let final self::Class1 #t130 = new self::Class1::•() in let final void #t131 = self::Extension1|set#nullable1(new self::Class1::•(), #t130) in #t130);
   nullable1 = let final self::Class1? #t132 = n1 in #t132 == null ?{self::Class1?} null : let final self::Class1 #t133 = let final self::Class1 #t134 = new self::Class1::•() in let final void #t135 = self::Extension1|set#nullable1(new self::Class1::•(), #t134) in #t134 in let final void #t136 = self::Extension1|set#nullable1(self::Extension1|nonNullable1Method(#t132{self::Class1}), #t133) in #t133;
-  let final self::Class1? #t137 = n1 in #t137 == null ?{void} null : self::Extension1|set#nullable1(self::Extension1|nonNullable1Method(#t137{self::Class1}), self::Extension1|nonNullable1Method(new self::Class1::•()));
+  let final self::Class1? #t137 = n1 in #t137 == null ?{self::Class1?} null : self::Extension1|set#nullable1(self::Extension1|nonNullable1Method(#t137{self::Class1}), self::Extension1|nonNullable1Method(new self::Class1::•()));
   nullable1 = let final self::Class1? #t138 = n1 in #t138 == null ?{self::Class1?} null : let final self::Class1 #t139 = self::Extension1|nonNullable1Method(new self::Class1::•()) in let final void #t140 = self::Extension1|set#nullable1(self::Extension1|nonNullable1Method(#t138{self::Class1}), #t139) in #t139;
   let final self::Class1? #t141 = n1 in #t141 == null ?{self::Class1?} null : self::Extension1|get#nullable1(self::Extension1|nonNullable1Method(self::Extension1|get#nonNullable1(#t141{self::Class1})));
-  let final self::Class1? #t142 = n1 in #t142 == null ?{void} null : self::Extension1|set#nullable1(self::Extension1|nonNullable1Method(self::Extension1|get#nonNullable1(#t142{self::Class1})), new self::Class1::•());
+  let final self::Class1? #t142 = n1 in #t142 == null ?{self::Class1?} null : self::Extension1|set#nullable1(self::Extension1|nonNullable1Method(self::Extension1|get#nonNullable1(#t142{self::Class1})), new self::Class1::•());
   nullable1 = let final self::Class1? #t143 = n1 in #t143 == null ?{self::Class1?} null : let final self::Class1 #t144 = new self::Class1::•() in let final void #t145 = self::Extension1|set#nullable1(self::Extension1|nonNullable1Method(self::Extension1|get#nonNullable1(#t143{self::Class1})), #t144) in #t144;
   let final self::Class1? #t146 = n1 in #t146 == null ?{self::Class1?} null : self::Extension1|nonNullable1Method(self::Extension1|nonNullable1Method(self::Extension1|get#nonNullable1(#t146{self::Class1})));
   let final self::Class1? #t147 = n1 in #t147 == null ?{self::Class1?} null : self::Extension1|set#nullable1(#t147{self::Class1}, self::Extension1|get#nullable1(self::Extension1|nonNullable1Method(new self::Class1::•())));
@@ -212,7 +204,7 @@
   let final self::Class1? #t159 = n1 in #t159 == null ?{self::Class1?} null : self::Extension1|set#nullable1(#t159{self::Class1}, self::Extension1|nonNullable1Method(self::Extension1|nonNullable1Method(new self::Class1::•())));
   nullable1 = let final self::Class1? #t160 = n1 in #t160 == null ?{self::Class1?} null : let final self::Class1 #t161 = self::Extension1|nonNullable1Method(self::Extension1|nonNullable1Method(new self::Class1::•())) in let final void #t162 = self::Extension1|set#nullable1(#t160{self::Class1}, #t161) in #t161;
   let final self::Class1? #t163 = n1 in #t163 == null ?{self::Class1?} null : self::Extension1|get#nullable1(self::Extension1|nonNullable1Method(self::Extension1|nonNullable1Method(#t163{self::Class1})));
-  let final self::Class1? #t164 = n1 in #t164 == null ?{void} null : self::Extension1|set#nullable1(self::Extension1|nonNullable1Method(self::Extension1|nonNullable1Method(#t164{self::Class1})), new self::Class1::•());
+  let final self::Class1? #t164 = n1 in #t164 == null ?{self::Class1?} null : self::Extension1|set#nullable1(self::Extension1|nonNullable1Method(self::Extension1|nonNullable1Method(#t164{self::Class1})), new self::Class1::•());
   let final self::Class1? #t165 = n1 in #t165 == null ?{self::Class1?} null : self::Extension1|nonNullable1Method(self::Extension1|nonNullable1Method(self::Extension1|nonNullable1Method(#t165{self::Class1})));
   let final self::Class1? #t166 = n1 in #t166 == null ?{self::Class1?} null : let final self::Class1? #t167 = self::Extension1|nonNullable1Method(#t166{self::Class1}) in #t167 == null ?{self::Class1?} null : self::Extension1|nonNullable1Method(#t167{self::Class1});
 }
diff --git a/pkg/front_end/testcases/nnbd/null_shorting_explicit_extension.dart.weak.transformed.expect b/pkg/front_end/testcases/nnbd/null_shorting_explicit_extension.dart.weak.transformed.expect
index 2793bf7..410df6c 100644
--- a/pkg/front_end/testcases/nnbd/null_shorting_explicit_extension.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/null_shorting_explicit_extension.dart.weak.transformed.expect
@@ -2,14 +2,6 @@
 //
 // Problems in library:
 //
-// pkg/front_end/testcases/nnbd/null_shorting_explicit_extension.dart:90:30: Error: This expression has type 'void' and can't be used.
-//   Extension1(n1)?.nullable1?.nullable1 = new Class1();
-//                              ^
-//
-// pkg/front_end/testcases/nnbd/null_shorting_explicit_extension.dart:91:43: Error: This expression has type 'void' and can't be used.
-//   Extension1(n1)?.nonNullable1.nullable1?.nullable1 = new Class1();
-//                                           ^
-//
 // pkg/front_end/testcases/nnbd/null_shorting_explicit_extension.dart:93:59: Error: Property 'nullable1' cannot be accessed on 'Class1?' because it is potentially null.
 //  - 'Class1' is from 'pkg/front_end/testcases/nnbd/null_shorting_explicit_extension.dart'.
 // Try accessing using ?. instead.
@@ -143,9 +135,9 @@
   let final self::Class1? #t7 = n1 in #t7 == null ?{self::Class1?} null : self::Extension1|get#nullable1(self::Extension1|get#nonNullable1(#t7{self::Class1}));
   let final self::Class1? #t8 = n1 in #t8 == null ?{self::Class1?} null : let final self::Class1? #t9 = self::Extension1|get#nullable1(#t8{self::Class1}) in #t9 == null ?{self::Class1?} null : self::Extension1|get#nullable1(#t9{self::Class1});
   let final self::Class1? #t10 = n1 in #t10 == null ?{self::Class1?} null : let final self::Class1? #t11 = self::Extension1|get#nullable1(self::Extension1|get#nonNullable1(#t10{self::Class1})) in #t11 == null ?{self::Class1?} null : self::Extension1|get#nullable1(#t11{self::Class1});
-  let final self::Class1? #t12 = n1 in #t12 == null ?{void} null : self::Extension1|set#nullable1(self::Extension1|get#nonNullable1(#t12{self::Class1}), new self::Class1::•());
-  let final self::Class1? #t13 = n1 in #t13 == null ?{void} null : let final self::Class1? #t14 = self::Extension1|get#nullable1(#t13{self::Class1}) in #t14 == null ?{void} null : self::Extension1|set#nullable1(#t14{self::Class1}, new self::Class1::•());
-  let final self::Class1? #t15 = n1 in #t15 == null ?{void} null : let final self::Class1? #t16 = self::Extension1|get#nullable1(self::Extension1|get#nonNullable1(#t15{self::Class1})) in #t16 == null ?{void} null : self::Extension1|set#nullable1(#t16{self::Class1}, new self::Class1::•());
+  let final self::Class1? #t12 = n1 in #t12 == null ?{self::Class1?} null : self::Extension1|set#nullable1(self::Extension1|get#nonNullable1(#t12{self::Class1}), new self::Class1::•());
+  let final self::Class1? #t13 = n1 in #t13 == null ?{self::Class1?} null : let final self::Class1? #t14 = self::Extension1|get#nullable1(#t13{self::Class1}) in #t14 == null ?{self::Class1?} null : self::Extension1|set#nullable1(#t14{self::Class1}, new self::Class1::•());
+  let final self::Class1? #t15 = n1 in #t15 == null ?{self::Class1?} null : let final self::Class1? #t16 = self::Extension1|get#nullable1(self::Extension1|get#nonNullable1(#t15{self::Class1})) in #t16 == null ?{self::Class1?} null : self::Extension1|set#nullable1(#t16{self::Class1}, new self::Class1::•());
   let final self::Class1? #t17 = let final self::Class1? #t18 = n1 in #t18 == null ?{self::Class1?} null : self::Extension1|get#nullable1(#t18{self::Class1}) in #t17 == null ?{self::Class1?} null : self::Extension1|get#nullable1(#t17{self::Class1});
   self::throws(() → void => invalid-expression "pkg/front_end/testcases/nnbd/null_shorting_explicit_extension.dart:93:59: Error: Property 'nullable1' cannot be accessed on 'Class1?' because it is potentially null.
  - 'Class1' is from 'pkg/front_end/testcases/nnbd/null_shorting_explicit_extension.dart'.
@@ -168,10 +160,10 @@
   let final self::Class1? #t48 = n1 in #t48 == null ?{self::Class1?} null : self::Extension1|set#nullable1(#t48{self::Class1}, self::Extension1|nonNullable1Method(new self::Class1::•()));
   nullable1 = let final self::Class1? #t49 = n1 in #t49 == null ?{self::Class1?} null : let final self::Class1 #t50 = self::Extension1|nonNullable1Method(new self::Class1::•()) in let final void #t51 = self::Extension1|set#nullable1(#t49{self::Class1}, #t50) in #t50;
   let final self::Class1? #t52 = n1 in #t52 == null ?{self::Class1?} null : self::Extension1|get#nullable1(self::Extension1|nonNullable1Method(#t52{self::Class1}));
-  let final self::Class1? #t53 = n1 in #t53 == null ?{void} null : self::Extension1|set#nullable1(self::Extension1|nonNullable1Method(#t53{self::Class1}), new self::Class1::•());
+  let final self::Class1? #t53 = n1 in #t53 == null ?{self::Class1?} null : self::Extension1|set#nullable1(self::Extension1|nonNullable1Method(#t53{self::Class1}), new self::Class1::•());
   let final self::Class1? #t54 = n1 in #t54 == null ?{self::Class1?} null : self::Extension1|nonNullable1Method(self::Extension1|nonNullable1Method(#t54{self::Class1}));
   let final self::Class1? #t55 = n1 in #t55 == null ?{self::Class1?} null : self::Extension1|get#nullable1(self::Extension1|get#nonNullable1(self::Extension1|get#nonNullable1(#t55{self::Class1})));
-  let final self::Class1? #t56 = n1 in #t56 == null ?{void} null : self::Extension1|set#nullable1(self::Extension1|get#nonNullable1(self::Extension1|get#nonNullable1(#t56{self::Class1})), new self::Class1::•());
+  let final self::Class1? #t56 = n1 in #t56 == null ?{self::Class1?} null : self::Extension1|set#nullable1(self::Extension1|get#nonNullable1(self::Extension1|get#nonNullable1(#t56{self::Class1})), new self::Class1::•());
   nullable1 = let final self::Class1? #t57 = n1 in #t57 == null ?{self::Class1?} null : let final self::Class1 #t58 = new self::Class1::•() in let final void #t59 = self::Extension1|set#nullable1(self::Extension1|get#nonNullable1(self::Extension1|get#nonNullable1(#t57{self::Class1})), #t58) in #t58;
   let final self::Class1? #t60 = n1 in #t60 == null ?{self::Class1?} null : let final self::Class1? #t61 = self::Extension1|get#nullable1(self::Extension1|get#nonNullable1(#t60{self::Class1})) in #t61 == null ?{self::Class1?} null : self::Extension1|nonNullable1Method(#t61{self::Class1});
   let final self::Class1? #t62 = n1 in #t62 == null ?{self::Class1?} null : self::Extension1|set#nullable1(#t62{self::Class1}, self::Extension1|get#nullable1(self::Extension1|get#nonNullable1(new self::Class1::•())));
@@ -181,13 +173,13 @@
   let final self::Class1? #t74 = n1 in #t74 == null ?{self::Class1?} null : self::Extension1|set#nullable1(#t74{self::Class1}, self::Extension1|nonNullable1Method(self::Extension1|get#nonNullable1(new self::Class1::•())));
   nullable1 = let final self::Class1? #t75 = n1 in #t75 == null ?{self::Class1?} null : let final self::Class1 #t76 = self::Extension1|nonNullable1Method(self::Extension1|get#nonNullable1(new self::Class1::•())) in let final void #t77 = self::Extension1|set#nullable1(#t75{self::Class1}, #t76) in #t76;
   let final self::Class1? #t78 = n1 in #t78 == null ?{self::Class1?} null : self::Extension1|get#nullable1(self::Extension1|get#nonNullable1(self::Extension1|nonNullable1Method(#t78{self::Class1})));
-  let final self::Class1? #t79 = n1 in #t79 == null ?{void} null : self::Extension1|set#nullable1(self::Extension1|get#nonNullable1(self::Extension1|nonNullable1Method(#t79{self::Class1})), new self::Class1::•());
+  let final self::Class1? #t79 = n1 in #t79 == null ?{self::Class1?} null : self::Extension1|set#nullable1(self::Extension1|get#nonNullable1(self::Extension1|nonNullable1Method(#t79{self::Class1})), new self::Class1::•());
   let final self::Class1? #t80 = n1 in #t80 == null ?{self::Class1?} null : self::Extension1|nonNullable1Method(self::Extension1|get#nonNullable1(self::Extension1|nonNullable1Method(#t80{self::Class1})));
-  let final self::Class1? #t81 = n1 in #t81 == null ?{void} null : self::Extension1|set#nullable1(self::Extension1|get#nonNullable1(#t81{self::Class1}), self::Extension1|get#nullable1(new self::Class1::•()));
+  let final self::Class1? #t81 = n1 in #t81 == null ?{self::Class1?} null : self::Extension1|set#nullable1(self::Extension1|get#nonNullable1(#t81{self::Class1}), self::Extension1|get#nullable1(new self::Class1::•()));
   nullable1 = let final self::Class1? #t82 = n1 in #t82 == null ?{self::Class1?} null : let final self::Class1? #t83 = self::Extension1|get#nullable1(new self::Class1::•()) in let final void #t84 = self::Extension1|set#nullable1(self::Extension1|get#nonNullable1(#t82{self::Class1}), #t83) in #t83;
-  let final self::Class1? #t85 = n1 in #t85 == null ?{void} null : self::Extension1|set#nullable1(self::Extension1|get#nonNullable1(#t85{self::Class1}), let final self::Class1 #t86 = new self::Class1::•() in let final void #t87 = self::Extension1|set#nullable1(new self::Class1::•(), #t86) in #t86);
+  let final self::Class1? #t85 = n1 in #t85 == null ?{self::Class1?} null : self::Extension1|set#nullable1(self::Extension1|get#nonNullable1(#t85{self::Class1}), let final self::Class1 #t86 = new self::Class1::•() in let final void #t87 = self::Extension1|set#nullable1(new self::Class1::•(), #t86) in #t86);
   nullable1 = let final self::Class1? #t88 = n1 in #t88 == null ?{self::Class1?} null : let final self::Class1 #t89 = let final self::Class1 #t90 = new self::Class1::•() in let final void #t91 = self::Extension1|set#nullable1(new self::Class1::•(), #t90) in #t90 in let final void #t92 = self::Extension1|set#nullable1(self::Extension1|get#nonNullable1(#t88{self::Class1}), #t89) in #t89;
-  let final self::Class1? #t93 = n1 in #t93 == null ?{void} null : self::Extension1|set#nullable1(self::Extension1|get#nonNullable1(#t93{self::Class1}), self::Extension1|nonNullable1Method(new self::Class1::•()));
+  let final self::Class1? #t93 = n1 in #t93 == null ?{self::Class1?} null : self::Extension1|set#nullable1(self::Extension1|get#nonNullable1(#t93{self::Class1}), self::Extension1|nonNullable1Method(new self::Class1::•()));
   nullable1 = let final self::Class1? #t94 = n1 in #t94 == null ?{self::Class1?} null : let final self::Class1 #t95 = self::Extension1|nonNullable1Method(new self::Class1::•()) in let final void #t96 = self::Extension1|set#nullable1(self::Extension1|get#nonNullable1(#t94{self::Class1}), #t95) in #t95;
   let final self::Class1? #t97 = n1 in #t97 == null ?{self::Class1?} null : self::Extension1|set#nullable1(#t97{self::Class1}, let final self::Class1? #t98 = self::Extension1|get#nullable1(new self::Class1::•()) in let final void #t99 = self::Extension1|set#nullable1(new self::Class1::•(), #t98) in #t98);
   nullable1 = let final self::Class1? #t100 = n1 in #t100 == null ?{self::Class1?} null : let final self::Class1? #t101 = let final self::Class1? #t102 = self::Extension1|get#nullable1(new self::Class1::•()) in let final void #t103 = self::Extension1|set#nullable1(new self::Class1::•(), #t102) in #t102 in let final void #t104 = self::Extension1|set#nullable1(#t100{self::Class1}, #t101) in #t101;
@@ -195,14 +187,14 @@
   nullable1 = let final self::Class1? #t110 = n1 in #t110 == null ?{self::Class1?} null : let final self::Class1 #t111 = let final self::Class1 #t112 = let final self::Class1 #t113 = new self::Class1::•() in let final void #t114 = self::Extension1|set#nullable1(new self::Class1::•(), #t113) in #t113 in let final void #t115 = self::Extension1|set#nullable1(new self::Class1::•(), #t112) in #t112 in let final void #t116 = self::Extension1|set#nullable1(#t110{self::Class1}, #t111) in #t111;
   let final self::Class1? #t117 = n1 in #t117 == null ?{self::Class1?} null : self::Extension1|set#nullable1(#t117{self::Class1}, let final self::Class1 #t118 = self::Extension1|nonNullable1Method(new self::Class1::•()) in let final void #t119 = self::Extension1|set#nullable1(new self::Class1::•(), #t118) in #t118);
   nullable1 = let final self::Class1? #t120 = n1 in #t120 == null ?{self::Class1?} null : let final self::Class1 #t121 = let final self::Class1 #t122 = self::Extension1|nonNullable1Method(new self::Class1::•()) in let final void #t123 = self::Extension1|set#nullable1(new self::Class1::•(), #t122) in #t122 in let final void #t124 = self::Extension1|set#nullable1(#t120{self::Class1}, #t121) in #t121;
-  let final self::Class1? #t125 = n1 in #t125 == null ?{void} null : self::Extension1|set#nullable1(self::Extension1|nonNullable1Method(#t125{self::Class1}), self::Extension1|get#nullable1(new self::Class1::•()));
+  let final self::Class1? #t125 = n1 in #t125 == null ?{self::Class1?} null : self::Extension1|set#nullable1(self::Extension1|nonNullable1Method(#t125{self::Class1}), self::Extension1|get#nullable1(new self::Class1::•()));
   nullable1 = let final self::Class1? #t126 = n1 in #t126 == null ?{self::Class1?} null : let final self::Class1? #t127 = self::Extension1|get#nullable1(new self::Class1::•()) in let final void #t128 = self::Extension1|set#nullable1(self::Extension1|nonNullable1Method(#t126{self::Class1}), #t127) in #t127;
-  let final self::Class1? #t129 = n1 in #t129 == null ?{void} null : self::Extension1|set#nullable1(self::Extension1|nonNullable1Method(#t129{self::Class1}), let final self::Class1 #t130 = new self::Class1::•() in let final void #t131 = self::Extension1|set#nullable1(new self::Class1::•(), #t130) in #t130);
+  let final self::Class1? #t129 = n1 in #t129 == null ?{self::Class1?} null : self::Extension1|set#nullable1(self::Extension1|nonNullable1Method(#t129{self::Class1}), let final self::Class1 #t130 = new self::Class1::•() in let final void #t131 = self::Extension1|set#nullable1(new self::Class1::•(), #t130) in #t130);
   nullable1 = let final self::Class1? #t132 = n1 in #t132 == null ?{self::Class1?} null : let final self::Class1 #t133 = let final self::Class1 #t134 = new self::Class1::•() in let final void #t135 = self::Extension1|set#nullable1(new self::Class1::•(), #t134) in #t134 in let final void #t136 = self::Extension1|set#nullable1(self::Extension1|nonNullable1Method(#t132{self::Class1}), #t133) in #t133;
-  let final self::Class1? #t137 = n1 in #t137 == null ?{void} null : self::Extension1|set#nullable1(self::Extension1|nonNullable1Method(#t137{self::Class1}), self::Extension1|nonNullable1Method(new self::Class1::•()));
+  let final self::Class1? #t137 = n1 in #t137 == null ?{self::Class1?} null : self::Extension1|set#nullable1(self::Extension1|nonNullable1Method(#t137{self::Class1}), self::Extension1|nonNullable1Method(new self::Class1::•()));
   nullable1 = let final self::Class1? #t138 = n1 in #t138 == null ?{self::Class1?} null : let final self::Class1 #t139 = self::Extension1|nonNullable1Method(new self::Class1::•()) in let final void #t140 = self::Extension1|set#nullable1(self::Extension1|nonNullable1Method(#t138{self::Class1}), #t139) in #t139;
   let final self::Class1? #t141 = n1 in #t141 == null ?{self::Class1?} null : self::Extension1|get#nullable1(self::Extension1|nonNullable1Method(self::Extension1|get#nonNullable1(#t141{self::Class1})));
-  let final self::Class1? #t142 = n1 in #t142 == null ?{void} null : self::Extension1|set#nullable1(self::Extension1|nonNullable1Method(self::Extension1|get#nonNullable1(#t142{self::Class1})), new self::Class1::•());
+  let final self::Class1? #t142 = n1 in #t142 == null ?{self::Class1?} null : self::Extension1|set#nullable1(self::Extension1|nonNullable1Method(self::Extension1|get#nonNullable1(#t142{self::Class1})), new self::Class1::•());
   nullable1 = let final self::Class1? #t143 = n1 in #t143 == null ?{self::Class1?} null : let final self::Class1 #t144 = new self::Class1::•() in let final void #t145 = self::Extension1|set#nullable1(self::Extension1|nonNullable1Method(self::Extension1|get#nonNullable1(#t143{self::Class1})), #t144) in #t144;
   let final self::Class1? #t146 = n1 in #t146 == null ?{self::Class1?} null : self::Extension1|nonNullable1Method(self::Extension1|nonNullable1Method(self::Extension1|get#nonNullable1(#t146{self::Class1})));
   let final self::Class1? #t147 = n1 in #t147 == null ?{self::Class1?} null : self::Extension1|set#nullable1(#t147{self::Class1}, self::Extension1|get#nullable1(self::Extension1|nonNullable1Method(new self::Class1::•())));
@@ -212,7 +204,7 @@
   let final self::Class1? #t159 = n1 in #t159 == null ?{self::Class1?} null : self::Extension1|set#nullable1(#t159{self::Class1}, self::Extension1|nonNullable1Method(self::Extension1|nonNullable1Method(new self::Class1::•())));
   nullable1 = let final self::Class1? #t160 = n1 in #t160 == null ?{self::Class1?} null : let final self::Class1 #t161 = self::Extension1|nonNullable1Method(self::Extension1|nonNullable1Method(new self::Class1::•())) in let final void #t162 = self::Extension1|set#nullable1(#t160{self::Class1}, #t161) in #t161;
   let final self::Class1? #t163 = n1 in #t163 == null ?{self::Class1?} null : self::Extension1|get#nullable1(self::Extension1|nonNullable1Method(self::Extension1|nonNullable1Method(#t163{self::Class1})));
-  let final self::Class1? #t164 = n1 in #t164 == null ?{void} null : self::Extension1|set#nullable1(self::Extension1|nonNullable1Method(self::Extension1|nonNullable1Method(#t164{self::Class1})), new self::Class1::•());
+  let final self::Class1? #t164 = n1 in #t164 == null ?{self::Class1?} null : self::Extension1|set#nullable1(self::Extension1|nonNullable1Method(self::Extension1|nonNullable1Method(#t164{self::Class1})), new self::Class1::•());
   let final self::Class1? #t165 = n1 in #t165 == null ?{self::Class1?} null : self::Extension1|nonNullable1Method(self::Extension1|nonNullable1Method(self::Extension1|nonNullable1Method(#t165{self::Class1})));
   let final self::Class1? #t166 = n1 in #t166 == null ?{self::Class1?} null : let final self::Class1? #t167 = self::Extension1|nonNullable1Method(#t166{self::Class1}) in #t167 == null ?{self::Class1?} null : self::Extension1|nonNullable1Method(#t167{self::Class1});
 }
diff --git a/pkg/front_end/testcases/nnbd/null_shorting_extension.dart.strong.expect b/pkg/front_end/testcases/nnbd/null_shorting_extension.dart.strong.expect
index 9bf4dcb..954b4c0 100644
--- a/pkg/front_end/testcases/nnbd/null_shorting_extension.dart.strong.expect
+++ b/pkg/front_end/testcases/nnbd/null_shorting_extension.dart.strong.expect
@@ -2,18 +2,6 @@
 //
 // Problems in library:
 //
-// pkg/front_end/testcases/nnbd/null_shorting_extension.dart:82:7: Error: This expression has type 'void' and can't be used.
-//   n1?.nullable1 = new Class1();
-//       ^
-//
-// pkg/front_end/testcases/nnbd/null_shorting_extension.dart:90:18: Error: This expression has type 'void' and can't be used.
-//   n1?.nullable1?.nullable1 = new Class1();
-//                  ^
-//
-// pkg/front_end/testcases/nnbd/null_shorting_extension.dart:91:31: Error: This expression has type 'void' and can't be used.
-//   n1?.nonNullable1.nullable1?.nullable1 = new Class1();
-//                               ^
-//
 // pkg/front_end/testcases/nnbd/null_shorting_extension.dart:93:47: Error: Property 'nullable1' cannot be accessed on 'Class1?' because it is potentially null.
 //  - 'Class1' is from 'pkg/front_end/testcases/nnbd/null_shorting_extension.dart'.
 // Try accessing using ?. instead.
@@ -26,54 +14,6 @@
 //   throws(() => (n1?.nonNullable1Method()).nullable1);
 //                                           ^^^^^^^^^
 //
-// pkg/front_end/testcases/nnbd/null_shorting_extension.dart:99:7: Error: This expression has type 'void' and can't be used.
-//   n1?.nullable1 = new Class1().nullable1;
-//       ^
-//
-// pkg/front_end/testcases/nnbd/null_shorting_extension.dart:101:7: Error: This expression has type 'void' and can't be used.
-//   n1?.nullable1 = new Class1().nullable1 = new Class1();
-//       ^
-//
-// pkg/front_end/testcases/nnbd/null_shorting_extension.dart:103:7: Error: This expression has type 'void' and can't be used.
-//   n1?.nullable1 = new Class1().nonNullable1Method();
-//       ^
-//
-// pkg/front_end/testcases/nnbd/null_shorting_extension.dart:113:7: Error: This expression has type 'void' and can't be used.
-//   n1?.nullable1 = new Class1().nonNullable1.nullable1;
-//       ^
-//
-// pkg/front_end/testcases/nnbd/null_shorting_extension.dart:115:7: Error: This expression has type 'void' and can't be used.
-//   n1?.nullable1 = new Class1().nonNullable1.nullable1 = new Class1();
-//       ^
-//
-// pkg/front_end/testcases/nnbd/null_shorting_extension.dart:118:7: Error: This expression has type 'void' and can't be used.
-//   n1?.nullable1 = new Class1().nonNullable1.nonNullable1Method();
-//       ^
-//
-// pkg/front_end/testcases/nnbd/null_shorting_extension.dart:131:7: Error: This expression has type 'void' and can't be used.
-//   n1?.nullable1 = new Class1().nullable1 = new Class1().nullable1;
-//       ^
-//
-// pkg/front_end/testcases/nnbd/null_shorting_extension.dart:133:7: Error: This expression has type 'void' and can't be used.
-//   n1?.nullable1 =
-//       ^
-//
-// pkg/front_end/testcases/nnbd/null_shorting_extension.dart:137:7: Error: This expression has type 'void' and can't be used.
-//   n1?.nullable1 = new Class1().nullable1 = new Class1().nonNullable1Method();
-//       ^
-//
-// pkg/front_end/testcases/nnbd/null_shorting_extension.dart:153:7: Error: This expression has type 'void' and can't be used.
-//   n1?.nullable1 = new Class1().nonNullable1Method().nullable1;
-//       ^
-//
-// pkg/front_end/testcases/nnbd/null_shorting_extension.dart:155:7: Error: This expression has type 'void' and can't be used.
-//   n1?.nullable1 = new Class1().nonNullable1Method().nullable1 = new Class1();
-//       ^
-//
-// pkg/front_end/testcases/nnbd/null_shorting_extension.dart:158:7: Error: This expression has type 'void' and can't be used.
-//   n1?.nullable1 = new Class1().nonNullable1Method().nonNullable1Method();
-//       ^
-//
 // pkg/front_end/testcases/nnbd/null_shorting_extension.dart:226:33: Error: Operator '+' cannot be called on 'Class1?' because it is potentially null.
 //  - 'Class1' is from 'pkg/front_end/testcases/nnbd/null_shorting_extension.dart'.
 //   throws(() => n1?.nonNullable1 + 0);
@@ -189,15 +129,15 @@
 static method propertyAccess(self::Class1? n1) → void {
   self::Class1? nullable1 = n1;
   let final self::Class1? #t1 = n1 in #t1 == null ?{self::Class1?} null : self::Extension1|get#nullable1(#t1{self::Class1});
-  let final self::Class1? #t2 = n1 in #t2 == null ?{void} null : self::Extension1|set#nullable1(#t2{self::Class1}, new self::Class1::•());
+  let final self::Class1? #t2 = n1 in #t2 == null ?{self::Class1?} null : self::Extension1|set#nullable1(#t2{self::Class1}, new self::Class1::•());
   nullable1 = let final self::Class1? #t3 = n1 in #t3 == null ?{self::Class1?} null : let final self::Class1 #t4 = new self::Class1::•() in let final void #t5 = self::Extension1|set#nullable1(#t3{self::Class1}, #t4) in #t4;
   let final self::Class1? #t6 = n1 in #t6 == null ?{self::Class1?} null : self::Extension1|nonNullable1Method(#t6{self::Class1});
   let final self::Class1? #t7 = n1 in #t7 == null ?{self::Class1?} null : self::Extension1|get#nullable1(self::Extension1|get#nonNullable1(#t7{self::Class1}));
   let final self::Class1? #t8 = n1 in #t8 == null ?{self::Class1?} null : let final self::Class1? #t9 = self::Extension1|get#nullable1(#t8{self::Class1}) in #t9 == null ?{self::Class1?} null : self::Extension1|get#nullable1(#t9{self::Class1});
   let final self::Class1? #t10 = n1 in #t10 == null ?{self::Class1?} null : let final self::Class1? #t11 = self::Extension1|get#nullable1(self::Extension1|get#nonNullable1(#t10{self::Class1})) in #t11 == null ?{self::Class1?} null : self::Extension1|get#nullable1(#t11{self::Class1});
-  let final self::Class1? #t12 = n1 in #t12 == null ?{void} null : self::Extension1|set#nullable1(self::Extension1|get#nonNullable1(#t12{self::Class1}), new self::Class1::•());
-  let final self::Class1? #t13 = n1 in #t13 == null ?{void} null : let final self::Class1? #t14 = self::Extension1|get#nullable1(#t13{self::Class1}) in #t14 == null ?{void} null : self::Extension1|set#nullable1(#t14{self::Class1}, new self::Class1::•());
-  let final self::Class1? #t15 = n1 in #t15 == null ?{void} null : let final self::Class1? #t16 = self::Extension1|get#nullable1(self::Extension1|get#nonNullable1(#t15{self::Class1})) in #t16 == null ?{void} null : self::Extension1|set#nullable1(#t16{self::Class1}, new self::Class1::•());
+  let final self::Class1? #t12 = n1 in #t12 == null ?{self::Class1?} null : self::Extension1|set#nullable1(self::Extension1|get#nonNullable1(#t12{self::Class1}), new self::Class1::•());
+  let final self::Class1? #t13 = n1 in #t13 == null ?{self::Class1?} null : let final self::Class1? #t14 = self::Extension1|get#nullable1(#t13{self::Class1}) in #t14 == null ?{self::Class1?} null : self::Extension1|set#nullable1(#t14{self::Class1}, new self::Class1::•());
+  let final self::Class1? #t15 = n1 in #t15 == null ?{self::Class1?} null : let final self::Class1? #t16 = self::Extension1|get#nullable1(self::Extension1|get#nonNullable1(#t15{self::Class1})) in #t16 == null ?{self::Class1?} null : self::Extension1|set#nullable1(#t16{self::Class1}, new self::Class1::•());
   let final self::Class1? #t17 = let final self::Class1? #t18 = n1 in #t18 == null ?{self::Class1?} null : self::Extension1|get#nullable1(#t18{self::Class1}) in #t17 == null ?{self::Class1?} null : self::Extension1|get#nullable1(#t17{self::Class1});
   self::throws(() → void => invalid-expression "pkg/front_end/testcases/nnbd/null_shorting_extension.dart:93:47: Error: Property 'nullable1' cannot be accessed on 'Class1?' because it is potentially null.
  - 'Class1' is from 'pkg/front_end/testcases/nnbd/null_shorting_extension.dart'.
@@ -213,58 +153,58 @@
   nullable1 = let final self::Class1? #t26 = n1 in #t26 == null ?{self::Class1?} null : let final self::Class1? #t27 = self::Extension1|get#nullable1(#t26{self::Class1}) in #t27 == null ?{self::Class1?} null : let final self::Class1 #t28 = new self::Class1::•() in let final void #t29 = self::Extension1|set#nullable1(#t27{self::Class1}, #t28) in #t28;
   nullable1 = let final self::Class1? #t30 = n1 in #t30 == null ?{self::Class1?} null : let final self::Class1? #t31 = self::Extension1|get#nullable1(self::Extension1|get#nonNullable1(#t30{self::Class1})) in #t31 == null ?{self::Class1?} null : let final self::Class1 #t32 = new self::Class1::•() in let final void #t33 = self::Extension1|set#nullable1(#t31{self::Class1}, #t32) in #t32;
   let final self::Class1? #t34 = n1 in #t34 == null ?{self::Class1?} null : let final self::Class1? #t35 = self::Extension1|get#nullable1(#t34{self::Class1}) in #t35 == null ?{self::Class1?} null : self::Extension1|nonNullable1Method(#t35{self::Class1});
-  let final self::Class1? #t36 = n1 in #t36 == null ?{void} null : self::Extension1|set#nullable1(#t36{self::Class1}, self::Extension1|get#nullable1(new self::Class1::•()));
+  let final self::Class1? #t36 = n1 in #t36 == null ?{self::Class1?} null : self::Extension1|set#nullable1(#t36{self::Class1}, self::Extension1|get#nullable1(new self::Class1::•()));
   nullable1 = let final self::Class1? #t37 = n1 in #t37 == null ?{self::Class1?} null : let final self::Class1? #t38 = self::Extension1|get#nullable1(new self::Class1::•()) in let final void #t39 = self::Extension1|set#nullable1(#t37{self::Class1}, #t38) in #t38;
-  let final self::Class1? #t40 = n1 in #t40 == null ?{void} null : self::Extension1|set#nullable1(#t40{self::Class1}, let final self::Class1 #t41 = new self::Class1::•() in let final void #t42 = self::Extension1|set#nullable1(new self::Class1::•(), #t41) in #t41);
+  let final self::Class1? #t40 = n1 in #t40 == null ?{self::Class1?} null : self::Extension1|set#nullable1(#t40{self::Class1}, let final self::Class1 #t41 = new self::Class1::•() in let final void #t42 = self::Extension1|set#nullable1(new self::Class1::•(), #t41) in #t41);
   nullable1 = let final self::Class1? #t43 = n1 in #t43 == null ?{self::Class1?} null : let final self::Class1 #t44 = let final self::Class1 #t45 = new self::Class1::•() in let final void #t46 = self::Extension1|set#nullable1(new self::Class1::•(), #t45) in #t45 in let final void #t47 = self::Extension1|set#nullable1(#t43{self::Class1}, #t44) in #t44;
-  let final self::Class1? #t48 = n1 in #t48 == null ?{void} null : self::Extension1|set#nullable1(#t48{self::Class1}, self::Extension1|nonNullable1Method(new self::Class1::•()));
+  let final self::Class1? #t48 = n1 in #t48 == null ?{self::Class1?} null : self::Extension1|set#nullable1(#t48{self::Class1}, self::Extension1|nonNullable1Method(new self::Class1::•()));
   nullable1 = let final self::Class1? #t49 = n1 in #t49 == null ?{self::Class1?} null : let final self::Class1 #t50 = self::Extension1|nonNullable1Method(new self::Class1::•()) in let final void #t51 = self::Extension1|set#nullable1(#t49{self::Class1}, #t50) in #t50;
   let final self::Class1? #t52 = n1 in #t52 == null ?{self::Class1?} null : self::Extension1|get#nullable1(self::Extension1|nonNullable1Method(#t52{self::Class1}));
-  let final self::Class1? #t53 = n1 in #t53 == null ?{void} null : self::Extension1|set#nullable1(self::Extension1|nonNullable1Method(#t53{self::Class1}), new self::Class1::•());
+  let final self::Class1? #t53 = n1 in #t53 == null ?{self::Class1?} null : self::Extension1|set#nullable1(self::Extension1|nonNullable1Method(#t53{self::Class1}), new self::Class1::•());
   let final self::Class1? #t54 = n1 in #t54 == null ?{self::Class1?} null : self::Extension1|nonNullable1Method(self::Extension1|nonNullable1Method(#t54{self::Class1}));
   let final self::Class1? #t55 = n1 in #t55 == null ?{self::Class1?} null : self::Extension1|get#nullable1(self::Extension1|get#nonNullable1(self::Extension1|get#nonNullable1(#t55{self::Class1})));
-  let final self::Class1? #t56 = n1 in #t56 == null ?{void} null : self::Extension1|set#nullable1(self::Extension1|get#nonNullable1(self::Extension1|get#nonNullable1(#t56{self::Class1})), new self::Class1::•());
+  let final self::Class1? #t56 = n1 in #t56 == null ?{self::Class1?} null : self::Extension1|set#nullable1(self::Extension1|get#nonNullable1(self::Extension1|get#nonNullable1(#t56{self::Class1})), new self::Class1::•());
   nullable1 = let final self::Class1? #t57 = n1 in #t57 == null ?{self::Class1?} null : let final self::Class1 #t58 = new self::Class1::•() in let final void #t59 = self::Extension1|set#nullable1(self::Extension1|get#nonNullable1(self::Extension1|get#nonNullable1(#t57{self::Class1})), #t58) in #t58;
   let final self::Class1? #t60 = n1 in #t60 == null ?{self::Class1?} null : let final self::Class1? #t61 = self::Extension1|get#nullable1(self::Extension1|get#nonNullable1(#t60{self::Class1})) in #t61 == null ?{self::Class1?} null : self::Extension1|nonNullable1Method(#t61{self::Class1});
-  let final self::Class1? #t62 = n1 in #t62 == null ?{void} null : self::Extension1|set#nullable1(#t62{self::Class1}, self::Extension1|get#nullable1(self::Extension1|get#nonNullable1(new self::Class1::•())));
+  let final self::Class1? #t62 = n1 in #t62 == null ?{self::Class1?} null : self::Extension1|set#nullable1(#t62{self::Class1}, self::Extension1|get#nullable1(self::Extension1|get#nonNullable1(new self::Class1::•())));
   nullable1 = let final self::Class1? #t63 = n1 in #t63 == null ?{self::Class1?} null : let final self::Class1? #t64 = self::Extension1|get#nullable1(self::Extension1|get#nonNullable1(new self::Class1::•())) in let final void #t65 = self::Extension1|set#nullable1(#t63{self::Class1}, #t64) in #t64;
-  let final self::Class1? #t66 = n1 in #t66 == null ?{void} null : self::Extension1|set#nullable1(#t66{self::Class1}, let final self::Class1 #t67 = new self::Class1::•() in let final void #t68 = self::Extension1|set#nullable1(self::Extension1|get#nonNullable1(new self::Class1::•()), #t67) in #t67);
+  let final self::Class1? #t66 = n1 in #t66 == null ?{self::Class1?} null : self::Extension1|set#nullable1(#t66{self::Class1}, let final self::Class1 #t67 = new self::Class1::•() in let final void #t68 = self::Extension1|set#nullable1(self::Extension1|get#nonNullable1(new self::Class1::•()), #t67) in #t67);
   nullable1 = let final self::Class1? #t69 = n1 in #t69 == null ?{self::Class1?} null : let final self::Class1 #t70 = let final self::Class1 #t71 = new self::Class1::•() in let final void #t72 = self::Extension1|set#nullable1(self::Extension1|get#nonNullable1(new self::Class1::•()), #t71) in #t71 in let final void #t73 = self::Extension1|set#nullable1(#t69{self::Class1}, #t70) in #t70;
-  let final self::Class1? #t74 = n1 in #t74 == null ?{void} null : self::Extension1|set#nullable1(#t74{self::Class1}, self::Extension1|nonNullable1Method(self::Extension1|get#nonNullable1(new self::Class1::•())));
+  let final self::Class1? #t74 = n1 in #t74 == null ?{self::Class1?} null : self::Extension1|set#nullable1(#t74{self::Class1}, self::Extension1|nonNullable1Method(self::Extension1|get#nonNullable1(new self::Class1::•())));
   nullable1 = let final self::Class1? #t75 = n1 in #t75 == null ?{self::Class1?} null : let final self::Class1 #t76 = self::Extension1|nonNullable1Method(self::Extension1|get#nonNullable1(new self::Class1::•())) in let final void #t77 = self::Extension1|set#nullable1(#t75{self::Class1}, #t76) in #t76;
   let final self::Class1? #t78 = n1 in #t78 == null ?{self::Class1?} null : self::Extension1|get#nullable1(self::Extension1|get#nonNullable1(self::Extension1|nonNullable1Method(#t78{self::Class1})));
-  let final self::Class1? #t79 = n1 in #t79 == null ?{void} null : self::Extension1|set#nullable1(self::Extension1|get#nonNullable1(self::Extension1|nonNullable1Method(#t79{self::Class1})), new self::Class1::•());
+  let final self::Class1? #t79 = n1 in #t79 == null ?{self::Class1?} null : self::Extension1|set#nullable1(self::Extension1|get#nonNullable1(self::Extension1|nonNullable1Method(#t79{self::Class1})), new self::Class1::•());
   let final self::Class1? #t80 = n1 in #t80 == null ?{self::Class1?} null : self::Extension1|nonNullable1Method(self::Extension1|get#nonNullable1(self::Extension1|nonNullable1Method(#t80{self::Class1})));
-  let final self::Class1? #t81 = n1 in #t81 == null ?{void} null : self::Extension1|set#nullable1(self::Extension1|get#nonNullable1(#t81{self::Class1}), self::Extension1|get#nullable1(new self::Class1::•()));
+  let final self::Class1? #t81 = n1 in #t81 == null ?{self::Class1?} null : self::Extension1|set#nullable1(self::Extension1|get#nonNullable1(#t81{self::Class1}), self::Extension1|get#nullable1(new self::Class1::•()));
   nullable1 = let final self::Class1? #t82 = n1 in #t82 == null ?{self::Class1?} null : let final self::Class1? #t83 = self::Extension1|get#nullable1(new self::Class1::•()) in let final void #t84 = self::Extension1|set#nullable1(self::Extension1|get#nonNullable1(#t82{self::Class1}), #t83) in #t83;
-  let final self::Class1? #t85 = n1 in #t85 == null ?{void} null : self::Extension1|set#nullable1(self::Extension1|get#nonNullable1(#t85{self::Class1}), let final self::Class1 #t86 = new self::Class1::•() in let final void #t87 = self::Extension1|set#nullable1(new self::Class1::•(), #t86) in #t86);
+  let final self::Class1? #t85 = n1 in #t85 == null ?{self::Class1?} null : self::Extension1|set#nullable1(self::Extension1|get#nonNullable1(#t85{self::Class1}), let final self::Class1 #t86 = new self::Class1::•() in let final void #t87 = self::Extension1|set#nullable1(new self::Class1::•(), #t86) in #t86);
   nullable1 = let final self::Class1? #t88 = n1 in #t88 == null ?{self::Class1?} null : let final self::Class1 #t89 = let final self::Class1 #t90 = new self::Class1::•() in let final void #t91 = self::Extension1|set#nullable1(new self::Class1::•(), #t90) in #t90 in let final void #t92 = self::Extension1|set#nullable1(self::Extension1|get#nonNullable1(#t88{self::Class1}), #t89) in #t89;
-  let final self::Class1? #t93 = n1 in #t93 == null ?{void} null : self::Extension1|set#nullable1(self::Extension1|get#nonNullable1(#t93{self::Class1}), self::Extension1|nonNullable1Method(new self::Class1::•()));
+  let final self::Class1? #t93 = n1 in #t93 == null ?{self::Class1?} null : self::Extension1|set#nullable1(self::Extension1|get#nonNullable1(#t93{self::Class1}), self::Extension1|nonNullable1Method(new self::Class1::•()));
   nullable1 = let final self::Class1? #t94 = n1 in #t94 == null ?{self::Class1?} null : let final self::Class1 #t95 = self::Extension1|nonNullable1Method(new self::Class1::•()) in let final void #t96 = self::Extension1|set#nullable1(self::Extension1|get#nonNullable1(#t94{self::Class1}), #t95) in #t95;
-  let final self::Class1? #t97 = n1 in #t97 == null ?{void} null : self::Extension1|set#nullable1(#t97{self::Class1}, let final self::Class1? #t98 = self::Extension1|get#nullable1(new self::Class1::•()) in let final void #t99 = self::Extension1|set#nullable1(new self::Class1::•(), #t98) in #t98);
+  let final self::Class1? #t97 = n1 in #t97 == null ?{self::Class1?} null : self::Extension1|set#nullable1(#t97{self::Class1}, let final self::Class1? #t98 = self::Extension1|get#nullable1(new self::Class1::•()) in let final void #t99 = self::Extension1|set#nullable1(new self::Class1::•(), #t98) in #t98);
   nullable1 = let final self::Class1? #t100 = n1 in #t100 == null ?{self::Class1?} null : let final self::Class1? #t101 = let final self::Class1? #t102 = self::Extension1|get#nullable1(new self::Class1::•()) in let final void #t103 = self::Extension1|set#nullable1(new self::Class1::•(), #t102) in #t102 in let final void #t104 = self::Extension1|set#nullable1(#t100{self::Class1}, #t101) in #t101;
-  let final self::Class1? #t105 = n1 in #t105 == null ?{void} null : self::Extension1|set#nullable1(#t105{self::Class1}, let final self::Class1 #t106 = let final self::Class1 #t107 = new self::Class1::•() in let final void #t108 = self::Extension1|set#nullable1(new self::Class1::•(), #t107) in #t107 in let final void #t109 = self::Extension1|set#nullable1(new self::Class1::•(), #t106) in #t106);
+  let final self::Class1? #t105 = n1 in #t105 == null ?{self::Class1?} null : self::Extension1|set#nullable1(#t105{self::Class1}, let final self::Class1 #t106 = let final self::Class1 #t107 = new self::Class1::•() in let final void #t108 = self::Extension1|set#nullable1(new self::Class1::•(), #t107) in #t107 in let final void #t109 = self::Extension1|set#nullable1(new self::Class1::•(), #t106) in #t106);
   nullable1 = let final self::Class1? #t110 = n1 in #t110 == null ?{self::Class1?} null : let final self::Class1 #t111 = let final self::Class1 #t112 = let final self::Class1 #t113 = new self::Class1::•() in let final void #t114 = self::Extension1|set#nullable1(new self::Class1::•(), #t113) in #t113 in let final void #t115 = self::Extension1|set#nullable1(new self::Class1::•(), #t112) in #t112 in let final void #t116 = self::Extension1|set#nullable1(#t110{self::Class1}, #t111) in #t111;
-  let final self::Class1? #t117 = n1 in #t117 == null ?{void} null : self::Extension1|set#nullable1(#t117{self::Class1}, let final self::Class1 #t118 = self::Extension1|nonNullable1Method(new self::Class1::•()) in let final void #t119 = self::Extension1|set#nullable1(new self::Class1::•(), #t118) in #t118);
+  let final self::Class1? #t117 = n1 in #t117 == null ?{self::Class1?} null : self::Extension1|set#nullable1(#t117{self::Class1}, let final self::Class1 #t118 = self::Extension1|nonNullable1Method(new self::Class1::•()) in let final void #t119 = self::Extension1|set#nullable1(new self::Class1::•(), #t118) in #t118);
   nullable1 = let final self::Class1? #t120 = n1 in #t120 == null ?{self::Class1?} null : let final self::Class1 #t121 = let final self::Class1 #t122 = self::Extension1|nonNullable1Method(new self::Class1::•()) in let final void #t123 = self::Extension1|set#nullable1(new self::Class1::•(), #t122) in #t122 in let final void #t124 = self::Extension1|set#nullable1(#t120{self::Class1}, #t121) in #t121;
-  let final self::Class1? #t125 = n1 in #t125 == null ?{void} null : self::Extension1|set#nullable1(self::Extension1|nonNullable1Method(#t125{self::Class1}), self::Extension1|get#nullable1(new self::Class1::•()));
+  let final self::Class1? #t125 = n1 in #t125 == null ?{self::Class1?} null : self::Extension1|set#nullable1(self::Extension1|nonNullable1Method(#t125{self::Class1}), self::Extension1|get#nullable1(new self::Class1::•()));
   nullable1 = let final self::Class1? #t126 = n1 in #t126 == null ?{self::Class1?} null : let final self::Class1? #t127 = self::Extension1|get#nullable1(new self::Class1::•()) in let final void #t128 = self::Extension1|set#nullable1(self::Extension1|nonNullable1Method(#t126{self::Class1}), #t127) in #t127;
-  let final self::Class1? #t129 = n1 in #t129 == null ?{void} null : self::Extension1|set#nullable1(self::Extension1|nonNullable1Method(#t129{self::Class1}), let final self::Class1 #t130 = new self::Class1::•() in let final void #t131 = self::Extension1|set#nullable1(new self::Class1::•(), #t130) in #t130);
+  let final self::Class1? #t129 = n1 in #t129 == null ?{self::Class1?} null : self::Extension1|set#nullable1(self::Extension1|nonNullable1Method(#t129{self::Class1}), let final self::Class1 #t130 = new self::Class1::•() in let final void #t131 = self::Extension1|set#nullable1(new self::Class1::•(), #t130) in #t130);
   nullable1 = let final self::Class1? #t132 = n1 in #t132 == null ?{self::Class1?} null : let final self::Class1 #t133 = let final self::Class1 #t134 = new self::Class1::•() in let final void #t135 = self::Extension1|set#nullable1(new self::Class1::•(), #t134) in #t134 in let final void #t136 = self::Extension1|set#nullable1(self::Extension1|nonNullable1Method(#t132{self::Class1}), #t133) in #t133;
-  let final self::Class1? #t137 = n1 in #t137 == null ?{void} null : self::Extension1|set#nullable1(self::Extension1|nonNullable1Method(#t137{self::Class1}), self::Extension1|nonNullable1Method(new self::Class1::•()));
+  let final self::Class1? #t137 = n1 in #t137 == null ?{self::Class1?} null : self::Extension1|set#nullable1(self::Extension1|nonNullable1Method(#t137{self::Class1}), self::Extension1|nonNullable1Method(new self::Class1::•()));
   nullable1 = let final self::Class1? #t138 = n1 in #t138 == null ?{self::Class1?} null : let final self::Class1 #t139 = self::Extension1|nonNullable1Method(new self::Class1::•()) in let final void #t140 = self::Extension1|set#nullable1(self::Extension1|nonNullable1Method(#t138{self::Class1}), #t139) in #t139;
   let final self::Class1? #t141 = n1 in #t141 == null ?{self::Class1?} null : self::Extension1|get#nullable1(self::Extension1|nonNullable1Method(self::Extension1|get#nonNullable1(#t141{self::Class1})));
-  let final self::Class1? #t142 = n1 in #t142 == null ?{void} null : self::Extension1|set#nullable1(self::Extension1|nonNullable1Method(self::Extension1|get#nonNullable1(#t142{self::Class1})), new self::Class1::•());
+  let final self::Class1? #t142 = n1 in #t142 == null ?{self::Class1?} null : self::Extension1|set#nullable1(self::Extension1|nonNullable1Method(self::Extension1|get#nonNullable1(#t142{self::Class1})), new self::Class1::•());
   nullable1 = let final self::Class1? #t143 = n1 in #t143 == null ?{self::Class1?} null : let final self::Class1 #t144 = new self::Class1::•() in let final void #t145 = self::Extension1|set#nullable1(self::Extension1|nonNullable1Method(self::Extension1|get#nonNullable1(#t143{self::Class1})), #t144) in #t144;
   let final self::Class1? #t146 = n1 in #t146 == null ?{self::Class1?} null : self::Extension1|nonNullable1Method(self::Extension1|nonNullable1Method(self::Extension1|get#nonNullable1(#t146{self::Class1})));
-  let final self::Class1? #t147 = n1 in #t147 == null ?{void} null : self::Extension1|set#nullable1(#t147{self::Class1}, self::Extension1|get#nullable1(self::Extension1|nonNullable1Method(new self::Class1::•())));
+  let final self::Class1? #t147 = n1 in #t147 == null ?{self::Class1?} null : self::Extension1|set#nullable1(#t147{self::Class1}, self::Extension1|get#nullable1(self::Extension1|nonNullable1Method(new self::Class1::•())));
   nullable1 = let final self::Class1? #t148 = n1 in #t148 == null ?{self::Class1?} null : let final self::Class1? #t149 = self::Extension1|get#nullable1(self::Extension1|nonNullable1Method(new self::Class1::•())) in let final void #t150 = self::Extension1|set#nullable1(#t148{self::Class1}, #t149) in #t149;
-  let final self::Class1? #t151 = n1 in #t151 == null ?{void} null : self::Extension1|set#nullable1(#t151{self::Class1}, let final self::Class1 #t152 = new self::Class1::•() in let final void #t153 = self::Extension1|set#nullable1(self::Extension1|nonNullable1Method(new self::Class1::•()), #t152) in #t152);
+  let final self::Class1? #t151 = n1 in #t151 == null ?{self::Class1?} null : self::Extension1|set#nullable1(#t151{self::Class1}, let final self::Class1 #t152 = new self::Class1::•() in let final void #t153 = self::Extension1|set#nullable1(self::Extension1|nonNullable1Method(new self::Class1::•()), #t152) in #t152);
   nullable1 = let final self::Class1? #t154 = n1 in #t154 == null ?{self::Class1?} null : let final self::Class1 #t155 = let final self::Class1 #t156 = new self::Class1::•() in let final void #t157 = self::Extension1|set#nullable1(self::Extension1|nonNullable1Method(new self::Class1::•()), #t156) in #t156 in let final void #t158 = self::Extension1|set#nullable1(#t154{self::Class1}, #t155) in #t155;
-  let final self::Class1? #t159 = n1 in #t159 == null ?{void} null : self::Extension1|set#nullable1(#t159{self::Class1}, self::Extension1|nonNullable1Method(self::Extension1|nonNullable1Method(new self::Class1::•())));
+  let final self::Class1? #t159 = n1 in #t159 == null ?{self::Class1?} null : self::Extension1|set#nullable1(#t159{self::Class1}, self::Extension1|nonNullable1Method(self::Extension1|nonNullable1Method(new self::Class1::•())));
   nullable1 = let final self::Class1? #t160 = n1 in #t160 == null ?{self::Class1?} null : let final self::Class1 #t161 = self::Extension1|nonNullable1Method(self::Extension1|nonNullable1Method(new self::Class1::•())) in let final void #t162 = self::Extension1|set#nullable1(#t160{self::Class1}, #t161) in #t161;
   let final self::Class1? #t163 = n1 in #t163 == null ?{self::Class1?} null : self::Extension1|get#nullable1(self::Extension1|nonNullable1Method(self::Extension1|nonNullable1Method(#t163{self::Class1})));
-  let final self::Class1? #t164 = n1 in #t164 == null ?{void} null : self::Extension1|set#nullable1(self::Extension1|nonNullable1Method(self::Extension1|nonNullable1Method(#t164{self::Class1})), new self::Class1::•());
+  let final self::Class1? #t164 = n1 in #t164 == null ?{self::Class1?} null : self::Extension1|set#nullable1(self::Extension1|nonNullable1Method(self::Extension1|nonNullable1Method(#t164{self::Class1})), new self::Class1::•());
   let final self::Class1? #t165 = n1 in #t165 == null ?{self::Class1?} null : self::Extension1|nonNullable1Method(self::Extension1|nonNullable1Method(self::Extension1|nonNullable1Method(#t165{self::Class1})));
   let final self::Class1? #t166 = n1 in #t166 == null ?{self::Class1?} null : let final self::Class1? #t167 = self::Extension1|nonNullable1Method(#t166{self::Class1}) in #t167 == null ?{self::Class1?} null : self::Extension1|nonNullable1Method(#t167{self::Class1});
 }
diff --git a/pkg/front_end/testcases/nnbd/null_shorting_extension.dart.strong.transformed.expect b/pkg/front_end/testcases/nnbd/null_shorting_extension.dart.strong.transformed.expect
index 9bf4dcb..954b4c0 100644
--- a/pkg/front_end/testcases/nnbd/null_shorting_extension.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/null_shorting_extension.dart.strong.transformed.expect
@@ -2,18 +2,6 @@
 //
 // Problems in library:
 //
-// pkg/front_end/testcases/nnbd/null_shorting_extension.dart:82:7: Error: This expression has type 'void' and can't be used.
-//   n1?.nullable1 = new Class1();
-//       ^
-//
-// pkg/front_end/testcases/nnbd/null_shorting_extension.dart:90:18: Error: This expression has type 'void' and can't be used.
-//   n1?.nullable1?.nullable1 = new Class1();
-//                  ^
-//
-// pkg/front_end/testcases/nnbd/null_shorting_extension.dart:91:31: Error: This expression has type 'void' and can't be used.
-//   n1?.nonNullable1.nullable1?.nullable1 = new Class1();
-//                               ^
-//
 // pkg/front_end/testcases/nnbd/null_shorting_extension.dart:93:47: Error: Property 'nullable1' cannot be accessed on 'Class1?' because it is potentially null.
 //  - 'Class1' is from 'pkg/front_end/testcases/nnbd/null_shorting_extension.dart'.
 // Try accessing using ?. instead.
@@ -26,54 +14,6 @@
 //   throws(() => (n1?.nonNullable1Method()).nullable1);
 //                                           ^^^^^^^^^
 //
-// pkg/front_end/testcases/nnbd/null_shorting_extension.dart:99:7: Error: This expression has type 'void' and can't be used.
-//   n1?.nullable1 = new Class1().nullable1;
-//       ^
-//
-// pkg/front_end/testcases/nnbd/null_shorting_extension.dart:101:7: Error: This expression has type 'void' and can't be used.
-//   n1?.nullable1 = new Class1().nullable1 = new Class1();
-//       ^
-//
-// pkg/front_end/testcases/nnbd/null_shorting_extension.dart:103:7: Error: This expression has type 'void' and can't be used.
-//   n1?.nullable1 = new Class1().nonNullable1Method();
-//       ^
-//
-// pkg/front_end/testcases/nnbd/null_shorting_extension.dart:113:7: Error: This expression has type 'void' and can't be used.
-//   n1?.nullable1 = new Class1().nonNullable1.nullable1;
-//       ^
-//
-// pkg/front_end/testcases/nnbd/null_shorting_extension.dart:115:7: Error: This expression has type 'void' and can't be used.
-//   n1?.nullable1 = new Class1().nonNullable1.nullable1 = new Class1();
-//       ^
-//
-// pkg/front_end/testcases/nnbd/null_shorting_extension.dart:118:7: Error: This expression has type 'void' and can't be used.
-//   n1?.nullable1 = new Class1().nonNullable1.nonNullable1Method();
-//       ^
-//
-// pkg/front_end/testcases/nnbd/null_shorting_extension.dart:131:7: Error: This expression has type 'void' and can't be used.
-//   n1?.nullable1 = new Class1().nullable1 = new Class1().nullable1;
-//       ^
-//
-// pkg/front_end/testcases/nnbd/null_shorting_extension.dart:133:7: Error: This expression has type 'void' and can't be used.
-//   n1?.nullable1 =
-//       ^
-//
-// pkg/front_end/testcases/nnbd/null_shorting_extension.dart:137:7: Error: This expression has type 'void' and can't be used.
-//   n1?.nullable1 = new Class1().nullable1 = new Class1().nonNullable1Method();
-//       ^
-//
-// pkg/front_end/testcases/nnbd/null_shorting_extension.dart:153:7: Error: This expression has type 'void' and can't be used.
-//   n1?.nullable1 = new Class1().nonNullable1Method().nullable1;
-//       ^
-//
-// pkg/front_end/testcases/nnbd/null_shorting_extension.dart:155:7: Error: This expression has type 'void' and can't be used.
-//   n1?.nullable1 = new Class1().nonNullable1Method().nullable1 = new Class1();
-//       ^
-//
-// pkg/front_end/testcases/nnbd/null_shorting_extension.dart:158:7: Error: This expression has type 'void' and can't be used.
-//   n1?.nullable1 = new Class1().nonNullable1Method().nonNullable1Method();
-//       ^
-//
 // pkg/front_end/testcases/nnbd/null_shorting_extension.dart:226:33: Error: Operator '+' cannot be called on 'Class1?' because it is potentially null.
 //  - 'Class1' is from 'pkg/front_end/testcases/nnbd/null_shorting_extension.dart'.
 //   throws(() => n1?.nonNullable1 + 0);
@@ -189,15 +129,15 @@
 static method propertyAccess(self::Class1? n1) → void {
   self::Class1? nullable1 = n1;
   let final self::Class1? #t1 = n1 in #t1 == null ?{self::Class1?} null : self::Extension1|get#nullable1(#t1{self::Class1});
-  let final self::Class1? #t2 = n1 in #t2 == null ?{void} null : self::Extension1|set#nullable1(#t2{self::Class1}, new self::Class1::•());
+  let final self::Class1? #t2 = n1 in #t2 == null ?{self::Class1?} null : self::Extension1|set#nullable1(#t2{self::Class1}, new self::Class1::•());
   nullable1 = let final self::Class1? #t3 = n1 in #t3 == null ?{self::Class1?} null : let final self::Class1 #t4 = new self::Class1::•() in let final void #t5 = self::Extension1|set#nullable1(#t3{self::Class1}, #t4) in #t4;
   let final self::Class1? #t6 = n1 in #t6 == null ?{self::Class1?} null : self::Extension1|nonNullable1Method(#t6{self::Class1});
   let final self::Class1? #t7 = n1 in #t7 == null ?{self::Class1?} null : self::Extension1|get#nullable1(self::Extension1|get#nonNullable1(#t7{self::Class1}));
   let final self::Class1? #t8 = n1 in #t8 == null ?{self::Class1?} null : let final self::Class1? #t9 = self::Extension1|get#nullable1(#t8{self::Class1}) in #t9 == null ?{self::Class1?} null : self::Extension1|get#nullable1(#t9{self::Class1});
   let final self::Class1? #t10 = n1 in #t10 == null ?{self::Class1?} null : let final self::Class1? #t11 = self::Extension1|get#nullable1(self::Extension1|get#nonNullable1(#t10{self::Class1})) in #t11 == null ?{self::Class1?} null : self::Extension1|get#nullable1(#t11{self::Class1});
-  let final self::Class1? #t12 = n1 in #t12 == null ?{void} null : self::Extension1|set#nullable1(self::Extension1|get#nonNullable1(#t12{self::Class1}), new self::Class1::•());
-  let final self::Class1? #t13 = n1 in #t13 == null ?{void} null : let final self::Class1? #t14 = self::Extension1|get#nullable1(#t13{self::Class1}) in #t14 == null ?{void} null : self::Extension1|set#nullable1(#t14{self::Class1}, new self::Class1::•());
-  let final self::Class1? #t15 = n1 in #t15 == null ?{void} null : let final self::Class1? #t16 = self::Extension1|get#nullable1(self::Extension1|get#nonNullable1(#t15{self::Class1})) in #t16 == null ?{void} null : self::Extension1|set#nullable1(#t16{self::Class1}, new self::Class1::•());
+  let final self::Class1? #t12 = n1 in #t12 == null ?{self::Class1?} null : self::Extension1|set#nullable1(self::Extension1|get#nonNullable1(#t12{self::Class1}), new self::Class1::•());
+  let final self::Class1? #t13 = n1 in #t13 == null ?{self::Class1?} null : let final self::Class1? #t14 = self::Extension1|get#nullable1(#t13{self::Class1}) in #t14 == null ?{self::Class1?} null : self::Extension1|set#nullable1(#t14{self::Class1}, new self::Class1::•());
+  let final self::Class1? #t15 = n1 in #t15 == null ?{self::Class1?} null : let final self::Class1? #t16 = self::Extension1|get#nullable1(self::Extension1|get#nonNullable1(#t15{self::Class1})) in #t16 == null ?{self::Class1?} null : self::Extension1|set#nullable1(#t16{self::Class1}, new self::Class1::•());
   let final self::Class1? #t17 = let final self::Class1? #t18 = n1 in #t18 == null ?{self::Class1?} null : self::Extension1|get#nullable1(#t18{self::Class1}) in #t17 == null ?{self::Class1?} null : self::Extension1|get#nullable1(#t17{self::Class1});
   self::throws(() → void => invalid-expression "pkg/front_end/testcases/nnbd/null_shorting_extension.dart:93:47: Error: Property 'nullable1' cannot be accessed on 'Class1?' because it is potentially null.
  - 'Class1' is from 'pkg/front_end/testcases/nnbd/null_shorting_extension.dart'.
@@ -213,58 +153,58 @@
   nullable1 = let final self::Class1? #t26 = n1 in #t26 == null ?{self::Class1?} null : let final self::Class1? #t27 = self::Extension1|get#nullable1(#t26{self::Class1}) in #t27 == null ?{self::Class1?} null : let final self::Class1 #t28 = new self::Class1::•() in let final void #t29 = self::Extension1|set#nullable1(#t27{self::Class1}, #t28) in #t28;
   nullable1 = let final self::Class1? #t30 = n1 in #t30 == null ?{self::Class1?} null : let final self::Class1? #t31 = self::Extension1|get#nullable1(self::Extension1|get#nonNullable1(#t30{self::Class1})) in #t31 == null ?{self::Class1?} null : let final self::Class1 #t32 = new self::Class1::•() in let final void #t33 = self::Extension1|set#nullable1(#t31{self::Class1}, #t32) in #t32;
   let final self::Class1? #t34 = n1 in #t34 == null ?{self::Class1?} null : let final self::Class1? #t35 = self::Extension1|get#nullable1(#t34{self::Class1}) in #t35 == null ?{self::Class1?} null : self::Extension1|nonNullable1Method(#t35{self::Class1});
-  let final self::Class1? #t36 = n1 in #t36 == null ?{void} null : self::Extension1|set#nullable1(#t36{self::Class1}, self::Extension1|get#nullable1(new self::Class1::•()));
+  let final self::Class1? #t36 = n1 in #t36 == null ?{self::Class1?} null : self::Extension1|set#nullable1(#t36{self::Class1}, self::Extension1|get#nullable1(new self::Class1::•()));
   nullable1 = let final self::Class1? #t37 = n1 in #t37 == null ?{self::Class1?} null : let final self::Class1? #t38 = self::Extension1|get#nullable1(new self::Class1::•()) in let final void #t39 = self::Extension1|set#nullable1(#t37{self::Class1}, #t38) in #t38;
-  let final self::Class1? #t40 = n1 in #t40 == null ?{void} null : self::Extension1|set#nullable1(#t40{self::Class1}, let final self::Class1 #t41 = new self::Class1::•() in let final void #t42 = self::Extension1|set#nullable1(new self::Class1::•(), #t41) in #t41);
+  let final self::Class1? #t40 = n1 in #t40 == null ?{self::Class1?} null : self::Extension1|set#nullable1(#t40{self::Class1}, let final self::Class1 #t41 = new self::Class1::•() in let final void #t42 = self::Extension1|set#nullable1(new self::Class1::•(), #t41) in #t41);
   nullable1 = let final self::Class1? #t43 = n1 in #t43 == null ?{self::Class1?} null : let final self::Class1 #t44 = let final self::Class1 #t45 = new self::Class1::•() in let final void #t46 = self::Extension1|set#nullable1(new self::Class1::•(), #t45) in #t45 in let final void #t47 = self::Extension1|set#nullable1(#t43{self::Class1}, #t44) in #t44;
-  let final self::Class1? #t48 = n1 in #t48 == null ?{void} null : self::Extension1|set#nullable1(#t48{self::Class1}, self::Extension1|nonNullable1Method(new self::Class1::•()));
+  let final self::Class1? #t48 = n1 in #t48 == null ?{self::Class1?} null : self::Extension1|set#nullable1(#t48{self::Class1}, self::Extension1|nonNullable1Method(new self::Class1::•()));
   nullable1 = let final self::Class1? #t49 = n1 in #t49 == null ?{self::Class1?} null : let final self::Class1 #t50 = self::Extension1|nonNullable1Method(new self::Class1::•()) in let final void #t51 = self::Extension1|set#nullable1(#t49{self::Class1}, #t50) in #t50;
   let final self::Class1? #t52 = n1 in #t52 == null ?{self::Class1?} null : self::Extension1|get#nullable1(self::Extension1|nonNullable1Method(#t52{self::Class1}));
-  let final self::Class1? #t53 = n1 in #t53 == null ?{void} null : self::Extension1|set#nullable1(self::Extension1|nonNullable1Method(#t53{self::Class1}), new self::Class1::•());
+  let final self::Class1? #t53 = n1 in #t53 == null ?{self::Class1?} null : self::Extension1|set#nullable1(self::Extension1|nonNullable1Method(#t53{self::Class1}), new self::Class1::•());
   let final self::Class1? #t54 = n1 in #t54 == null ?{self::Class1?} null : self::Extension1|nonNullable1Method(self::Extension1|nonNullable1Method(#t54{self::Class1}));
   let final self::Class1? #t55 = n1 in #t55 == null ?{self::Class1?} null : self::Extension1|get#nullable1(self::Extension1|get#nonNullable1(self::Extension1|get#nonNullable1(#t55{self::Class1})));
-  let final self::Class1? #t56 = n1 in #t56 == null ?{void} null : self::Extension1|set#nullable1(self::Extension1|get#nonNullable1(self::Extension1|get#nonNullable1(#t56{self::Class1})), new self::Class1::•());
+  let final self::Class1? #t56 = n1 in #t56 == null ?{self::Class1?} null : self::Extension1|set#nullable1(self::Extension1|get#nonNullable1(self::Extension1|get#nonNullable1(#t56{self::Class1})), new self::Class1::•());
   nullable1 = let final self::Class1? #t57 = n1 in #t57 == null ?{self::Class1?} null : let final self::Class1 #t58 = new self::Class1::•() in let final void #t59 = self::Extension1|set#nullable1(self::Extension1|get#nonNullable1(self::Extension1|get#nonNullable1(#t57{self::Class1})), #t58) in #t58;
   let final self::Class1? #t60 = n1 in #t60 == null ?{self::Class1?} null : let final self::Class1? #t61 = self::Extension1|get#nullable1(self::Extension1|get#nonNullable1(#t60{self::Class1})) in #t61 == null ?{self::Class1?} null : self::Extension1|nonNullable1Method(#t61{self::Class1});
-  let final self::Class1? #t62 = n1 in #t62 == null ?{void} null : self::Extension1|set#nullable1(#t62{self::Class1}, self::Extension1|get#nullable1(self::Extension1|get#nonNullable1(new self::Class1::•())));
+  let final self::Class1? #t62 = n1 in #t62 == null ?{self::Class1?} null : self::Extension1|set#nullable1(#t62{self::Class1}, self::Extension1|get#nullable1(self::Extension1|get#nonNullable1(new self::Class1::•())));
   nullable1 = let final self::Class1? #t63 = n1 in #t63 == null ?{self::Class1?} null : let final self::Class1? #t64 = self::Extension1|get#nullable1(self::Extension1|get#nonNullable1(new self::Class1::•())) in let final void #t65 = self::Extension1|set#nullable1(#t63{self::Class1}, #t64) in #t64;
-  let final self::Class1? #t66 = n1 in #t66 == null ?{void} null : self::Extension1|set#nullable1(#t66{self::Class1}, let final self::Class1 #t67 = new self::Class1::•() in let final void #t68 = self::Extension1|set#nullable1(self::Extension1|get#nonNullable1(new self::Class1::•()), #t67) in #t67);
+  let final self::Class1? #t66 = n1 in #t66 == null ?{self::Class1?} null : self::Extension1|set#nullable1(#t66{self::Class1}, let final self::Class1 #t67 = new self::Class1::•() in let final void #t68 = self::Extension1|set#nullable1(self::Extension1|get#nonNullable1(new self::Class1::•()), #t67) in #t67);
   nullable1 = let final self::Class1? #t69 = n1 in #t69 == null ?{self::Class1?} null : let final self::Class1 #t70 = let final self::Class1 #t71 = new self::Class1::•() in let final void #t72 = self::Extension1|set#nullable1(self::Extension1|get#nonNullable1(new self::Class1::•()), #t71) in #t71 in let final void #t73 = self::Extension1|set#nullable1(#t69{self::Class1}, #t70) in #t70;
-  let final self::Class1? #t74 = n1 in #t74 == null ?{void} null : self::Extension1|set#nullable1(#t74{self::Class1}, self::Extension1|nonNullable1Method(self::Extension1|get#nonNullable1(new self::Class1::•())));
+  let final self::Class1? #t74 = n1 in #t74 == null ?{self::Class1?} null : self::Extension1|set#nullable1(#t74{self::Class1}, self::Extension1|nonNullable1Method(self::Extension1|get#nonNullable1(new self::Class1::•())));
   nullable1 = let final self::Class1? #t75 = n1 in #t75 == null ?{self::Class1?} null : let final self::Class1 #t76 = self::Extension1|nonNullable1Method(self::Extension1|get#nonNullable1(new self::Class1::•())) in let final void #t77 = self::Extension1|set#nullable1(#t75{self::Class1}, #t76) in #t76;
   let final self::Class1? #t78 = n1 in #t78 == null ?{self::Class1?} null : self::Extension1|get#nullable1(self::Extension1|get#nonNullable1(self::Extension1|nonNullable1Method(#t78{self::Class1})));
-  let final self::Class1? #t79 = n1 in #t79 == null ?{void} null : self::Extension1|set#nullable1(self::Extension1|get#nonNullable1(self::Extension1|nonNullable1Method(#t79{self::Class1})), new self::Class1::•());
+  let final self::Class1? #t79 = n1 in #t79 == null ?{self::Class1?} null : self::Extension1|set#nullable1(self::Extension1|get#nonNullable1(self::Extension1|nonNullable1Method(#t79{self::Class1})), new self::Class1::•());
   let final self::Class1? #t80 = n1 in #t80 == null ?{self::Class1?} null : self::Extension1|nonNullable1Method(self::Extension1|get#nonNullable1(self::Extension1|nonNullable1Method(#t80{self::Class1})));
-  let final self::Class1? #t81 = n1 in #t81 == null ?{void} null : self::Extension1|set#nullable1(self::Extension1|get#nonNullable1(#t81{self::Class1}), self::Extension1|get#nullable1(new self::Class1::•()));
+  let final self::Class1? #t81 = n1 in #t81 == null ?{self::Class1?} null : self::Extension1|set#nullable1(self::Extension1|get#nonNullable1(#t81{self::Class1}), self::Extension1|get#nullable1(new self::Class1::•()));
   nullable1 = let final self::Class1? #t82 = n1 in #t82 == null ?{self::Class1?} null : let final self::Class1? #t83 = self::Extension1|get#nullable1(new self::Class1::•()) in let final void #t84 = self::Extension1|set#nullable1(self::Extension1|get#nonNullable1(#t82{self::Class1}), #t83) in #t83;
-  let final self::Class1? #t85 = n1 in #t85 == null ?{void} null : self::Extension1|set#nullable1(self::Extension1|get#nonNullable1(#t85{self::Class1}), let final self::Class1 #t86 = new self::Class1::•() in let final void #t87 = self::Extension1|set#nullable1(new self::Class1::•(), #t86) in #t86);
+  let final self::Class1? #t85 = n1 in #t85 == null ?{self::Class1?} null : self::Extension1|set#nullable1(self::Extension1|get#nonNullable1(#t85{self::Class1}), let final self::Class1 #t86 = new self::Class1::•() in let final void #t87 = self::Extension1|set#nullable1(new self::Class1::•(), #t86) in #t86);
   nullable1 = let final self::Class1? #t88 = n1 in #t88 == null ?{self::Class1?} null : let final self::Class1 #t89 = let final self::Class1 #t90 = new self::Class1::•() in let final void #t91 = self::Extension1|set#nullable1(new self::Class1::•(), #t90) in #t90 in let final void #t92 = self::Extension1|set#nullable1(self::Extension1|get#nonNullable1(#t88{self::Class1}), #t89) in #t89;
-  let final self::Class1? #t93 = n1 in #t93 == null ?{void} null : self::Extension1|set#nullable1(self::Extension1|get#nonNullable1(#t93{self::Class1}), self::Extension1|nonNullable1Method(new self::Class1::•()));
+  let final self::Class1? #t93 = n1 in #t93 == null ?{self::Class1?} null : self::Extension1|set#nullable1(self::Extension1|get#nonNullable1(#t93{self::Class1}), self::Extension1|nonNullable1Method(new self::Class1::•()));
   nullable1 = let final self::Class1? #t94 = n1 in #t94 == null ?{self::Class1?} null : let final self::Class1 #t95 = self::Extension1|nonNullable1Method(new self::Class1::•()) in let final void #t96 = self::Extension1|set#nullable1(self::Extension1|get#nonNullable1(#t94{self::Class1}), #t95) in #t95;
-  let final self::Class1? #t97 = n1 in #t97 == null ?{void} null : self::Extension1|set#nullable1(#t97{self::Class1}, let final self::Class1? #t98 = self::Extension1|get#nullable1(new self::Class1::•()) in let final void #t99 = self::Extension1|set#nullable1(new self::Class1::•(), #t98) in #t98);
+  let final self::Class1? #t97 = n1 in #t97 == null ?{self::Class1?} null : self::Extension1|set#nullable1(#t97{self::Class1}, let final self::Class1? #t98 = self::Extension1|get#nullable1(new self::Class1::•()) in let final void #t99 = self::Extension1|set#nullable1(new self::Class1::•(), #t98) in #t98);
   nullable1 = let final self::Class1? #t100 = n1 in #t100 == null ?{self::Class1?} null : let final self::Class1? #t101 = let final self::Class1? #t102 = self::Extension1|get#nullable1(new self::Class1::•()) in let final void #t103 = self::Extension1|set#nullable1(new self::Class1::•(), #t102) in #t102 in let final void #t104 = self::Extension1|set#nullable1(#t100{self::Class1}, #t101) in #t101;
-  let final self::Class1? #t105 = n1 in #t105 == null ?{void} null : self::Extension1|set#nullable1(#t105{self::Class1}, let final self::Class1 #t106 = let final self::Class1 #t107 = new self::Class1::•() in let final void #t108 = self::Extension1|set#nullable1(new self::Class1::•(), #t107) in #t107 in let final void #t109 = self::Extension1|set#nullable1(new self::Class1::•(), #t106) in #t106);
+  let final self::Class1? #t105 = n1 in #t105 == null ?{self::Class1?} null : self::Extension1|set#nullable1(#t105{self::Class1}, let final self::Class1 #t106 = let final self::Class1 #t107 = new self::Class1::•() in let final void #t108 = self::Extension1|set#nullable1(new self::Class1::•(), #t107) in #t107 in let final void #t109 = self::Extension1|set#nullable1(new self::Class1::•(), #t106) in #t106);
   nullable1 = let final self::Class1? #t110 = n1 in #t110 == null ?{self::Class1?} null : let final self::Class1 #t111 = let final self::Class1 #t112 = let final self::Class1 #t113 = new self::Class1::•() in let final void #t114 = self::Extension1|set#nullable1(new self::Class1::•(), #t113) in #t113 in let final void #t115 = self::Extension1|set#nullable1(new self::Class1::•(), #t112) in #t112 in let final void #t116 = self::Extension1|set#nullable1(#t110{self::Class1}, #t111) in #t111;
-  let final self::Class1? #t117 = n1 in #t117 == null ?{void} null : self::Extension1|set#nullable1(#t117{self::Class1}, let final self::Class1 #t118 = self::Extension1|nonNullable1Method(new self::Class1::•()) in let final void #t119 = self::Extension1|set#nullable1(new self::Class1::•(), #t118) in #t118);
+  let final self::Class1? #t117 = n1 in #t117 == null ?{self::Class1?} null : self::Extension1|set#nullable1(#t117{self::Class1}, let final self::Class1 #t118 = self::Extension1|nonNullable1Method(new self::Class1::•()) in let final void #t119 = self::Extension1|set#nullable1(new self::Class1::•(), #t118) in #t118);
   nullable1 = let final self::Class1? #t120 = n1 in #t120 == null ?{self::Class1?} null : let final self::Class1 #t121 = let final self::Class1 #t122 = self::Extension1|nonNullable1Method(new self::Class1::•()) in let final void #t123 = self::Extension1|set#nullable1(new self::Class1::•(), #t122) in #t122 in let final void #t124 = self::Extension1|set#nullable1(#t120{self::Class1}, #t121) in #t121;
-  let final self::Class1? #t125 = n1 in #t125 == null ?{void} null : self::Extension1|set#nullable1(self::Extension1|nonNullable1Method(#t125{self::Class1}), self::Extension1|get#nullable1(new self::Class1::•()));
+  let final self::Class1? #t125 = n1 in #t125 == null ?{self::Class1?} null : self::Extension1|set#nullable1(self::Extension1|nonNullable1Method(#t125{self::Class1}), self::Extension1|get#nullable1(new self::Class1::•()));
   nullable1 = let final self::Class1? #t126 = n1 in #t126 == null ?{self::Class1?} null : let final self::Class1? #t127 = self::Extension1|get#nullable1(new self::Class1::•()) in let final void #t128 = self::Extension1|set#nullable1(self::Extension1|nonNullable1Method(#t126{self::Class1}), #t127) in #t127;
-  let final self::Class1? #t129 = n1 in #t129 == null ?{void} null : self::Extension1|set#nullable1(self::Extension1|nonNullable1Method(#t129{self::Class1}), let final self::Class1 #t130 = new self::Class1::•() in let final void #t131 = self::Extension1|set#nullable1(new self::Class1::•(), #t130) in #t130);
+  let final self::Class1? #t129 = n1 in #t129 == null ?{self::Class1?} null : self::Extension1|set#nullable1(self::Extension1|nonNullable1Method(#t129{self::Class1}), let final self::Class1 #t130 = new self::Class1::•() in let final void #t131 = self::Extension1|set#nullable1(new self::Class1::•(), #t130) in #t130);
   nullable1 = let final self::Class1? #t132 = n1 in #t132 == null ?{self::Class1?} null : let final self::Class1 #t133 = let final self::Class1 #t134 = new self::Class1::•() in let final void #t135 = self::Extension1|set#nullable1(new self::Class1::•(), #t134) in #t134 in let final void #t136 = self::Extension1|set#nullable1(self::Extension1|nonNullable1Method(#t132{self::Class1}), #t133) in #t133;
-  let final self::Class1? #t137 = n1 in #t137 == null ?{void} null : self::Extension1|set#nullable1(self::Extension1|nonNullable1Method(#t137{self::Class1}), self::Extension1|nonNullable1Method(new self::Class1::•()));
+  let final self::Class1? #t137 = n1 in #t137 == null ?{self::Class1?} null : self::Extension1|set#nullable1(self::Extension1|nonNullable1Method(#t137{self::Class1}), self::Extension1|nonNullable1Method(new self::Class1::•()));
   nullable1 = let final self::Class1? #t138 = n1 in #t138 == null ?{self::Class1?} null : let final self::Class1 #t139 = self::Extension1|nonNullable1Method(new self::Class1::•()) in let final void #t140 = self::Extension1|set#nullable1(self::Extension1|nonNullable1Method(#t138{self::Class1}), #t139) in #t139;
   let final self::Class1? #t141 = n1 in #t141 == null ?{self::Class1?} null : self::Extension1|get#nullable1(self::Extension1|nonNullable1Method(self::Extension1|get#nonNullable1(#t141{self::Class1})));
-  let final self::Class1? #t142 = n1 in #t142 == null ?{void} null : self::Extension1|set#nullable1(self::Extension1|nonNullable1Method(self::Extension1|get#nonNullable1(#t142{self::Class1})), new self::Class1::•());
+  let final self::Class1? #t142 = n1 in #t142 == null ?{self::Class1?} null : self::Extension1|set#nullable1(self::Extension1|nonNullable1Method(self::Extension1|get#nonNullable1(#t142{self::Class1})), new self::Class1::•());
   nullable1 = let final self::Class1? #t143 = n1 in #t143 == null ?{self::Class1?} null : let final self::Class1 #t144 = new self::Class1::•() in let final void #t145 = self::Extension1|set#nullable1(self::Extension1|nonNullable1Method(self::Extension1|get#nonNullable1(#t143{self::Class1})), #t144) in #t144;
   let final self::Class1? #t146 = n1 in #t146 == null ?{self::Class1?} null : self::Extension1|nonNullable1Method(self::Extension1|nonNullable1Method(self::Extension1|get#nonNullable1(#t146{self::Class1})));
-  let final self::Class1? #t147 = n1 in #t147 == null ?{void} null : self::Extension1|set#nullable1(#t147{self::Class1}, self::Extension1|get#nullable1(self::Extension1|nonNullable1Method(new self::Class1::•())));
+  let final self::Class1? #t147 = n1 in #t147 == null ?{self::Class1?} null : self::Extension1|set#nullable1(#t147{self::Class1}, self::Extension1|get#nullable1(self::Extension1|nonNullable1Method(new self::Class1::•())));
   nullable1 = let final self::Class1? #t148 = n1 in #t148 == null ?{self::Class1?} null : let final self::Class1? #t149 = self::Extension1|get#nullable1(self::Extension1|nonNullable1Method(new self::Class1::•())) in let final void #t150 = self::Extension1|set#nullable1(#t148{self::Class1}, #t149) in #t149;
-  let final self::Class1? #t151 = n1 in #t151 == null ?{void} null : self::Extension1|set#nullable1(#t151{self::Class1}, let final self::Class1 #t152 = new self::Class1::•() in let final void #t153 = self::Extension1|set#nullable1(self::Extension1|nonNullable1Method(new self::Class1::•()), #t152) in #t152);
+  let final self::Class1? #t151 = n1 in #t151 == null ?{self::Class1?} null : self::Extension1|set#nullable1(#t151{self::Class1}, let final self::Class1 #t152 = new self::Class1::•() in let final void #t153 = self::Extension1|set#nullable1(self::Extension1|nonNullable1Method(new self::Class1::•()), #t152) in #t152);
   nullable1 = let final self::Class1? #t154 = n1 in #t154 == null ?{self::Class1?} null : let final self::Class1 #t155 = let final self::Class1 #t156 = new self::Class1::•() in let final void #t157 = self::Extension1|set#nullable1(self::Extension1|nonNullable1Method(new self::Class1::•()), #t156) in #t156 in let final void #t158 = self::Extension1|set#nullable1(#t154{self::Class1}, #t155) in #t155;
-  let final self::Class1? #t159 = n1 in #t159 == null ?{void} null : self::Extension1|set#nullable1(#t159{self::Class1}, self::Extension1|nonNullable1Method(self::Extension1|nonNullable1Method(new self::Class1::•())));
+  let final self::Class1? #t159 = n1 in #t159 == null ?{self::Class1?} null : self::Extension1|set#nullable1(#t159{self::Class1}, self::Extension1|nonNullable1Method(self::Extension1|nonNullable1Method(new self::Class1::•())));
   nullable1 = let final self::Class1? #t160 = n1 in #t160 == null ?{self::Class1?} null : let final self::Class1 #t161 = self::Extension1|nonNullable1Method(self::Extension1|nonNullable1Method(new self::Class1::•())) in let final void #t162 = self::Extension1|set#nullable1(#t160{self::Class1}, #t161) in #t161;
   let final self::Class1? #t163 = n1 in #t163 == null ?{self::Class1?} null : self::Extension1|get#nullable1(self::Extension1|nonNullable1Method(self::Extension1|nonNullable1Method(#t163{self::Class1})));
-  let final self::Class1? #t164 = n1 in #t164 == null ?{void} null : self::Extension1|set#nullable1(self::Extension1|nonNullable1Method(self::Extension1|nonNullable1Method(#t164{self::Class1})), new self::Class1::•());
+  let final self::Class1? #t164 = n1 in #t164 == null ?{self::Class1?} null : self::Extension1|set#nullable1(self::Extension1|nonNullable1Method(self::Extension1|nonNullable1Method(#t164{self::Class1})), new self::Class1::•());
   let final self::Class1? #t165 = n1 in #t165 == null ?{self::Class1?} null : self::Extension1|nonNullable1Method(self::Extension1|nonNullable1Method(self::Extension1|nonNullable1Method(#t165{self::Class1})));
   let final self::Class1? #t166 = n1 in #t166 == null ?{self::Class1?} null : let final self::Class1? #t167 = self::Extension1|nonNullable1Method(#t166{self::Class1}) in #t167 == null ?{self::Class1?} null : self::Extension1|nonNullable1Method(#t167{self::Class1});
 }
diff --git a/pkg/front_end/testcases/nnbd/null_shorting_extension.dart.weak.expect b/pkg/front_end/testcases/nnbd/null_shorting_extension.dart.weak.expect
index 9bf4dcb..954b4c0 100644
--- a/pkg/front_end/testcases/nnbd/null_shorting_extension.dart.weak.expect
+++ b/pkg/front_end/testcases/nnbd/null_shorting_extension.dart.weak.expect
@@ -2,18 +2,6 @@
 //
 // Problems in library:
 //
-// pkg/front_end/testcases/nnbd/null_shorting_extension.dart:82:7: Error: This expression has type 'void' and can't be used.
-//   n1?.nullable1 = new Class1();
-//       ^
-//
-// pkg/front_end/testcases/nnbd/null_shorting_extension.dart:90:18: Error: This expression has type 'void' and can't be used.
-//   n1?.nullable1?.nullable1 = new Class1();
-//                  ^
-//
-// pkg/front_end/testcases/nnbd/null_shorting_extension.dart:91:31: Error: This expression has type 'void' and can't be used.
-//   n1?.nonNullable1.nullable1?.nullable1 = new Class1();
-//                               ^
-//
 // pkg/front_end/testcases/nnbd/null_shorting_extension.dart:93:47: Error: Property 'nullable1' cannot be accessed on 'Class1?' because it is potentially null.
 //  - 'Class1' is from 'pkg/front_end/testcases/nnbd/null_shorting_extension.dart'.
 // Try accessing using ?. instead.
@@ -26,54 +14,6 @@
 //   throws(() => (n1?.nonNullable1Method()).nullable1);
 //                                           ^^^^^^^^^
 //
-// pkg/front_end/testcases/nnbd/null_shorting_extension.dart:99:7: Error: This expression has type 'void' and can't be used.
-//   n1?.nullable1 = new Class1().nullable1;
-//       ^
-//
-// pkg/front_end/testcases/nnbd/null_shorting_extension.dart:101:7: Error: This expression has type 'void' and can't be used.
-//   n1?.nullable1 = new Class1().nullable1 = new Class1();
-//       ^
-//
-// pkg/front_end/testcases/nnbd/null_shorting_extension.dart:103:7: Error: This expression has type 'void' and can't be used.
-//   n1?.nullable1 = new Class1().nonNullable1Method();
-//       ^
-//
-// pkg/front_end/testcases/nnbd/null_shorting_extension.dart:113:7: Error: This expression has type 'void' and can't be used.
-//   n1?.nullable1 = new Class1().nonNullable1.nullable1;
-//       ^
-//
-// pkg/front_end/testcases/nnbd/null_shorting_extension.dart:115:7: Error: This expression has type 'void' and can't be used.
-//   n1?.nullable1 = new Class1().nonNullable1.nullable1 = new Class1();
-//       ^
-//
-// pkg/front_end/testcases/nnbd/null_shorting_extension.dart:118:7: Error: This expression has type 'void' and can't be used.
-//   n1?.nullable1 = new Class1().nonNullable1.nonNullable1Method();
-//       ^
-//
-// pkg/front_end/testcases/nnbd/null_shorting_extension.dart:131:7: Error: This expression has type 'void' and can't be used.
-//   n1?.nullable1 = new Class1().nullable1 = new Class1().nullable1;
-//       ^
-//
-// pkg/front_end/testcases/nnbd/null_shorting_extension.dart:133:7: Error: This expression has type 'void' and can't be used.
-//   n1?.nullable1 =
-//       ^
-//
-// pkg/front_end/testcases/nnbd/null_shorting_extension.dart:137:7: Error: This expression has type 'void' and can't be used.
-//   n1?.nullable1 = new Class1().nullable1 = new Class1().nonNullable1Method();
-//       ^
-//
-// pkg/front_end/testcases/nnbd/null_shorting_extension.dart:153:7: Error: This expression has type 'void' and can't be used.
-//   n1?.nullable1 = new Class1().nonNullable1Method().nullable1;
-//       ^
-//
-// pkg/front_end/testcases/nnbd/null_shorting_extension.dart:155:7: Error: This expression has type 'void' and can't be used.
-//   n1?.nullable1 = new Class1().nonNullable1Method().nullable1 = new Class1();
-//       ^
-//
-// pkg/front_end/testcases/nnbd/null_shorting_extension.dart:158:7: Error: This expression has type 'void' and can't be used.
-//   n1?.nullable1 = new Class1().nonNullable1Method().nonNullable1Method();
-//       ^
-//
 // pkg/front_end/testcases/nnbd/null_shorting_extension.dart:226:33: Error: Operator '+' cannot be called on 'Class1?' because it is potentially null.
 //  - 'Class1' is from 'pkg/front_end/testcases/nnbd/null_shorting_extension.dart'.
 //   throws(() => n1?.nonNullable1 + 0);
@@ -189,15 +129,15 @@
 static method propertyAccess(self::Class1? n1) → void {
   self::Class1? nullable1 = n1;
   let final self::Class1? #t1 = n1 in #t1 == null ?{self::Class1?} null : self::Extension1|get#nullable1(#t1{self::Class1});
-  let final self::Class1? #t2 = n1 in #t2 == null ?{void} null : self::Extension1|set#nullable1(#t2{self::Class1}, new self::Class1::•());
+  let final self::Class1? #t2 = n1 in #t2 == null ?{self::Class1?} null : self::Extension1|set#nullable1(#t2{self::Class1}, new self::Class1::•());
   nullable1 = let final self::Class1? #t3 = n1 in #t3 == null ?{self::Class1?} null : let final self::Class1 #t4 = new self::Class1::•() in let final void #t5 = self::Extension1|set#nullable1(#t3{self::Class1}, #t4) in #t4;
   let final self::Class1? #t6 = n1 in #t6 == null ?{self::Class1?} null : self::Extension1|nonNullable1Method(#t6{self::Class1});
   let final self::Class1? #t7 = n1 in #t7 == null ?{self::Class1?} null : self::Extension1|get#nullable1(self::Extension1|get#nonNullable1(#t7{self::Class1}));
   let final self::Class1? #t8 = n1 in #t8 == null ?{self::Class1?} null : let final self::Class1? #t9 = self::Extension1|get#nullable1(#t8{self::Class1}) in #t9 == null ?{self::Class1?} null : self::Extension1|get#nullable1(#t9{self::Class1});
   let final self::Class1? #t10 = n1 in #t10 == null ?{self::Class1?} null : let final self::Class1? #t11 = self::Extension1|get#nullable1(self::Extension1|get#nonNullable1(#t10{self::Class1})) in #t11 == null ?{self::Class1?} null : self::Extension1|get#nullable1(#t11{self::Class1});
-  let final self::Class1? #t12 = n1 in #t12 == null ?{void} null : self::Extension1|set#nullable1(self::Extension1|get#nonNullable1(#t12{self::Class1}), new self::Class1::•());
-  let final self::Class1? #t13 = n1 in #t13 == null ?{void} null : let final self::Class1? #t14 = self::Extension1|get#nullable1(#t13{self::Class1}) in #t14 == null ?{void} null : self::Extension1|set#nullable1(#t14{self::Class1}, new self::Class1::•());
-  let final self::Class1? #t15 = n1 in #t15 == null ?{void} null : let final self::Class1? #t16 = self::Extension1|get#nullable1(self::Extension1|get#nonNullable1(#t15{self::Class1})) in #t16 == null ?{void} null : self::Extension1|set#nullable1(#t16{self::Class1}, new self::Class1::•());
+  let final self::Class1? #t12 = n1 in #t12 == null ?{self::Class1?} null : self::Extension1|set#nullable1(self::Extension1|get#nonNullable1(#t12{self::Class1}), new self::Class1::•());
+  let final self::Class1? #t13 = n1 in #t13 == null ?{self::Class1?} null : let final self::Class1? #t14 = self::Extension1|get#nullable1(#t13{self::Class1}) in #t14 == null ?{self::Class1?} null : self::Extension1|set#nullable1(#t14{self::Class1}, new self::Class1::•());
+  let final self::Class1? #t15 = n1 in #t15 == null ?{self::Class1?} null : let final self::Class1? #t16 = self::Extension1|get#nullable1(self::Extension1|get#nonNullable1(#t15{self::Class1})) in #t16 == null ?{self::Class1?} null : self::Extension1|set#nullable1(#t16{self::Class1}, new self::Class1::•());
   let final self::Class1? #t17 = let final self::Class1? #t18 = n1 in #t18 == null ?{self::Class1?} null : self::Extension1|get#nullable1(#t18{self::Class1}) in #t17 == null ?{self::Class1?} null : self::Extension1|get#nullable1(#t17{self::Class1});
   self::throws(() → void => invalid-expression "pkg/front_end/testcases/nnbd/null_shorting_extension.dart:93:47: Error: Property 'nullable1' cannot be accessed on 'Class1?' because it is potentially null.
  - 'Class1' is from 'pkg/front_end/testcases/nnbd/null_shorting_extension.dart'.
@@ -213,58 +153,58 @@
   nullable1 = let final self::Class1? #t26 = n1 in #t26 == null ?{self::Class1?} null : let final self::Class1? #t27 = self::Extension1|get#nullable1(#t26{self::Class1}) in #t27 == null ?{self::Class1?} null : let final self::Class1 #t28 = new self::Class1::•() in let final void #t29 = self::Extension1|set#nullable1(#t27{self::Class1}, #t28) in #t28;
   nullable1 = let final self::Class1? #t30 = n1 in #t30 == null ?{self::Class1?} null : let final self::Class1? #t31 = self::Extension1|get#nullable1(self::Extension1|get#nonNullable1(#t30{self::Class1})) in #t31 == null ?{self::Class1?} null : let final self::Class1 #t32 = new self::Class1::•() in let final void #t33 = self::Extension1|set#nullable1(#t31{self::Class1}, #t32) in #t32;
   let final self::Class1? #t34 = n1 in #t34 == null ?{self::Class1?} null : let final self::Class1? #t35 = self::Extension1|get#nullable1(#t34{self::Class1}) in #t35 == null ?{self::Class1?} null : self::Extension1|nonNullable1Method(#t35{self::Class1});
-  let final self::Class1? #t36 = n1 in #t36 == null ?{void} null : self::Extension1|set#nullable1(#t36{self::Class1}, self::Extension1|get#nullable1(new self::Class1::•()));
+  let final self::Class1? #t36 = n1 in #t36 == null ?{self::Class1?} null : self::Extension1|set#nullable1(#t36{self::Class1}, self::Extension1|get#nullable1(new self::Class1::•()));
   nullable1 = let final self::Class1? #t37 = n1 in #t37 == null ?{self::Class1?} null : let final self::Class1? #t38 = self::Extension1|get#nullable1(new self::Class1::•()) in let final void #t39 = self::Extension1|set#nullable1(#t37{self::Class1}, #t38) in #t38;
-  let final self::Class1? #t40 = n1 in #t40 == null ?{void} null : self::Extension1|set#nullable1(#t40{self::Class1}, let final self::Class1 #t41 = new self::Class1::•() in let final void #t42 = self::Extension1|set#nullable1(new self::Class1::•(), #t41) in #t41);
+  let final self::Class1? #t40 = n1 in #t40 == null ?{self::Class1?} null : self::Extension1|set#nullable1(#t40{self::Class1}, let final self::Class1 #t41 = new self::Class1::•() in let final void #t42 = self::Extension1|set#nullable1(new self::Class1::•(), #t41) in #t41);
   nullable1 = let final self::Class1? #t43 = n1 in #t43 == null ?{self::Class1?} null : let final self::Class1 #t44 = let final self::Class1 #t45 = new self::Class1::•() in let final void #t46 = self::Extension1|set#nullable1(new self::Class1::•(), #t45) in #t45 in let final void #t47 = self::Extension1|set#nullable1(#t43{self::Class1}, #t44) in #t44;
-  let final self::Class1? #t48 = n1 in #t48 == null ?{void} null : self::Extension1|set#nullable1(#t48{self::Class1}, self::Extension1|nonNullable1Method(new self::Class1::•()));
+  let final self::Class1? #t48 = n1 in #t48 == null ?{self::Class1?} null : self::Extension1|set#nullable1(#t48{self::Class1}, self::Extension1|nonNullable1Method(new self::Class1::•()));
   nullable1 = let final self::Class1? #t49 = n1 in #t49 == null ?{self::Class1?} null : let final self::Class1 #t50 = self::Extension1|nonNullable1Method(new self::Class1::•()) in let final void #t51 = self::Extension1|set#nullable1(#t49{self::Class1}, #t50) in #t50;
   let final self::Class1? #t52 = n1 in #t52 == null ?{self::Class1?} null : self::Extension1|get#nullable1(self::Extension1|nonNullable1Method(#t52{self::Class1}));
-  let final self::Class1? #t53 = n1 in #t53 == null ?{void} null : self::Extension1|set#nullable1(self::Extension1|nonNullable1Method(#t53{self::Class1}), new self::Class1::•());
+  let final self::Class1? #t53 = n1 in #t53 == null ?{self::Class1?} null : self::Extension1|set#nullable1(self::Extension1|nonNullable1Method(#t53{self::Class1}), new self::Class1::•());
   let final self::Class1? #t54 = n1 in #t54 == null ?{self::Class1?} null : self::Extension1|nonNullable1Method(self::Extension1|nonNullable1Method(#t54{self::Class1}));
   let final self::Class1? #t55 = n1 in #t55 == null ?{self::Class1?} null : self::Extension1|get#nullable1(self::Extension1|get#nonNullable1(self::Extension1|get#nonNullable1(#t55{self::Class1})));
-  let final self::Class1? #t56 = n1 in #t56 == null ?{void} null : self::Extension1|set#nullable1(self::Extension1|get#nonNullable1(self::Extension1|get#nonNullable1(#t56{self::Class1})), new self::Class1::•());
+  let final self::Class1? #t56 = n1 in #t56 == null ?{self::Class1?} null : self::Extension1|set#nullable1(self::Extension1|get#nonNullable1(self::Extension1|get#nonNullable1(#t56{self::Class1})), new self::Class1::•());
   nullable1 = let final self::Class1? #t57 = n1 in #t57 == null ?{self::Class1?} null : let final self::Class1 #t58 = new self::Class1::•() in let final void #t59 = self::Extension1|set#nullable1(self::Extension1|get#nonNullable1(self::Extension1|get#nonNullable1(#t57{self::Class1})), #t58) in #t58;
   let final self::Class1? #t60 = n1 in #t60 == null ?{self::Class1?} null : let final self::Class1? #t61 = self::Extension1|get#nullable1(self::Extension1|get#nonNullable1(#t60{self::Class1})) in #t61 == null ?{self::Class1?} null : self::Extension1|nonNullable1Method(#t61{self::Class1});
-  let final self::Class1? #t62 = n1 in #t62 == null ?{void} null : self::Extension1|set#nullable1(#t62{self::Class1}, self::Extension1|get#nullable1(self::Extension1|get#nonNullable1(new self::Class1::•())));
+  let final self::Class1? #t62 = n1 in #t62 == null ?{self::Class1?} null : self::Extension1|set#nullable1(#t62{self::Class1}, self::Extension1|get#nullable1(self::Extension1|get#nonNullable1(new self::Class1::•())));
   nullable1 = let final self::Class1? #t63 = n1 in #t63 == null ?{self::Class1?} null : let final self::Class1? #t64 = self::Extension1|get#nullable1(self::Extension1|get#nonNullable1(new self::Class1::•())) in let final void #t65 = self::Extension1|set#nullable1(#t63{self::Class1}, #t64) in #t64;
-  let final self::Class1? #t66 = n1 in #t66 == null ?{void} null : self::Extension1|set#nullable1(#t66{self::Class1}, let final self::Class1 #t67 = new self::Class1::•() in let final void #t68 = self::Extension1|set#nullable1(self::Extension1|get#nonNullable1(new self::Class1::•()), #t67) in #t67);
+  let final self::Class1? #t66 = n1 in #t66 == null ?{self::Class1?} null : self::Extension1|set#nullable1(#t66{self::Class1}, let final self::Class1 #t67 = new self::Class1::•() in let final void #t68 = self::Extension1|set#nullable1(self::Extension1|get#nonNullable1(new self::Class1::•()), #t67) in #t67);
   nullable1 = let final self::Class1? #t69 = n1 in #t69 == null ?{self::Class1?} null : let final self::Class1 #t70 = let final self::Class1 #t71 = new self::Class1::•() in let final void #t72 = self::Extension1|set#nullable1(self::Extension1|get#nonNullable1(new self::Class1::•()), #t71) in #t71 in let final void #t73 = self::Extension1|set#nullable1(#t69{self::Class1}, #t70) in #t70;
-  let final self::Class1? #t74 = n1 in #t74 == null ?{void} null : self::Extension1|set#nullable1(#t74{self::Class1}, self::Extension1|nonNullable1Method(self::Extension1|get#nonNullable1(new self::Class1::•())));
+  let final self::Class1? #t74 = n1 in #t74 == null ?{self::Class1?} null : self::Extension1|set#nullable1(#t74{self::Class1}, self::Extension1|nonNullable1Method(self::Extension1|get#nonNullable1(new self::Class1::•())));
   nullable1 = let final self::Class1? #t75 = n1 in #t75 == null ?{self::Class1?} null : let final self::Class1 #t76 = self::Extension1|nonNullable1Method(self::Extension1|get#nonNullable1(new self::Class1::•())) in let final void #t77 = self::Extension1|set#nullable1(#t75{self::Class1}, #t76) in #t76;
   let final self::Class1? #t78 = n1 in #t78 == null ?{self::Class1?} null : self::Extension1|get#nullable1(self::Extension1|get#nonNullable1(self::Extension1|nonNullable1Method(#t78{self::Class1})));
-  let final self::Class1? #t79 = n1 in #t79 == null ?{void} null : self::Extension1|set#nullable1(self::Extension1|get#nonNullable1(self::Extension1|nonNullable1Method(#t79{self::Class1})), new self::Class1::•());
+  let final self::Class1? #t79 = n1 in #t79 == null ?{self::Class1?} null : self::Extension1|set#nullable1(self::Extension1|get#nonNullable1(self::Extension1|nonNullable1Method(#t79{self::Class1})), new self::Class1::•());
   let final self::Class1? #t80 = n1 in #t80 == null ?{self::Class1?} null : self::Extension1|nonNullable1Method(self::Extension1|get#nonNullable1(self::Extension1|nonNullable1Method(#t80{self::Class1})));
-  let final self::Class1? #t81 = n1 in #t81 == null ?{void} null : self::Extension1|set#nullable1(self::Extension1|get#nonNullable1(#t81{self::Class1}), self::Extension1|get#nullable1(new self::Class1::•()));
+  let final self::Class1? #t81 = n1 in #t81 == null ?{self::Class1?} null : self::Extension1|set#nullable1(self::Extension1|get#nonNullable1(#t81{self::Class1}), self::Extension1|get#nullable1(new self::Class1::•()));
   nullable1 = let final self::Class1? #t82 = n1 in #t82 == null ?{self::Class1?} null : let final self::Class1? #t83 = self::Extension1|get#nullable1(new self::Class1::•()) in let final void #t84 = self::Extension1|set#nullable1(self::Extension1|get#nonNullable1(#t82{self::Class1}), #t83) in #t83;
-  let final self::Class1? #t85 = n1 in #t85 == null ?{void} null : self::Extension1|set#nullable1(self::Extension1|get#nonNullable1(#t85{self::Class1}), let final self::Class1 #t86 = new self::Class1::•() in let final void #t87 = self::Extension1|set#nullable1(new self::Class1::•(), #t86) in #t86);
+  let final self::Class1? #t85 = n1 in #t85 == null ?{self::Class1?} null : self::Extension1|set#nullable1(self::Extension1|get#nonNullable1(#t85{self::Class1}), let final self::Class1 #t86 = new self::Class1::•() in let final void #t87 = self::Extension1|set#nullable1(new self::Class1::•(), #t86) in #t86);
   nullable1 = let final self::Class1? #t88 = n1 in #t88 == null ?{self::Class1?} null : let final self::Class1 #t89 = let final self::Class1 #t90 = new self::Class1::•() in let final void #t91 = self::Extension1|set#nullable1(new self::Class1::•(), #t90) in #t90 in let final void #t92 = self::Extension1|set#nullable1(self::Extension1|get#nonNullable1(#t88{self::Class1}), #t89) in #t89;
-  let final self::Class1? #t93 = n1 in #t93 == null ?{void} null : self::Extension1|set#nullable1(self::Extension1|get#nonNullable1(#t93{self::Class1}), self::Extension1|nonNullable1Method(new self::Class1::•()));
+  let final self::Class1? #t93 = n1 in #t93 == null ?{self::Class1?} null : self::Extension1|set#nullable1(self::Extension1|get#nonNullable1(#t93{self::Class1}), self::Extension1|nonNullable1Method(new self::Class1::•()));
   nullable1 = let final self::Class1? #t94 = n1 in #t94 == null ?{self::Class1?} null : let final self::Class1 #t95 = self::Extension1|nonNullable1Method(new self::Class1::•()) in let final void #t96 = self::Extension1|set#nullable1(self::Extension1|get#nonNullable1(#t94{self::Class1}), #t95) in #t95;
-  let final self::Class1? #t97 = n1 in #t97 == null ?{void} null : self::Extension1|set#nullable1(#t97{self::Class1}, let final self::Class1? #t98 = self::Extension1|get#nullable1(new self::Class1::•()) in let final void #t99 = self::Extension1|set#nullable1(new self::Class1::•(), #t98) in #t98);
+  let final self::Class1? #t97 = n1 in #t97 == null ?{self::Class1?} null : self::Extension1|set#nullable1(#t97{self::Class1}, let final self::Class1? #t98 = self::Extension1|get#nullable1(new self::Class1::•()) in let final void #t99 = self::Extension1|set#nullable1(new self::Class1::•(), #t98) in #t98);
   nullable1 = let final self::Class1? #t100 = n1 in #t100 == null ?{self::Class1?} null : let final self::Class1? #t101 = let final self::Class1? #t102 = self::Extension1|get#nullable1(new self::Class1::•()) in let final void #t103 = self::Extension1|set#nullable1(new self::Class1::•(), #t102) in #t102 in let final void #t104 = self::Extension1|set#nullable1(#t100{self::Class1}, #t101) in #t101;
-  let final self::Class1? #t105 = n1 in #t105 == null ?{void} null : self::Extension1|set#nullable1(#t105{self::Class1}, let final self::Class1 #t106 = let final self::Class1 #t107 = new self::Class1::•() in let final void #t108 = self::Extension1|set#nullable1(new self::Class1::•(), #t107) in #t107 in let final void #t109 = self::Extension1|set#nullable1(new self::Class1::•(), #t106) in #t106);
+  let final self::Class1? #t105 = n1 in #t105 == null ?{self::Class1?} null : self::Extension1|set#nullable1(#t105{self::Class1}, let final self::Class1 #t106 = let final self::Class1 #t107 = new self::Class1::•() in let final void #t108 = self::Extension1|set#nullable1(new self::Class1::•(), #t107) in #t107 in let final void #t109 = self::Extension1|set#nullable1(new self::Class1::•(), #t106) in #t106);
   nullable1 = let final self::Class1? #t110 = n1 in #t110 == null ?{self::Class1?} null : let final self::Class1 #t111 = let final self::Class1 #t112 = let final self::Class1 #t113 = new self::Class1::•() in let final void #t114 = self::Extension1|set#nullable1(new self::Class1::•(), #t113) in #t113 in let final void #t115 = self::Extension1|set#nullable1(new self::Class1::•(), #t112) in #t112 in let final void #t116 = self::Extension1|set#nullable1(#t110{self::Class1}, #t111) in #t111;
-  let final self::Class1? #t117 = n1 in #t117 == null ?{void} null : self::Extension1|set#nullable1(#t117{self::Class1}, let final self::Class1 #t118 = self::Extension1|nonNullable1Method(new self::Class1::•()) in let final void #t119 = self::Extension1|set#nullable1(new self::Class1::•(), #t118) in #t118);
+  let final self::Class1? #t117 = n1 in #t117 == null ?{self::Class1?} null : self::Extension1|set#nullable1(#t117{self::Class1}, let final self::Class1 #t118 = self::Extension1|nonNullable1Method(new self::Class1::•()) in let final void #t119 = self::Extension1|set#nullable1(new self::Class1::•(), #t118) in #t118);
   nullable1 = let final self::Class1? #t120 = n1 in #t120 == null ?{self::Class1?} null : let final self::Class1 #t121 = let final self::Class1 #t122 = self::Extension1|nonNullable1Method(new self::Class1::•()) in let final void #t123 = self::Extension1|set#nullable1(new self::Class1::•(), #t122) in #t122 in let final void #t124 = self::Extension1|set#nullable1(#t120{self::Class1}, #t121) in #t121;
-  let final self::Class1? #t125 = n1 in #t125 == null ?{void} null : self::Extension1|set#nullable1(self::Extension1|nonNullable1Method(#t125{self::Class1}), self::Extension1|get#nullable1(new self::Class1::•()));
+  let final self::Class1? #t125 = n1 in #t125 == null ?{self::Class1?} null : self::Extension1|set#nullable1(self::Extension1|nonNullable1Method(#t125{self::Class1}), self::Extension1|get#nullable1(new self::Class1::•()));
   nullable1 = let final self::Class1? #t126 = n1 in #t126 == null ?{self::Class1?} null : let final self::Class1? #t127 = self::Extension1|get#nullable1(new self::Class1::•()) in let final void #t128 = self::Extension1|set#nullable1(self::Extension1|nonNullable1Method(#t126{self::Class1}), #t127) in #t127;
-  let final self::Class1? #t129 = n1 in #t129 == null ?{void} null : self::Extension1|set#nullable1(self::Extension1|nonNullable1Method(#t129{self::Class1}), let final self::Class1 #t130 = new self::Class1::•() in let final void #t131 = self::Extension1|set#nullable1(new self::Class1::•(), #t130) in #t130);
+  let final self::Class1? #t129 = n1 in #t129 == null ?{self::Class1?} null : self::Extension1|set#nullable1(self::Extension1|nonNullable1Method(#t129{self::Class1}), let final self::Class1 #t130 = new self::Class1::•() in let final void #t131 = self::Extension1|set#nullable1(new self::Class1::•(), #t130) in #t130);
   nullable1 = let final self::Class1? #t132 = n1 in #t132 == null ?{self::Class1?} null : let final self::Class1 #t133 = let final self::Class1 #t134 = new self::Class1::•() in let final void #t135 = self::Extension1|set#nullable1(new self::Class1::•(), #t134) in #t134 in let final void #t136 = self::Extension1|set#nullable1(self::Extension1|nonNullable1Method(#t132{self::Class1}), #t133) in #t133;
-  let final self::Class1? #t137 = n1 in #t137 == null ?{void} null : self::Extension1|set#nullable1(self::Extension1|nonNullable1Method(#t137{self::Class1}), self::Extension1|nonNullable1Method(new self::Class1::•()));
+  let final self::Class1? #t137 = n1 in #t137 == null ?{self::Class1?} null : self::Extension1|set#nullable1(self::Extension1|nonNullable1Method(#t137{self::Class1}), self::Extension1|nonNullable1Method(new self::Class1::•()));
   nullable1 = let final self::Class1? #t138 = n1 in #t138 == null ?{self::Class1?} null : let final self::Class1 #t139 = self::Extension1|nonNullable1Method(new self::Class1::•()) in let final void #t140 = self::Extension1|set#nullable1(self::Extension1|nonNullable1Method(#t138{self::Class1}), #t139) in #t139;
   let final self::Class1? #t141 = n1 in #t141 == null ?{self::Class1?} null : self::Extension1|get#nullable1(self::Extension1|nonNullable1Method(self::Extension1|get#nonNullable1(#t141{self::Class1})));
-  let final self::Class1? #t142 = n1 in #t142 == null ?{void} null : self::Extension1|set#nullable1(self::Extension1|nonNullable1Method(self::Extension1|get#nonNullable1(#t142{self::Class1})), new self::Class1::•());
+  let final self::Class1? #t142 = n1 in #t142 == null ?{self::Class1?} null : self::Extension1|set#nullable1(self::Extension1|nonNullable1Method(self::Extension1|get#nonNullable1(#t142{self::Class1})), new self::Class1::•());
   nullable1 = let final self::Class1? #t143 = n1 in #t143 == null ?{self::Class1?} null : let final self::Class1 #t144 = new self::Class1::•() in let final void #t145 = self::Extension1|set#nullable1(self::Extension1|nonNullable1Method(self::Extension1|get#nonNullable1(#t143{self::Class1})), #t144) in #t144;
   let final self::Class1? #t146 = n1 in #t146 == null ?{self::Class1?} null : self::Extension1|nonNullable1Method(self::Extension1|nonNullable1Method(self::Extension1|get#nonNullable1(#t146{self::Class1})));
-  let final self::Class1? #t147 = n1 in #t147 == null ?{void} null : self::Extension1|set#nullable1(#t147{self::Class1}, self::Extension1|get#nullable1(self::Extension1|nonNullable1Method(new self::Class1::•())));
+  let final self::Class1? #t147 = n1 in #t147 == null ?{self::Class1?} null : self::Extension1|set#nullable1(#t147{self::Class1}, self::Extension1|get#nullable1(self::Extension1|nonNullable1Method(new self::Class1::•())));
   nullable1 = let final self::Class1? #t148 = n1 in #t148 == null ?{self::Class1?} null : let final self::Class1? #t149 = self::Extension1|get#nullable1(self::Extension1|nonNullable1Method(new self::Class1::•())) in let final void #t150 = self::Extension1|set#nullable1(#t148{self::Class1}, #t149) in #t149;
-  let final self::Class1? #t151 = n1 in #t151 == null ?{void} null : self::Extension1|set#nullable1(#t151{self::Class1}, let final self::Class1 #t152 = new self::Class1::•() in let final void #t153 = self::Extension1|set#nullable1(self::Extension1|nonNullable1Method(new self::Class1::•()), #t152) in #t152);
+  let final self::Class1? #t151 = n1 in #t151 == null ?{self::Class1?} null : self::Extension1|set#nullable1(#t151{self::Class1}, let final self::Class1 #t152 = new self::Class1::•() in let final void #t153 = self::Extension1|set#nullable1(self::Extension1|nonNullable1Method(new self::Class1::•()), #t152) in #t152);
   nullable1 = let final self::Class1? #t154 = n1 in #t154 == null ?{self::Class1?} null : let final self::Class1 #t155 = let final self::Class1 #t156 = new self::Class1::•() in let final void #t157 = self::Extension1|set#nullable1(self::Extension1|nonNullable1Method(new self::Class1::•()), #t156) in #t156 in let final void #t158 = self::Extension1|set#nullable1(#t154{self::Class1}, #t155) in #t155;
-  let final self::Class1? #t159 = n1 in #t159 == null ?{void} null : self::Extension1|set#nullable1(#t159{self::Class1}, self::Extension1|nonNullable1Method(self::Extension1|nonNullable1Method(new self::Class1::•())));
+  let final self::Class1? #t159 = n1 in #t159 == null ?{self::Class1?} null : self::Extension1|set#nullable1(#t159{self::Class1}, self::Extension1|nonNullable1Method(self::Extension1|nonNullable1Method(new self::Class1::•())));
   nullable1 = let final self::Class1? #t160 = n1 in #t160 == null ?{self::Class1?} null : let final self::Class1 #t161 = self::Extension1|nonNullable1Method(self::Extension1|nonNullable1Method(new self::Class1::•())) in let final void #t162 = self::Extension1|set#nullable1(#t160{self::Class1}, #t161) in #t161;
   let final self::Class1? #t163 = n1 in #t163 == null ?{self::Class1?} null : self::Extension1|get#nullable1(self::Extension1|nonNullable1Method(self::Extension1|nonNullable1Method(#t163{self::Class1})));
-  let final self::Class1? #t164 = n1 in #t164 == null ?{void} null : self::Extension1|set#nullable1(self::Extension1|nonNullable1Method(self::Extension1|nonNullable1Method(#t164{self::Class1})), new self::Class1::•());
+  let final self::Class1? #t164 = n1 in #t164 == null ?{self::Class1?} null : self::Extension1|set#nullable1(self::Extension1|nonNullable1Method(self::Extension1|nonNullable1Method(#t164{self::Class1})), new self::Class1::•());
   let final self::Class1? #t165 = n1 in #t165 == null ?{self::Class1?} null : self::Extension1|nonNullable1Method(self::Extension1|nonNullable1Method(self::Extension1|nonNullable1Method(#t165{self::Class1})));
   let final self::Class1? #t166 = n1 in #t166 == null ?{self::Class1?} null : let final self::Class1? #t167 = self::Extension1|nonNullable1Method(#t166{self::Class1}) in #t167 == null ?{self::Class1?} null : self::Extension1|nonNullable1Method(#t167{self::Class1});
 }
diff --git a/pkg/front_end/testcases/nnbd/null_shorting_extension.dart.weak.modular.expect b/pkg/front_end/testcases/nnbd/null_shorting_extension.dart.weak.modular.expect
index 9bf4dcb..954b4c0 100644
--- a/pkg/front_end/testcases/nnbd/null_shorting_extension.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/nnbd/null_shorting_extension.dart.weak.modular.expect
@@ -2,18 +2,6 @@
 //
 // Problems in library:
 //
-// pkg/front_end/testcases/nnbd/null_shorting_extension.dart:82:7: Error: This expression has type 'void' and can't be used.
-//   n1?.nullable1 = new Class1();
-//       ^
-//
-// pkg/front_end/testcases/nnbd/null_shorting_extension.dart:90:18: Error: This expression has type 'void' and can't be used.
-//   n1?.nullable1?.nullable1 = new Class1();
-//                  ^
-//
-// pkg/front_end/testcases/nnbd/null_shorting_extension.dart:91:31: Error: This expression has type 'void' and can't be used.
-//   n1?.nonNullable1.nullable1?.nullable1 = new Class1();
-//                               ^
-//
 // pkg/front_end/testcases/nnbd/null_shorting_extension.dart:93:47: Error: Property 'nullable1' cannot be accessed on 'Class1?' because it is potentially null.
 //  - 'Class1' is from 'pkg/front_end/testcases/nnbd/null_shorting_extension.dart'.
 // Try accessing using ?. instead.
@@ -26,54 +14,6 @@
 //   throws(() => (n1?.nonNullable1Method()).nullable1);
 //                                           ^^^^^^^^^
 //
-// pkg/front_end/testcases/nnbd/null_shorting_extension.dart:99:7: Error: This expression has type 'void' and can't be used.
-//   n1?.nullable1 = new Class1().nullable1;
-//       ^
-//
-// pkg/front_end/testcases/nnbd/null_shorting_extension.dart:101:7: Error: This expression has type 'void' and can't be used.
-//   n1?.nullable1 = new Class1().nullable1 = new Class1();
-//       ^
-//
-// pkg/front_end/testcases/nnbd/null_shorting_extension.dart:103:7: Error: This expression has type 'void' and can't be used.
-//   n1?.nullable1 = new Class1().nonNullable1Method();
-//       ^
-//
-// pkg/front_end/testcases/nnbd/null_shorting_extension.dart:113:7: Error: This expression has type 'void' and can't be used.
-//   n1?.nullable1 = new Class1().nonNullable1.nullable1;
-//       ^
-//
-// pkg/front_end/testcases/nnbd/null_shorting_extension.dart:115:7: Error: This expression has type 'void' and can't be used.
-//   n1?.nullable1 = new Class1().nonNullable1.nullable1 = new Class1();
-//       ^
-//
-// pkg/front_end/testcases/nnbd/null_shorting_extension.dart:118:7: Error: This expression has type 'void' and can't be used.
-//   n1?.nullable1 = new Class1().nonNullable1.nonNullable1Method();
-//       ^
-//
-// pkg/front_end/testcases/nnbd/null_shorting_extension.dart:131:7: Error: This expression has type 'void' and can't be used.
-//   n1?.nullable1 = new Class1().nullable1 = new Class1().nullable1;
-//       ^
-//
-// pkg/front_end/testcases/nnbd/null_shorting_extension.dart:133:7: Error: This expression has type 'void' and can't be used.
-//   n1?.nullable1 =
-//       ^
-//
-// pkg/front_end/testcases/nnbd/null_shorting_extension.dart:137:7: Error: This expression has type 'void' and can't be used.
-//   n1?.nullable1 = new Class1().nullable1 = new Class1().nonNullable1Method();
-//       ^
-//
-// pkg/front_end/testcases/nnbd/null_shorting_extension.dart:153:7: Error: This expression has type 'void' and can't be used.
-//   n1?.nullable1 = new Class1().nonNullable1Method().nullable1;
-//       ^
-//
-// pkg/front_end/testcases/nnbd/null_shorting_extension.dart:155:7: Error: This expression has type 'void' and can't be used.
-//   n1?.nullable1 = new Class1().nonNullable1Method().nullable1 = new Class1();
-//       ^
-//
-// pkg/front_end/testcases/nnbd/null_shorting_extension.dart:158:7: Error: This expression has type 'void' and can't be used.
-//   n1?.nullable1 = new Class1().nonNullable1Method().nonNullable1Method();
-//       ^
-//
 // pkg/front_end/testcases/nnbd/null_shorting_extension.dart:226:33: Error: Operator '+' cannot be called on 'Class1?' because it is potentially null.
 //  - 'Class1' is from 'pkg/front_end/testcases/nnbd/null_shorting_extension.dart'.
 //   throws(() => n1?.nonNullable1 + 0);
@@ -189,15 +129,15 @@
 static method propertyAccess(self::Class1? n1) → void {
   self::Class1? nullable1 = n1;
   let final self::Class1? #t1 = n1 in #t1 == null ?{self::Class1?} null : self::Extension1|get#nullable1(#t1{self::Class1});
-  let final self::Class1? #t2 = n1 in #t2 == null ?{void} null : self::Extension1|set#nullable1(#t2{self::Class1}, new self::Class1::•());
+  let final self::Class1? #t2 = n1 in #t2 == null ?{self::Class1?} null : self::Extension1|set#nullable1(#t2{self::Class1}, new self::Class1::•());
   nullable1 = let final self::Class1? #t3 = n1 in #t3 == null ?{self::Class1?} null : let final self::Class1 #t4 = new self::Class1::•() in let final void #t5 = self::Extension1|set#nullable1(#t3{self::Class1}, #t4) in #t4;
   let final self::Class1? #t6 = n1 in #t6 == null ?{self::Class1?} null : self::Extension1|nonNullable1Method(#t6{self::Class1});
   let final self::Class1? #t7 = n1 in #t7 == null ?{self::Class1?} null : self::Extension1|get#nullable1(self::Extension1|get#nonNullable1(#t7{self::Class1}));
   let final self::Class1? #t8 = n1 in #t8 == null ?{self::Class1?} null : let final self::Class1? #t9 = self::Extension1|get#nullable1(#t8{self::Class1}) in #t9 == null ?{self::Class1?} null : self::Extension1|get#nullable1(#t9{self::Class1});
   let final self::Class1? #t10 = n1 in #t10 == null ?{self::Class1?} null : let final self::Class1? #t11 = self::Extension1|get#nullable1(self::Extension1|get#nonNullable1(#t10{self::Class1})) in #t11 == null ?{self::Class1?} null : self::Extension1|get#nullable1(#t11{self::Class1});
-  let final self::Class1? #t12 = n1 in #t12 == null ?{void} null : self::Extension1|set#nullable1(self::Extension1|get#nonNullable1(#t12{self::Class1}), new self::Class1::•());
-  let final self::Class1? #t13 = n1 in #t13 == null ?{void} null : let final self::Class1? #t14 = self::Extension1|get#nullable1(#t13{self::Class1}) in #t14 == null ?{void} null : self::Extension1|set#nullable1(#t14{self::Class1}, new self::Class1::•());
-  let final self::Class1? #t15 = n1 in #t15 == null ?{void} null : let final self::Class1? #t16 = self::Extension1|get#nullable1(self::Extension1|get#nonNullable1(#t15{self::Class1})) in #t16 == null ?{void} null : self::Extension1|set#nullable1(#t16{self::Class1}, new self::Class1::•());
+  let final self::Class1? #t12 = n1 in #t12 == null ?{self::Class1?} null : self::Extension1|set#nullable1(self::Extension1|get#nonNullable1(#t12{self::Class1}), new self::Class1::•());
+  let final self::Class1? #t13 = n1 in #t13 == null ?{self::Class1?} null : let final self::Class1? #t14 = self::Extension1|get#nullable1(#t13{self::Class1}) in #t14 == null ?{self::Class1?} null : self::Extension1|set#nullable1(#t14{self::Class1}, new self::Class1::•());
+  let final self::Class1? #t15 = n1 in #t15 == null ?{self::Class1?} null : let final self::Class1? #t16 = self::Extension1|get#nullable1(self::Extension1|get#nonNullable1(#t15{self::Class1})) in #t16 == null ?{self::Class1?} null : self::Extension1|set#nullable1(#t16{self::Class1}, new self::Class1::•());
   let final self::Class1? #t17 = let final self::Class1? #t18 = n1 in #t18 == null ?{self::Class1?} null : self::Extension1|get#nullable1(#t18{self::Class1}) in #t17 == null ?{self::Class1?} null : self::Extension1|get#nullable1(#t17{self::Class1});
   self::throws(() → void => invalid-expression "pkg/front_end/testcases/nnbd/null_shorting_extension.dart:93:47: Error: Property 'nullable1' cannot be accessed on 'Class1?' because it is potentially null.
  - 'Class1' is from 'pkg/front_end/testcases/nnbd/null_shorting_extension.dart'.
@@ -213,58 +153,58 @@
   nullable1 = let final self::Class1? #t26 = n1 in #t26 == null ?{self::Class1?} null : let final self::Class1? #t27 = self::Extension1|get#nullable1(#t26{self::Class1}) in #t27 == null ?{self::Class1?} null : let final self::Class1 #t28 = new self::Class1::•() in let final void #t29 = self::Extension1|set#nullable1(#t27{self::Class1}, #t28) in #t28;
   nullable1 = let final self::Class1? #t30 = n1 in #t30 == null ?{self::Class1?} null : let final self::Class1? #t31 = self::Extension1|get#nullable1(self::Extension1|get#nonNullable1(#t30{self::Class1})) in #t31 == null ?{self::Class1?} null : let final self::Class1 #t32 = new self::Class1::•() in let final void #t33 = self::Extension1|set#nullable1(#t31{self::Class1}, #t32) in #t32;
   let final self::Class1? #t34 = n1 in #t34 == null ?{self::Class1?} null : let final self::Class1? #t35 = self::Extension1|get#nullable1(#t34{self::Class1}) in #t35 == null ?{self::Class1?} null : self::Extension1|nonNullable1Method(#t35{self::Class1});
-  let final self::Class1? #t36 = n1 in #t36 == null ?{void} null : self::Extension1|set#nullable1(#t36{self::Class1}, self::Extension1|get#nullable1(new self::Class1::•()));
+  let final self::Class1? #t36 = n1 in #t36 == null ?{self::Class1?} null : self::Extension1|set#nullable1(#t36{self::Class1}, self::Extension1|get#nullable1(new self::Class1::•()));
   nullable1 = let final self::Class1? #t37 = n1 in #t37 == null ?{self::Class1?} null : let final self::Class1? #t38 = self::Extension1|get#nullable1(new self::Class1::•()) in let final void #t39 = self::Extension1|set#nullable1(#t37{self::Class1}, #t38) in #t38;
-  let final self::Class1? #t40 = n1 in #t40 == null ?{void} null : self::Extension1|set#nullable1(#t40{self::Class1}, let final self::Class1 #t41 = new self::Class1::•() in let final void #t42 = self::Extension1|set#nullable1(new self::Class1::•(), #t41) in #t41);
+  let final self::Class1? #t40 = n1 in #t40 == null ?{self::Class1?} null : self::Extension1|set#nullable1(#t40{self::Class1}, let final self::Class1 #t41 = new self::Class1::•() in let final void #t42 = self::Extension1|set#nullable1(new self::Class1::•(), #t41) in #t41);
   nullable1 = let final self::Class1? #t43 = n1 in #t43 == null ?{self::Class1?} null : let final self::Class1 #t44 = let final self::Class1 #t45 = new self::Class1::•() in let final void #t46 = self::Extension1|set#nullable1(new self::Class1::•(), #t45) in #t45 in let final void #t47 = self::Extension1|set#nullable1(#t43{self::Class1}, #t44) in #t44;
-  let final self::Class1? #t48 = n1 in #t48 == null ?{void} null : self::Extension1|set#nullable1(#t48{self::Class1}, self::Extension1|nonNullable1Method(new self::Class1::•()));
+  let final self::Class1? #t48 = n1 in #t48 == null ?{self::Class1?} null : self::Extension1|set#nullable1(#t48{self::Class1}, self::Extension1|nonNullable1Method(new self::Class1::•()));
   nullable1 = let final self::Class1? #t49 = n1 in #t49 == null ?{self::Class1?} null : let final self::Class1 #t50 = self::Extension1|nonNullable1Method(new self::Class1::•()) in let final void #t51 = self::Extension1|set#nullable1(#t49{self::Class1}, #t50) in #t50;
   let final self::Class1? #t52 = n1 in #t52 == null ?{self::Class1?} null : self::Extension1|get#nullable1(self::Extension1|nonNullable1Method(#t52{self::Class1}));
-  let final self::Class1? #t53 = n1 in #t53 == null ?{void} null : self::Extension1|set#nullable1(self::Extension1|nonNullable1Method(#t53{self::Class1}), new self::Class1::•());
+  let final self::Class1? #t53 = n1 in #t53 == null ?{self::Class1?} null : self::Extension1|set#nullable1(self::Extension1|nonNullable1Method(#t53{self::Class1}), new self::Class1::•());
   let final self::Class1? #t54 = n1 in #t54 == null ?{self::Class1?} null : self::Extension1|nonNullable1Method(self::Extension1|nonNullable1Method(#t54{self::Class1}));
   let final self::Class1? #t55 = n1 in #t55 == null ?{self::Class1?} null : self::Extension1|get#nullable1(self::Extension1|get#nonNullable1(self::Extension1|get#nonNullable1(#t55{self::Class1})));
-  let final self::Class1? #t56 = n1 in #t56 == null ?{void} null : self::Extension1|set#nullable1(self::Extension1|get#nonNullable1(self::Extension1|get#nonNullable1(#t56{self::Class1})), new self::Class1::•());
+  let final self::Class1? #t56 = n1 in #t56 == null ?{self::Class1?} null : self::Extension1|set#nullable1(self::Extension1|get#nonNullable1(self::Extension1|get#nonNullable1(#t56{self::Class1})), new self::Class1::•());
   nullable1 = let final self::Class1? #t57 = n1 in #t57 == null ?{self::Class1?} null : let final self::Class1 #t58 = new self::Class1::•() in let final void #t59 = self::Extension1|set#nullable1(self::Extension1|get#nonNullable1(self::Extension1|get#nonNullable1(#t57{self::Class1})), #t58) in #t58;
   let final self::Class1? #t60 = n1 in #t60 == null ?{self::Class1?} null : let final self::Class1? #t61 = self::Extension1|get#nullable1(self::Extension1|get#nonNullable1(#t60{self::Class1})) in #t61 == null ?{self::Class1?} null : self::Extension1|nonNullable1Method(#t61{self::Class1});
-  let final self::Class1? #t62 = n1 in #t62 == null ?{void} null : self::Extension1|set#nullable1(#t62{self::Class1}, self::Extension1|get#nullable1(self::Extension1|get#nonNullable1(new self::Class1::•())));
+  let final self::Class1? #t62 = n1 in #t62 == null ?{self::Class1?} null : self::Extension1|set#nullable1(#t62{self::Class1}, self::Extension1|get#nullable1(self::Extension1|get#nonNullable1(new self::Class1::•())));
   nullable1 = let final self::Class1? #t63 = n1 in #t63 == null ?{self::Class1?} null : let final self::Class1? #t64 = self::Extension1|get#nullable1(self::Extension1|get#nonNullable1(new self::Class1::•())) in let final void #t65 = self::Extension1|set#nullable1(#t63{self::Class1}, #t64) in #t64;
-  let final self::Class1? #t66 = n1 in #t66 == null ?{void} null : self::Extension1|set#nullable1(#t66{self::Class1}, let final self::Class1 #t67 = new self::Class1::•() in let final void #t68 = self::Extension1|set#nullable1(self::Extension1|get#nonNullable1(new self::Class1::•()), #t67) in #t67);
+  let final self::Class1? #t66 = n1 in #t66 == null ?{self::Class1?} null : self::Extension1|set#nullable1(#t66{self::Class1}, let final self::Class1 #t67 = new self::Class1::•() in let final void #t68 = self::Extension1|set#nullable1(self::Extension1|get#nonNullable1(new self::Class1::•()), #t67) in #t67);
   nullable1 = let final self::Class1? #t69 = n1 in #t69 == null ?{self::Class1?} null : let final self::Class1 #t70 = let final self::Class1 #t71 = new self::Class1::•() in let final void #t72 = self::Extension1|set#nullable1(self::Extension1|get#nonNullable1(new self::Class1::•()), #t71) in #t71 in let final void #t73 = self::Extension1|set#nullable1(#t69{self::Class1}, #t70) in #t70;
-  let final self::Class1? #t74 = n1 in #t74 == null ?{void} null : self::Extension1|set#nullable1(#t74{self::Class1}, self::Extension1|nonNullable1Method(self::Extension1|get#nonNullable1(new self::Class1::•())));
+  let final self::Class1? #t74 = n1 in #t74 == null ?{self::Class1?} null : self::Extension1|set#nullable1(#t74{self::Class1}, self::Extension1|nonNullable1Method(self::Extension1|get#nonNullable1(new self::Class1::•())));
   nullable1 = let final self::Class1? #t75 = n1 in #t75 == null ?{self::Class1?} null : let final self::Class1 #t76 = self::Extension1|nonNullable1Method(self::Extension1|get#nonNullable1(new self::Class1::•())) in let final void #t77 = self::Extension1|set#nullable1(#t75{self::Class1}, #t76) in #t76;
   let final self::Class1? #t78 = n1 in #t78 == null ?{self::Class1?} null : self::Extension1|get#nullable1(self::Extension1|get#nonNullable1(self::Extension1|nonNullable1Method(#t78{self::Class1})));
-  let final self::Class1? #t79 = n1 in #t79 == null ?{void} null : self::Extension1|set#nullable1(self::Extension1|get#nonNullable1(self::Extension1|nonNullable1Method(#t79{self::Class1})), new self::Class1::•());
+  let final self::Class1? #t79 = n1 in #t79 == null ?{self::Class1?} null : self::Extension1|set#nullable1(self::Extension1|get#nonNullable1(self::Extension1|nonNullable1Method(#t79{self::Class1})), new self::Class1::•());
   let final self::Class1? #t80 = n1 in #t80 == null ?{self::Class1?} null : self::Extension1|nonNullable1Method(self::Extension1|get#nonNullable1(self::Extension1|nonNullable1Method(#t80{self::Class1})));
-  let final self::Class1? #t81 = n1 in #t81 == null ?{void} null : self::Extension1|set#nullable1(self::Extension1|get#nonNullable1(#t81{self::Class1}), self::Extension1|get#nullable1(new self::Class1::•()));
+  let final self::Class1? #t81 = n1 in #t81 == null ?{self::Class1?} null : self::Extension1|set#nullable1(self::Extension1|get#nonNullable1(#t81{self::Class1}), self::Extension1|get#nullable1(new self::Class1::•()));
   nullable1 = let final self::Class1? #t82 = n1 in #t82 == null ?{self::Class1?} null : let final self::Class1? #t83 = self::Extension1|get#nullable1(new self::Class1::•()) in let final void #t84 = self::Extension1|set#nullable1(self::Extension1|get#nonNullable1(#t82{self::Class1}), #t83) in #t83;
-  let final self::Class1? #t85 = n1 in #t85 == null ?{void} null : self::Extension1|set#nullable1(self::Extension1|get#nonNullable1(#t85{self::Class1}), let final self::Class1 #t86 = new self::Class1::•() in let final void #t87 = self::Extension1|set#nullable1(new self::Class1::•(), #t86) in #t86);
+  let final self::Class1? #t85 = n1 in #t85 == null ?{self::Class1?} null : self::Extension1|set#nullable1(self::Extension1|get#nonNullable1(#t85{self::Class1}), let final self::Class1 #t86 = new self::Class1::•() in let final void #t87 = self::Extension1|set#nullable1(new self::Class1::•(), #t86) in #t86);
   nullable1 = let final self::Class1? #t88 = n1 in #t88 == null ?{self::Class1?} null : let final self::Class1 #t89 = let final self::Class1 #t90 = new self::Class1::•() in let final void #t91 = self::Extension1|set#nullable1(new self::Class1::•(), #t90) in #t90 in let final void #t92 = self::Extension1|set#nullable1(self::Extension1|get#nonNullable1(#t88{self::Class1}), #t89) in #t89;
-  let final self::Class1? #t93 = n1 in #t93 == null ?{void} null : self::Extension1|set#nullable1(self::Extension1|get#nonNullable1(#t93{self::Class1}), self::Extension1|nonNullable1Method(new self::Class1::•()));
+  let final self::Class1? #t93 = n1 in #t93 == null ?{self::Class1?} null : self::Extension1|set#nullable1(self::Extension1|get#nonNullable1(#t93{self::Class1}), self::Extension1|nonNullable1Method(new self::Class1::•()));
   nullable1 = let final self::Class1? #t94 = n1 in #t94 == null ?{self::Class1?} null : let final self::Class1 #t95 = self::Extension1|nonNullable1Method(new self::Class1::•()) in let final void #t96 = self::Extension1|set#nullable1(self::Extension1|get#nonNullable1(#t94{self::Class1}), #t95) in #t95;
-  let final self::Class1? #t97 = n1 in #t97 == null ?{void} null : self::Extension1|set#nullable1(#t97{self::Class1}, let final self::Class1? #t98 = self::Extension1|get#nullable1(new self::Class1::•()) in let final void #t99 = self::Extension1|set#nullable1(new self::Class1::•(), #t98) in #t98);
+  let final self::Class1? #t97 = n1 in #t97 == null ?{self::Class1?} null : self::Extension1|set#nullable1(#t97{self::Class1}, let final self::Class1? #t98 = self::Extension1|get#nullable1(new self::Class1::•()) in let final void #t99 = self::Extension1|set#nullable1(new self::Class1::•(), #t98) in #t98);
   nullable1 = let final self::Class1? #t100 = n1 in #t100 == null ?{self::Class1?} null : let final self::Class1? #t101 = let final self::Class1? #t102 = self::Extension1|get#nullable1(new self::Class1::•()) in let final void #t103 = self::Extension1|set#nullable1(new self::Class1::•(), #t102) in #t102 in let final void #t104 = self::Extension1|set#nullable1(#t100{self::Class1}, #t101) in #t101;
-  let final self::Class1? #t105 = n1 in #t105 == null ?{void} null : self::Extension1|set#nullable1(#t105{self::Class1}, let final self::Class1 #t106 = let final self::Class1 #t107 = new self::Class1::•() in let final void #t108 = self::Extension1|set#nullable1(new self::Class1::•(), #t107) in #t107 in let final void #t109 = self::Extension1|set#nullable1(new self::Class1::•(), #t106) in #t106);
+  let final self::Class1? #t105 = n1 in #t105 == null ?{self::Class1?} null : self::Extension1|set#nullable1(#t105{self::Class1}, let final self::Class1 #t106 = let final self::Class1 #t107 = new self::Class1::•() in let final void #t108 = self::Extension1|set#nullable1(new self::Class1::•(), #t107) in #t107 in let final void #t109 = self::Extension1|set#nullable1(new self::Class1::•(), #t106) in #t106);
   nullable1 = let final self::Class1? #t110 = n1 in #t110 == null ?{self::Class1?} null : let final self::Class1 #t111 = let final self::Class1 #t112 = let final self::Class1 #t113 = new self::Class1::•() in let final void #t114 = self::Extension1|set#nullable1(new self::Class1::•(), #t113) in #t113 in let final void #t115 = self::Extension1|set#nullable1(new self::Class1::•(), #t112) in #t112 in let final void #t116 = self::Extension1|set#nullable1(#t110{self::Class1}, #t111) in #t111;
-  let final self::Class1? #t117 = n1 in #t117 == null ?{void} null : self::Extension1|set#nullable1(#t117{self::Class1}, let final self::Class1 #t118 = self::Extension1|nonNullable1Method(new self::Class1::•()) in let final void #t119 = self::Extension1|set#nullable1(new self::Class1::•(), #t118) in #t118);
+  let final self::Class1? #t117 = n1 in #t117 == null ?{self::Class1?} null : self::Extension1|set#nullable1(#t117{self::Class1}, let final self::Class1 #t118 = self::Extension1|nonNullable1Method(new self::Class1::•()) in let final void #t119 = self::Extension1|set#nullable1(new self::Class1::•(), #t118) in #t118);
   nullable1 = let final self::Class1? #t120 = n1 in #t120 == null ?{self::Class1?} null : let final self::Class1 #t121 = let final self::Class1 #t122 = self::Extension1|nonNullable1Method(new self::Class1::•()) in let final void #t123 = self::Extension1|set#nullable1(new self::Class1::•(), #t122) in #t122 in let final void #t124 = self::Extension1|set#nullable1(#t120{self::Class1}, #t121) in #t121;
-  let final self::Class1? #t125 = n1 in #t125 == null ?{void} null : self::Extension1|set#nullable1(self::Extension1|nonNullable1Method(#t125{self::Class1}), self::Extension1|get#nullable1(new self::Class1::•()));
+  let final self::Class1? #t125 = n1 in #t125 == null ?{self::Class1?} null : self::Extension1|set#nullable1(self::Extension1|nonNullable1Method(#t125{self::Class1}), self::Extension1|get#nullable1(new self::Class1::•()));
   nullable1 = let final self::Class1? #t126 = n1 in #t126 == null ?{self::Class1?} null : let final self::Class1? #t127 = self::Extension1|get#nullable1(new self::Class1::•()) in let final void #t128 = self::Extension1|set#nullable1(self::Extension1|nonNullable1Method(#t126{self::Class1}), #t127) in #t127;
-  let final self::Class1? #t129 = n1 in #t129 == null ?{void} null : self::Extension1|set#nullable1(self::Extension1|nonNullable1Method(#t129{self::Class1}), let final self::Class1 #t130 = new self::Class1::•() in let final void #t131 = self::Extension1|set#nullable1(new self::Class1::•(), #t130) in #t130);
+  let final self::Class1? #t129 = n1 in #t129 == null ?{self::Class1?} null : self::Extension1|set#nullable1(self::Extension1|nonNullable1Method(#t129{self::Class1}), let final self::Class1 #t130 = new self::Class1::•() in let final void #t131 = self::Extension1|set#nullable1(new self::Class1::•(), #t130) in #t130);
   nullable1 = let final self::Class1? #t132 = n1 in #t132 == null ?{self::Class1?} null : let final self::Class1 #t133 = let final self::Class1 #t134 = new self::Class1::•() in let final void #t135 = self::Extension1|set#nullable1(new self::Class1::•(), #t134) in #t134 in let final void #t136 = self::Extension1|set#nullable1(self::Extension1|nonNullable1Method(#t132{self::Class1}), #t133) in #t133;
-  let final self::Class1? #t137 = n1 in #t137 == null ?{void} null : self::Extension1|set#nullable1(self::Extension1|nonNullable1Method(#t137{self::Class1}), self::Extension1|nonNullable1Method(new self::Class1::•()));
+  let final self::Class1? #t137 = n1 in #t137 == null ?{self::Class1?} null : self::Extension1|set#nullable1(self::Extension1|nonNullable1Method(#t137{self::Class1}), self::Extension1|nonNullable1Method(new self::Class1::•()));
   nullable1 = let final self::Class1? #t138 = n1 in #t138 == null ?{self::Class1?} null : let final self::Class1 #t139 = self::Extension1|nonNullable1Method(new self::Class1::•()) in let final void #t140 = self::Extension1|set#nullable1(self::Extension1|nonNullable1Method(#t138{self::Class1}), #t139) in #t139;
   let final self::Class1? #t141 = n1 in #t141 == null ?{self::Class1?} null : self::Extension1|get#nullable1(self::Extension1|nonNullable1Method(self::Extension1|get#nonNullable1(#t141{self::Class1})));
-  let final self::Class1? #t142 = n1 in #t142 == null ?{void} null : self::Extension1|set#nullable1(self::Extension1|nonNullable1Method(self::Extension1|get#nonNullable1(#t142{self::Class1})), new self::Class1::•());
+  let final self::Class1? #t142 = n1 in #t142 == null ?{self::Class1?} null : self::Extension1|set#nullable1(self::Extension1|nonNullable1Method(self::Extension1|get#nonNullable1(#t142{self::Class1})), new self::Class1::•());
   nullable1 = let final self::Class1? #t143 = n1 in #t143 == null ?{self::Class1?} null : let final self::Class1 #t144 = new self::Class1::•() in let final void #t145 = self::Extension1|set#nullable1(self::Extension1|nonNullable1Method(self::Extension1|get#nonNullable1(#t143{self::Class1})), #t144) in #t144;
   let final self::Class1? #t146 = n1 in #t146 == null ?{self::Class1?} null : self::Extension1|nonNullable1Method(self::Extension1|nonNullable1Method(self::Extension1|get#nonNullable1(#t146{self::Class1})));
-  let final self::Class1? #t147 = n1 in #t147 == null ?{void} null : self::Extension1|set#nullable1(#t147{self::Class1}, self::Extension1|get#nullable1(self::Extension1|nonNullable1Method(new self::Class1::•())));
+  let final self::Class1? #t147 = n1 in #t147 == null ?{self::Class1?} null : self::Extension1|set#nullable1(#t147{self::Class1}, self::Extension1|get#nullable1(self::Extension1|nonNullable1Method(new self::Class1::•())));
   nullable1 = let final self::Class1? #t148 = n1 in #t148 == null ?{self::Class1?} null : let final self::Class1? #t149 = self::Extension1|get#nullable1(self::Extension1|nonNullable1Method(new self::Class1::•())) in let final void #t150 = self::Extension1|set#nullable1(#t148{self::Class1}, #t149) in #t149;
-  let final self::Class1? #t151 = n1 in #t151 == null ?{void} null : self::Extension1|set#nullable1(#t151{self::Class1}, let final self::Class1 #t152 = new self::Class1::•() in let final void #t153 = self::Extension1|set#nullable1(self::Extension1|nonNullable1Method(new self::Class1::•()), #t152) in #t152);
+  let final self::Class1? #t151 = n1 in #t151 == null ?{self::Class1?} null : self::Extension1|set#nullable1(#t151{self::Class1}, let final self::Class1 #t152 = new self::Class1::•() in let final void #t153 = self::Extension1|set#nullable1(self::Extension1|nonNullable1Method(new self::Class1::•()), #t152) in #t152);
   nullable1 = let final self::Class1? #t154 = n1 in #t154 == null ?{self::Class1?} null : let final self::Class1 #t155 = let final self::Class1 #t156 = new self::Class1::•() in let final void #t157 = self::Extension1|set#nullable1(self::Extension1|nonNullable1Method(new self::Class1::•()), #t156) in #t156 in let final void #t158 = self::Extension1|set#nullable1(#t154{self::Class1}, #t155) in #t155;
-  let final self::Class1? #t159 = n1 in #t159 == null ?{void} null : self::Extension1|set#nullable1(#t159{self::Class1}, self::Extension1|nonNullable1Method(self::Extension1|nonNullable1Method(new self::Class1::•())));
+  let final self::Class1? #t159 = n1 in #t159 == null ?{self::Class1?} null : self::Extension1|set#nullable1(#t159{self::Class1}, self::Extension1|nonNullable1Method(self::Extension1|nonNullable1Method(new self::Class1::•())));
   nullable1 = let final self::Class1? #t160 = n1 in #t160 == null ?{self::Class1?} null : let final self::Class1 #t161 = self::Extension1|nonNullable1Method(self::Extension1|nonNullable1Method(new self::Class1::•())) in let final void #t162 = self::Extension1|set#nullable1(#t160{self::Class1}, #t161) in #t161;
   let final self::Class1? #t163 = n1 in #t163 == null ?{self::Class1?} null : self::Extension1|get#nullable1(self::Extension1|nonNullable1Method(self::Extension1|nonNullable1Method(#t163{self::Class1})));
-  let final self::Class1? #t164 = n1 in #t164 == null ?{void} null : self::Extension1|set#nullable1(self::Extension1|nonNullable1Method(self::Extension1|nonNullable1Method(#t164{self::Class1})), new self::Class1::•());
+  let final self::Class1? #t164 = n1 in #t164 == null ?{self::Class1?} null : self::Extension1|set#nullable1(self::Extension1|nonNullable1Method(self::Extension1|nonNullable1Method(#t164{self::Class1})), new self::Class1::•());
   let final self::Class1? #t165 = n1 in #t165 == null ?{self::Class1?} null : self::Extension1|nonNullable1Method(self::Extension1|nonNullable1Method(self::Extension1|nonNullable1Method(#t165{self::Class1})));
   let final self::Class1? #t166 = n1 in #t166 == null ?{self::Class1?} null : let final self::Class1? #t167 = self::Extension1|nonNullable1Method(#t166{self::Class1}) in #t167 == null ?{self::Class1?} null : self::Extension1|nonNullable1Method(#t167{self::Class1});
 }
diff --git a/pkg/front_end/testcases/nnbd/null_shorting_extension.dart.weak.transformed.expect b/pkg/front_end/testcases/nnbd/null_shorting_extension.dart.weak.transformed.expect
index 9bf4dcb..954b4c0 100644
--- a/pkg/front_end/testcases/nnbd/null_shorting_extension.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/null_shorting_extension.dart.weak.transformed.expect
@@ -2,18 +2,6 @@
 //
 // Problems in library:
 //
-// pkg/front_end/testcases/nnbd/null_shorting_extension.dart:82:7: Error: This expression has type 'void' and can't be used.
-//   n1?.nullable1 = new Class1();
-//       ^
-//
-// pkg/front_end/testcases/nnbd/null_shorting_extension.dart:90:18: Error: This expression has type 'void' and can't be used.
-//   n1?.nullable1?.nullable1 = new Class1();
-//                  ^
-//
-// pkg/front_end/testcases/nnbd/null_shorting_extension.dart:91:31: Error: This expression has type 'void' and can't be used.
-//   n1?.nonNullable1.nullable1?.nullable1 = new Class1();
-//                               ^
-//
 // pkg/front_end/testcases/nnbd/null_shorting_extension.dart:93:47: Error: Property 'nullable1' cannot be accessed on 'Class1?' because it is potentially null.
 //  - 'Class1' is from 'pkg/front_end/testcases/nnbd/null_shorting_extension.dart'.
 // Try accessing using ?. instead.
@@ -26,54 +14,6 @@
 //   throws(() => (n1?.nonNullable1Method()).nullable1);
 //                                           ^^^^^^^^^
 //
-// pkg/front_end/testcases/nnbd/null_shorting_extension.dart:99:7: Error: This expression has type 'void' and can't be used.
-//   n1?.nullable1 = new Class1().nullable1;
-//       ^
-//
-// pkg/front_end/testcases/nnbd/null_shorting_extension.dart:101:7: Error: This expression has type 'void' and can't be used.
-//   n1?.nullable1 = new Class1().nullable1 = new Class1();
-//       ^
-//
-// pkg/front_end/testcases/nnbd/null_shorting_extension.dart:103:7: Error: This expression has type 'void' and can't be used.
-//   n1?.nullable1 = new Class1().nonNullable1Method();
-//       ^
-//
-// pkg/front_end/testcases/nnbd/null_shorting_extension.dart:113:7: Error: This expression has type 'void' and can't be used.
-//   n1?.nullable1 = new Class1().nonNullable1.nullable1;
-//       ^
-//
-// pkg/front_end/testcases/nnbd/null_shorting_extension.dart:115:7: Error: This expression has type 'void' and can't be used.
-//   n1?.nullable1 = new Class1().nonNullable1.nullable1 = new Class1();
-//       ^
-//
-// pkg/front_end/testcases/nnbd/null_shorting_extension.dart:118:7: Error: This expression has type 'void' and can't be used.
-//   n1?.nullable1 = new Class1().nonNullable1.nonNullable1Method();
-//       ^
-//
-// pkg/front_end/testcases/nnbd/null_shorting_extension.dart:131:7: Error: This expression has type 'void' and can't be used.
-//   n1?.nullable1 = new Class1().nullable1 = new Class1().nullable1;
-//       ^
-//
-// pkg/front_end/testcases/nnbd/null_shorting_extension.dart:133:7: Error: This expression has type 'void' and can't be used.
-//   n1?.nullable1 =
-//       ^
-//
-// pkg/front_end/testcases/nnbd/null_shorting_extension.dart:137:7: Error: This expression has type 'void' and can't be used.
-//   n1?.nullable1 = new Class1().nullable1 = new Class1().nonNullable1Method();
-//       ^
-//
-// pkg/front_end/testcases/nnbd/null_shorting_extension.dart:153:7: Error: This expression has type 'void' and can't be used.
-//   n1?.nullable1 = new Class1().nonNullable1Method().nullable1;
-//       ^
-//
-// pkg/front_end/testcases/nnbd/null_shorting_extension.dart:155:7: Error: This expression has type 'void' and can't be used.
-//   n1?.nullable1 = new Class1().nonNullable1Method().nullable1 = new Class1();
-//       ^
-//
-// pkg/front_end/testcases/nnbd/null_shorting_extension.dart:158:7: Error: This expression has type 'void' and can't be used.
-//   n1?.nullable1 = new Class1().nonNullable1Method().nonNullable1Method();
-//       ^
-//
 // pkg/front_end/testcases/nnbd/null_shorting_extension.dart:226:33: Error: Operator '+' cannot be called on 'Class1?' because it is potentially null.
 //  - 'Class1' is from 'pkg/front_end/testcases/nnbd/null_shorting_extension.dart'.
 //   throws(() => n1?.nonNullable1 + 0);
@@ -189,15 +129,15 @@
 static method propertyAccess(self::Class1? n1) → void {
   self::Class1? nullable1 = n1;
   let final self::Class1? #t1 = n1 in #t1 == null ?{self::Class1?} null : self::Extension1|get#nullable1(#t1{self::Class1});
-  let final self::Class1? #t2 = n1 in #t2 == null ?{void} null : self::Extension1|set#nullable1(#t2{self::Class1}, new self::Class1::•());
+  let final self::Class1? #t2 = n1 in #t2 == null ?{self::Class1?} null : self::Extension1|set#nullable1(#t2{self::Class1}, new self::Class1::•());
   nullable1 = let final self::Class1? #t3 = n1 in #t3 == null ?{self::Class1?} null : let final self::Class1 #t4 = new self::Class1::•() in let final void #t5 = self::Extension1|set#nullable1(#t3{self::Class1}, #t4) in #t4;
   let final self::Class1? #t6 = n1 in #t6 == null ?{self::Class1?} null : self::Extension1|nonNullable1Method(#t6{self::Class1});
   let final self::Class1? #t7 = n1 in #t7 == null ?{self::Class1?} null : self::Extension1|get#nullable1(self::Extension1|get#nonNullable1(#t7{self::Class1}));
   let final self::Class1? #t8 = n1 in #t8 == null ?{self::Class1?} null : let final self::Class1? #t9 = self::Extension1|get#nullable1(#t8{self::Class1}) in #t9 == null ?{self::Class1?} null : self::Extension1|get#nullable1(#t9{self::Class1});
   let final self::Class1? #t10 = n1 in #t10 == null ?{self::Class1?} null : let final self::Class1? #t11 = self::Extension1|get#nullable1(self::Extension1|get#nonNullable1(#t10{self::Class1})) in #t11 == null ?{self::Class1?} null : self::Extension1|get#nullable1(#t11{self::Class1});
-  let final self::Class1? #t12 = n1 in #t12 == null ?{void} null : self::Extension1|set#nullable1(self::Extension1|get#nonNullable1(#t12{self::Class1}), new self::Class1::•());
-  let final self::Class1? #t13 = n1 in #t13 == null ?{void} null : let final self::Class1? #t14 = self::Extension1|get#nullable1(#t13{self::Class1}) in #t14 == null ?{void} null : self::Extension1|set#nullable1(#t14{self::Class1}, new self::Class1::•());
-  let final self::Class1? #t15 = n1 in #t15 == null ?{void} null : let final self::Class1? #t16 = self::Extension1|get#nullable1(self::Extension1|get#nonNullable1(#t15{self::Class1})) in #t16 == null ?{void} null : self::Extension1|set#nullable1(#t16{self::Class1}, new self::Class1::•());
+  let final self::Class1? #t12 = n1 in #t12 == null ?{self::Class1?} null : self::Extension1|set#nullable1(self::Extension1|get#nonNullable1(#t12{self::Class1}), new self::Class1::•());
+  let final self::Class1? #t13 = n1 in #t13 == null ?{self::Class1?} null : let final self::Class1? #t14 = self::Extension1|get#nullable1(#t13{self::Class1}) in #t14 == null ?{self::Class1?} null : self::Extension1|set#nullable1(#t14{self::Class1}, new self::Class1::•());
+  let final self::Class1? #t15 = n1 in #t15 == null ?{self::Class1?} null : let final self::Class1? #t16 = self::Extension1|get#nullable1(self::Extension1|get#nonNullable1(#t15{self::Class1})) in #t16 == null ?{self::Class1?} null : self::Extension1|set#nullable1(#t16{self::Class1}, new self::Class1::•());
   let final self::Class1? #t17 = let final self::Class1? #t18 = n1 in #t18 == null ?{self::Class1?} null : self::Extension1|get#nullable1(#t18{self::Class1}) in #t17 == null ?{self::Class1?} null : self::Extension1|get#nullable1(#t17{self::Class1});
   self::throws(() → void => invalid-expression "pkg/front_end/testcases/nnbd/null_shorting_extension.dart:93:47: Error: Property 'nullable1' cannot be accessed on 'Class1?' because it is potentially null.
  - 'Class1' is from 'pkg/front_end/testcases/nnbd/null_shorting_extension.dart'.
@@ -213,58 +153,58 @@
   nullable1 = let final self::Class1? #t26 = n1 in #t26 == null ?{self::Class1?} null : let final self::Class1? #t27 = self::Extension1|get#nullable1(#t26{self::Class1}) in #t27 == null ?{self::Class1?} null : let final self::Class1 #t28 = new self::Class1::•() in let final void #t29 = self::Extension1|set#nullable1(#t27{self::Class1}, #t28) in #t28;
   nullable1 = let final self::Class1? #t30 = n1 in #t30 == null ?{self::Class1?} null : let final self::Class1? #t31 = self::Extension1|get#nullable1(self::Extension1|get#nonNullable1(#t30{self::Class1})) in #t31 == null ?{self::Class1?} null : let final self::Class1 #t32 = new self::Class1::•() in let final void #t33 = self::Extension1|set#nullable1(#t31{self::Class1}, #t32) in #t32;
   let final self::Class1? #t34 = n1 in #t34 == null ?{self::Class1?} null : let final self::Class1? #t35 = self::Extension1|get#nullable1(#t34{self::Class1}) in #t35 == null ?{self::Class1?} null : self::Extension1|nonNullable1Method(#t35{self::Class1});
-  let final self::Class1? #t36 = n1 in #t36 == null ?{void} null : self::Extension1|set#nullable1(#t36{self::Class1}, self::Extension1|get#nullable1(new self::Class1::•()));
+  let final self::Class1? #t36 = n1 in #t36 == null ?{self::Class1?} null : self::Extension1|set#nullable1(#t36{self::Class1}, self::Extension1|get#nullable1(new self::Class1::•()));
   nullable1 = let final self::Class1? #t37 = n1 in #t37 == null ?{self::Class1?} null : let final self::Class1? #t38 = self::Extension1|get#nullable1(new self::Class1::•()) in let final void #t39 = self::Extension1|set#nullable1(#t37{self::Class1}, #t38) in #t38;
-  let final self::Class1? #t40 = n1 in #t40 == null ?{void} null : self::Extension1|set#nullable1(#t40{self::Class1}, let final self::Class1 #t41 = new self::Class1::•() in let final void #t42 = self::Extension1|set#nullable1(new self::Class1::•(), #t41) in #t41);
+  let final self::Class1? #t40 = n1 in #t40 == null ?{self::Class1?} null : self::Extension1|set#nullable1(#t40{self::Class1}, let final self::Class1 #t41 = new self::Class1::•() in let final void #t42 = self::Extension1|set#nullable1(new self::Class1::•(), #t41) in #t41);
   nullable1 = let final self::Class1? #t43 = n1 in #t43 == null ?{self::Class1?} null : let final self::Class1 #t44 = let final self::Class1 #t45 = new self::Class1::•() in let final void #t46 = self::Extension1|set#nullable1(new self::Class1::•(), #t45) in #t45 in let final void #t47 = self::Extension1|set#nullable1(#t43{self::Class1}, #t44) in #t44;
-  let final self::Class1? #t48 = n1 in #t48 == null ?{void} null : self::Extension1|set#nullable1(#t48{self::Class1}, self::Extension1|nonNullable1Method(new self::Class1::•()));
+  let final self::Class1? #t48 = n1 in #t48 == null ?{self::Class1?} null : self::Extension1|set#nullable1(#t48{self::Class1}, self::Extension1|nonNullable1Method(new self::Class1::•()));
   nullable1 = let final self::Class1? #t49 = n1 in #t49 == null ?{self::Class1?} null : let final self::Class1 #t50 = self::Extension1|nonNullable1Method(new self::Class1::•()) in let final void #t51 = self::Extension1|set#nullable1(#t49{self::Class1}, #t50) in #t50;
   let final self::Class1? #t52 = n1 in #t52 == null ?{self::Class1?} null : self::Extension1|get#nullable1(self::Extension1|nonNullable1Method(#t52{self::Class1}));
-  let final self::Class1? #t53 = n1 in #t53 == null ?{void} null : self::Extension1|set#nullable1(self::Extension1|nonNullable1Method(#t53{self::Class1}), new self::Class1::•());
+  let final self::Class1? #t53 = n1 in #t53 == null ?{self::Class1?} null : self::Extension1|set#nullable1(self::Extension1|nonNullable1Method(#t53{self::Class1}), new self::Class1::•());
   let final self::Class1? #t54 = n1 in #t54 == null ?{self::Class1?} null : self::Extension1|nonNullable1Method(self::Extension1|nonNullable1Method(#t54{self::Class1}));
   let final self::Class1? #t55 = n1 in #t55 == null ?{self::Class1?} null : self::Extension1|get#nullable1(self::Extension1|get#nonNullable1(self::Extension1|get#nonNullable1(#t55{self::Class1})));
-  let final self::Class1? #t56 = n1 in #t56 == null ?{void} null : self::Extension1|set#nullable1(self::Extension1|get#nonNullable1(self::Extension1|get#nonNullable1(#t56{self::Class1})), new self::Class1::•());
+  let final self::Class1? #t56 = n1 in #t56 == null ?{self::Class1?} null : self::Extension1|set#nullable1(self::Extension1|get#nonNullable1(self::Extension1|get#nonNullable1(#t56{self::Class1})), new self::Class1::•());
   nullable1 = let final self::Class1? #t57 = n1 in #t57 == null ?{self::Class1?} null : let final self::Class1 #t58 = new self::Class1::•() in let final void #t59 = self::Extension1|set#nullable1(self::Extension1|get#nonNullable1(self::Extension1|get#nonNullable1(#t57{self::Class1})), #t58) in #t58;
   let final self::Class1? #t60 = n1 in #t60 == null ?{self::Class1?} null : let final self::Class1? #t61 = self::Extension1|get#nullable1(self::Extension1|get#nonNullable1(#t60{self::Class1})) in #t61 == null ?{self::Class1?} null : self::Extension1|nonNullable1Method(#t61{self::Class1});
-  let final self::Class1? #t62 = n1 in #t62 == null ?{void} null : self::Extension1|set#nullable1(#t62{self::Class1}, self::Extension1|get#nullable1(self::Extension1|get#nonNullable1(new self::Class1::•())));
+  let final self::Class1? #t62 = n1 in #t62 == null ?{self::Class1?} null : self::Extension1|set#nullable1(#t62{self::Class1}, self::Extension1|get#nullable1(self::Extension1|get#nonNullable1(new self::Class1::•())));
   nullable1 = let final self::Class1? #t63 = n1 in #t63 == null ?{self::Class1?} null : let final self::Class1? #t64 = self::Extension1|get#nullable1(self::Extension1|get#nonNullable1(new self::Class1::•())) in let final void #t65 = self::Extension1|set#nullable1(#t63{self::Class1}, #t64) in #t64;
-  let final self::Class1? #t66 = n1 in #t66 == null ?{void} null : self::Extension1|set#nullable1(#t66{self::Class1}, let final self::Class1 #t67 = new self::Class1::•() in let final void #t68 = self::Extension1|set#nullable1(self::Extension1|get#nonNullable1(new self::Class1::•()), #t67) in #t67);
+  let final self::Class1? #t66 = n1 in #t66 == null ?{self::Class1?} null : self::Extension1|set#nullable1(#t66{self::Class1}, let final self::Class1 #t67 = new self::Class1::•() in let final void #t68 = self::Extension1|set#nullable1(self::Extension1|get#nonNullable1(new self::Class1::•()), #t67) in #t67);
   nullable1 = let final self::Class1? #t69 = n1 in #t69 == null ?{self::Class1?} null : let final self::Class1 #t70 = let final self::Class1 #t71 = new self::Class1::•() in let final void #t72 = self::Extension1|set#nullable1(self::Extension1|get#nonNullable1(new self::Class1::•()), #t71) in #t71 in let final void #t73 = self::Extension1|set#nullable1(#t69{self::Class1}, #t70) in #t70;
-  let final self::Class1? #t74 = n1 in #t74 == null ?{void} null : self::Extension1|set#nullable1(#t74{self::Class1}, self::Extension1|nonNullable1Method(self::Extension1|get#nonNullable1(new self::Class1::•())));
+  let final self::Class1? #t74 = n1 in #t74 == null ?{self::Class1?} null : self::Extension1|set#nullable1(#t74{self::Class1}, self::Extension1|nonNullable1Method(self::Extension1|get#nonNullable1(new self::Class1::•())));
   nullable1 = let final self::Class1? #t75 = n1 in #t75 == null ?{self::Class1?} null : let final self::Class1 #t76 = self::Extension1|nonNullable1Method(self::Extension1|get#nonNullable1(new self::Class1::•())) in let final void #t77 = self::Extension1|set#nullable1(#t75{self::Class1}, #t76) in #t76;
   let final self::Class1? #t78 = n1 in #t78 == null ?{self::Class1?} null : self::Extension1|get#nullable1(self::Extension1|get#nonNullable1(self::Extension1|nonNullable1Method(#t78{self::Class1})));
-  let final self::Class1? #t79 = n1 in #t79 == null ?{void} null : self::Extension1|set#nullable1(self::Extension1|get#nonNullable1(self::Extension1|nonNullable1Method(#t79{self::Class1})), new self::Class1::•());
+  let final self::Class1? #t79 = n1 in #t79 == null ?{self::Class1?} null : self::Extension1|set#nullable1(self::Extension1|get#nonNullable1(self::Extension1|nonNullable1Method(#t79{self::Class1})), new self::Class1::•());
   let final self::Class1? #t80 = n1 in #t80 == null ?{self::Class1?} null : self::Extension1|nonNullable1Method(self::Extension1|get#nonNullable1(self::Extension1|nonNullable1Method(#t80{self::Class1})));
-  let final self::Class1? #t81 = n1 in #t81 == null ?{void} null : self::Extension1|set#nullable1(self::Extension1|get#nonNullable1(#t81{self::Class1}), self::Extension1|get#nullable1(new self::Class1::•()));
+  let final self::Class1? #t81 = n1 in #t81 == null ?{self::Class1?} null : self::Extension1|set#nullable1(self::Extension1|get#nonNullable1(#t81{self::Class1}), self::Extension1|get#nullable1(new self::Class1::•()));
   nullable1 = let final self::Class1? #t82 = n1 in #t82 == null ?{self::Class1?} null : let final self::Class1? #t83 = self::Extension1|get#nullable1(new self::Class1::•()) in let final void #t84 = self::Extension1|set#nullable1(self::Extension1|get#nonNullable1(#t82{self::Class1}), #t83) in #t83;
-  let final self::Class1? #t85 = n1 in #t85 == null ?{void} null : self::Extension1|set#nullable1(self::Extension1|get#nonNullable1(#t85{self::Class1}), let final self::Class1 #t86 = new self::Class1::•() in let final void #t87 = self::Extension1|set#nullable1(new self::Class1::•(), #t86) in #t86);
+  let final self::Class1? #t85 = n1 in #t85 == null ?{self::Class1?} null : self::Extension1|set#nullable1(self::Extension1|get#nonNullable1(#t85{self::Class1}), let final self::Class1 #t86 = new self::Class1::•() in let final void #t87 = self::Extension1|set#nullable1(new self::Class1::•(), #t86) in #t86);
   nullable1 = let final self::Class1? #t88 = n1 in #t88 == null ?{self::Class1?} null : let final self::Class1 #t89 = let final self::Class1 #t90 = new self::Class1::•() in let final void #t91 = self::Extension1|set#nullable1(new self::Class1::•(), #t90) in #t90 in let final void #t92 = self::Extension1|set#nullable1(self::Extension1|get#nonNullable1(#t88{self::Class1}), #t89) in #t89;
-  let final self::Class1? #t93 = n1 in #t93 == null ?{void} null : self::Extension1|set#nullable1(self::Extension1|get#nonNullable1(#t93{self::Class1}), self::Extension1|nonNullable1Method(new self::Class1::•()));
+  let final self::Class1? #t93 = n1 in #t93 == null ?{self::Class1?} null : self::Extension1|set#nullable1(self::Extension1|get#nonNullable1(#t93{self::Class1}), self::Extension1|nonNullable1Method(new self::Class1::•()));
   nullable1 = let final self::Class1? #t94 = n1 in #t94 == null ?{self::Class1?} null : let final self::Class1 #t95 = self::Extension1|nonNullable1Method(new self::Class1::•()) in let final void #t96 = self::Extension1|set#nullable1(self::Extension1|get#nonNullable1(#t94{self::Class1}), #t95) in #t95;
-  let final self::Class1? #t97 = n1 in #t97 == null ?{void} null : self::Extension1|set#nullable1(#t97{self::Class1}, let final self::Class1? #t98 = self::Extension1|get#nullable1(new self::Class1::•()) in let final void #t99 = self::Extension1|set#nullable1(new self::Class1::•(), #t98) in #t98);
+  let final self::Class1? #t97 = n1 in #t97 == null ?{self::Class1?} null : self::Extension1|set#nullable1(#t97{self::Class1}, let final self::Class1? #t98 = self::Extension1|get#nullable1(new self::Class1::•()) in let final void #t99 = self::Extension1|set#nullable1(new self::Class1::•(), #t98) in #t98);
   nullable1 = let final self::Class1? #t100 = n1 in #t100 == null ?{self::Class1?} null : let final self::Class1? #t101 = let final self::Class1? #t102 = self::Extension1|get#nullable1(new self::Class1::•()) in let final void #t103 = self::Extension1|set#nullable1(new self::Class1::•(), #t102) in #t102 in let final void #t104 = self::Extension1|set#nullable1(#t100{self::Class1}, #t101) in #t101;
-  let final self::Class1? #t105 = n1 in #t105 == null ?{void} null : self::Extension1|set#nullable1(#t105{self::Class1}, let final self::Class1 #t106 = let final self::Class1 #t107 = new self::Class1::•() in let final void #t108 = self::Extension1|set#nullable1(new self::Class1::•(), #t107) in #t107 in let final void #t109 = self::Extension1|set#nullable1(new self::Class1::•(), #t106) in #t106);
+  let final self::Class1? #t105 = n1 in #t105 == null ?{self::Class1?} null : self::Extension1|set#nullable1(#t105{self::Class1}, let final self::Class1 #t106 = let final self::Class1 #t107 = new self::Class1::•() in let final void #t108 = self::Extension1|set#nullable1(new self::Class1::•(), #t107) in #t107 in let final void #t109 = self::Extension1|set#nullable1(new self::Class1::•(), #t106) in #t106);
   nullable1 = let final self::Class1? #t110 = n1 in #t110 == null ?{self::Class1?} null : let final self::Class1 #t111 = let final self::Class1 #t112 = let final self::Class1 #t113 = new self::Class1::•() in let final void #t114 = self::Extension1|set#nullable1(new self::Class1::•(), #t113) in #t113 in let final void #t115 = self::Extension1|set#nullable1(new self::Class1::•(), #t112) in #t112 in let final void #t116 = self::Extension1|set#nullable1(#t110{self::Class1}, #t111) in #t111;
-  let final self::Class1? #t117 = n1 in #t117 == null ?{void} null : self::Extension1|set#nullable1(#t117{self::Class1}, let final self::Class1 #t118 = self::Extension1|nonNullable1Method(new self::Class1::•()) in let final void #t119 = self::Extension1|set#nullable1(new self::Class1::•(), #t118) in #t118);
+  let final self::Class1? #t117 = n1 in #t117 == null ?{self::Class1?} null : self::Extension1|set#nullable1(#t117{self::Class1}, let final self::Class1 #t118 = self::Extension1|nonNullable1Method(new self::Class1::•()) in let final void #t119 = self::Extension1|set#nullable1(new self::Class1::•(), #t118) in #t118);
   nullable1 = let final self::Class1? #t120 = n1 in #t120 == null ?{self::Class1?} null : let final self::Class1 #t121 = let final self::Class1 #t122 = self::Extension1|nonNullable1Method(new self::Class1::•()) in let final void #t123 = self::Extension1|set#nullable1(new self::Class1::•(), #t122) in #t122 in let final void #t124 = self::Extension1|set#nullable1(#t120{self::Class1}, #t121) in #t121;
-  let final self::Class1? #t125 = n1 in #t125 == null ?{void} null : self::Extension1|set#nullable1(self::Extension1|nonNullable1Method(#t125{self::Class1}), self::Extension1|get#nullable1(new self::Class1::•()));
+  let final self::Class1? #t125 = n1 in #t125 == null ?{self::Class1?} null : self::Extension1|set#nullable1(self::Extension1|nonNullable1Method(#t125{self::Class1}), self::Extension1|get#nullable1(new self::Class1::•()));
   nullable1 = let final self::Class1? #t126 = n1 in #t126 == null ?{self::Class1?} null : let final self::Class1? #t127 = self::Extension1|get#nullable1(new self::Class1::•()) in let final void #t128 = self::Extension1|set#nullable1(self::Extension1|nonNullable1Method(#t126{self::Class1}), #t127) in #t127;
-  let final self::Class1? #t129 = n1 in #t129 == null ?{void} null : self::Extension1|set#nullable1(self::Extension1|nonNullable1Method(#t129{self::Class1}), let final self::Class1 #t130 = new self::Class1::•() in let final void #t131 = self::Extension1|set#nullable1(new self::Class1::•(), #t130) in #t130);
+  let final self::Class1? #t129 = n1 in #t129 == null ?{self::Class1?} null : self::Extension1|set#nullable1(self::Extension1|nonNullable1Method(#t129{self::Class1}), let final self::Class1 #t130 = new self::Class1::•() in let final void #t131 = self::Extension1|set#nullable1(new self::Class1::•(), #t130) in #t130);
   nullable1 = let final self::Class1? #t132 = n1 in #t132 == null ?{self::Class1?} null : let final self::Class1 #t133 = let final self::Class1 #t134 = new self::Class1::•() in let final void #t135 = self::Extension1|set#nullable1(new self::Class1::•(), #t134) in #t134 in let final void #t136 = self::Extension1|set#nullable1(self::Extension1|nonNullable1Method(#t132{self::Class1}), #t133) in #t133;
-  let final self::Class1? #t137 = n1 in #t137 == null ?{void} null : self::Extension1|set#nullable1(self::Extension1|nonNullable1Method(#t137{self::Class1}), self::Extension1|nonNullable1Method(new self::Class1::•()));
+  let final self::Class1? #t137 = n1 in #t137 == null ?{self::Class1?} null : self::Extension1|set#nullable1(self::Extension1|nonNullable1Method(#t137{self::Class1}), self::Extension1|nonNullable1Method(new self::Class1::•()));
   nullable1 = let final self::Class1? #t138 = n1 in #t138 == null ?{self::Class1?} null : let final self::Class1 #t139 = self::Extension1|nonNullable1Method(new self::Class1::•()) in let final void #t140 = self::Extension1|set#nullable1(self::Extension1|nonNullable1Method(#t138{self::Class1}), #t139) in #t139;
   let final self::Class1? #t141 = n1 in #t141 == null ?{self::Class1?} null : self::Extension1|get#nullable1(self::Extension1|nonNullable1Method(self::Extension1|get#nonNullable1(#t141{self::Class1})));
-  let final self::Class1? #t142 = n1 in #t142 == null ?{void} null : self::Extension1|set#nullable1(self::Extension1|nonNullable1Method(self::Extension1|get#nonNullable1(#t142{self::Class1})), new self::Class1::•());
+  let final self::Class1? #t142 = n1 in #t142 == null ?{self::Class1?} null : self::Extension1|set#nullable1(self::Extension1|nonNullable1Method(self::Extension1|get#nonNullable1(#t142{self::Class1})), new self::Class1::•());
   nullable1 = let final self::Class1? #t143 = n1 in #t143 == null ?{self::Class1?} null : let final self::Class1 #t144 = new self::Class1::•() in let final void #t145 = self::Extension1|set#nullable1(self::Extension1|nonNullable1Method(self::Extension1|get#nonNullable1(#t143{self::Class1})), #t144) in #t144;
   let final self::Class1? #t146 = n1 in #t146 == null ?{self::Class1?} null : self::Extension1|nonNullable1Method(self::Extension1|nonNullable1Method(self::Extension1|get#nonNullable1(#t146{self::Class1})));
-  let final self::Class1? #t147 = n1 in #t147 == null ?{void} null : self::Extension1|set#nullable1(#t147{self::Class1}, self::Extension1|get#nullable1(self::Extension1|nonNullable1Method(new self::Class1::•())));
+  let final self::Class1? #t147 = n1 in #t147 == null ?{self::Class1?} null : self::Extension1|set#nullable1(#t147{self::Class1}, self::Extension1|get#nullable1(self::Extension1|nonNullable1Method(new self::Class1::•())));
   nullable1 = let final self::Class1? #t148 = n1 in #t148 == null ?{self::Class1?} null : let final self::Class1? #t149 = self::Extension1|get#nullable1(self::Extension1|nonNullable1Method(new self::Class1::•())) in let final void #t150 = self::Extension1|set#nullable1(#t148{self::Class1}, #t149) in #t149;
-  let final self::Class1? #t151 = n1 in #t151 == null ?{void} null : self::Extension1|set#nullable1(#t151{self::Class1}, let final self::Class1 #t152 = new self::Class1::•() in let final void #t153 = self::Extension1|set#nullable1(self::Extension1|nonNullable1Method(new self::Class1::•()), #t152) in #t152);
+  let final self::Class1? #t151 = n1 in #t151 == null ?{self::Class1?} null : self::Extension1|set#nullable1(#t151{self::Class1}, let final self::Class1 #t152 = new self::Class1::•() in let final void #t153 = self::Extension1|set#nullable1(self::Extension1|nonNullable1Method(new self::Class1::•()), #t152) in #t152);
   nullable1 = let final self::Class1? #t154 = n1 in #t154 == null ?{self::Class1?} null : let final self::Class1 #t155 = let final self::Class1 #t156 = new self::Class1::•() in let final void #t157 = self::Extension1|set#nullable1(self::Extension1|nonNullable1Method(new self::Class1::•()), #t156) in #t156 in let final void #t158 = self::Extension1|set#nullable1(#t154{self::Class1}, #t155) in #t155;
-  let final self::Class1? #t159 = n1 in #t159 == null ?{void} null : self::Extension1|set#nullable1(#t159{self::Class1}, self::Extension1|nonNullable1Method(self::Extension1|nonNullable1Method(new self::Class1::•())));
+  let final self::Class1? #t159 = n1 in #t159 == null ?{self::Class1?} null : self::Extension1|set#nullable1(#t159{self::Class1}, self::Extension1|nonNullable1Method(self::Extension1|nonNullable1Method(new self::Class1::•())));
   nullable1 = let final self::Class1? #t160 = n1 in #t160 == null ?{self::Class1?} null : let final self::Class1 #t161 = self::Extension1|nonNullable1Method(self::Extension1|nonNullable1Method(new self::Class1::•())) in let final void #t162 = self::Extension1|set#nullable1(#t160{self::Class1}, #t161) in #t161;
   let final self::Class1? #t163 = n1 in #t163 == null ?{self::Class1?} null : self::Extension1|get#nullable1(self::Extension1|nonNullable1Method(self::Extension1|nonNullable1Method(#t163{self::Class1})));
-  let final self::Class1? #t164 = n1 in #t164 == null ?{void} null : self::Extension1|set#nullable1(self::Extension1|nonNullable1Method(self::Extension1|nonNullable1Method(#t164{self::Class1})), new self::Class1::•());
+  let final self::Class1? #t164 = n1 in #t164 == null ?{self::Class1?} null : self::Extension1|set#nullable1(self::Extension1|nonNullable1Method(self::Extension1|nonNullable1Method(#t164{self::Class1})), new self::Class1::•());
   let final self::Class1? #t165 = n1 in #t165 == null ?{self::Class1?} null : self::Extension1|nonNullable1Method(self::Extension1|nonNullable1Method(self::Extension1|nonNullable1Method(#t165{self::Class1})));
   let final self::Class1? #t166 = n1 in #t166 == null ?{self::Class1?} null : let final self::Class1? #t167 = self::Extension1|nonNullable1Method(#t166{self::Class1}) in #t167 == null ?{self::Class1?} null : self::Extension1|nonNullable1Method(#t167{self::Class1});
 }
diff --git a/pkg/front_end/testcases/nnbd_mixed/no_null_shorting.dart.weak.expect b/pkg/front_end/testcases/nnbd_mixed/no_null_shorting.dart.weak.expect
index e9ab19d..9e9eb03 100644
--- a/pkg/front_end/testcases/nnbd_mixed/no_null_shorting.dart.weak.expect
+++ b/pkg/front_end/testcases/nnbd_mixed/no_null_shorting.dart.weak.expect
@@ -138,7 +138,7 @@
   self::throws(() → self::Class* => let final self::Class* #t169 = let final self::Class* #t170 = c in #t170 == null ?{self::Class*} null : #t170.{self::Class::field}{self::Class*} in #t169.{self::Class::field} = #t169.{self::Class::field}{self::Class*}.{self::Class::+}(0){(core::int*) →* self::Class*});
   self::throws(() → self::Class* => c = let final self::Class* #t171 = let final self::Class* #t172 = c in #t172 == null ?{self::Class*} null : #t172.{self::Class::field}{self::Class*} in #t171.{self::Class::field} = #t171.{self::Class::field}{self::Class*}.{self::Class::+}(0){(core::int*) →* self::Class*});
   let final self::Class* #t173 = c in #t173 == null ?{self::Class*} null : #t173.{self::Class::field} = #t173.{self::Class::field}{self::Class*}.{self::Class::+}(1){(core::int*) →* self::Class*};
-  c = let final self::Class* #t174 = c in #t174 == null ?{self::Class*} null : let final self::Class* #t175 = #t174.{self::Class::field}{self::Class*} in let final self::Class* #t176 = #t174.{self::Class::field} = #t175.{self::Class::+}(1){(core::int*) →* self::Class*} in #t175;
+  c = let final self::Class* #t174 = c in #t174 == null ?{self::Class*} null : let final self::Class* #t175 = #t174.{self::Class::field}{self::Class*} in let final void #t176 = #t174.{self::Class::field} = #t175.{self::Class::+}(1){(core::int*) →* self::Class*} in #t175;
   let final self::Class* #t177 = c in #t177 == null ?{self::Class*} null : let final self::Class* #t178 = #t177.{self::Class::field}{self::Class*}.{self::Class::+}(1){(core::int*) →* self::Class*} in let final void #t179 = #t177.{self::Class::field} = #t178 in #t178;
   c = let final self::Class* #t180 = c in #t180 == null ?{self::Class*} null : let final self::Class* #t181 = #t180.{self::Class::field}{self::Class*}.{self::Class::+}(1){(core::int*) →* self::Class*} in let final void #t182 = #t180.{self::Class::field} = #t181 in #t181;
 }
diff --git a/pkg/front_end/testcases/nnbd_mixed/no_null_shorting.dart.weak.modular.expect b/pkg/front_end/testcases/nnbd_mixed/no_null_shorting.dart.weak.modular.expect
index e9ab19d..9e9eb03 100644
--- a/pkg/front_end/testcases/nnbd_mixed/no_null_shorting.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/nnbd_mixed/no_null_shorting.dart.weak.modular.expect
@@ -138,7 +138,7 @@
   self::throws(() → self::Class* => let final self::Class* #t169 = let final self::Class* #t170 = c in #t170 == null ?{self::Class*} null : #t170.{self::Class::field}{self::Class*} in #t169.{self::Class::field} = #t169.{self::Class::field}{self::Class*}.{self::Class::+}(0){(core::int*) →* self::Class*});
   self::throws(() → self::Class* => c = let final self::Class* #t171 = let final self::Class* #t172 = c in #t172 == null ?{self::Class*} null : #t172.{self::Class::field}{self::Class*} in #t171.{self::Class::field} = #t171.{self::Class::field}{self::Class*}.{self::Class::+}(0){(core::int*) →* self::Class*});
   let final self::Class* #t173 = c in #t173 == null ?{self::Class*} null : #t173.{self::Class::field} = #t173.{self::Class::field}{self::Class*}.{self::Class::+}(1){(core::int*) →* self::Class*};
-  c = let final self::Class* #t174 = c in #t174 == null ?{self::Class*} null : let final self::Class* #t175 = #t174.{self::Class::field}{self::Class*} in let final self::Class* #t176 = #t174.{self::Class::field} = #t175.{self::Class::+}(1){(core::int*) →* self::Class*} in #t175;
+  c = let final self::Class* #t174 = c in #t174 == null ?{self::Class*} null : let final self::Class* #t175 = #t174.{self::Class::field}{self::Class*} in let final void #t176 = #t174.{self::Class::field} = #t175.{self::Class::+}(1){(core::int*) →* self::Class*} in #t175;
   let final self::Class* #t177 = c in #t177 == null ?{self::Class*} null : let final self::Class* #t178 = #t177.{self::Class::field}{self::Class*}.{self::Class::+}(1){(core::int*) →* self::Class*} in let final void #t179 = #t177.{self::Class::field} = #t178 in #t178;
   c = let final self::Class* #t180 = c in #t180 == null ?{self::Class*} null : let final self::Class* #t181 = #t180.{self::Class::field}{self::Class*}.{self::Class::+}(1){(core::int*) →* self::Class*} in let final void #t182 = #t180.{self::Class::field} = #t181 in #t181;
 }
diff --git a/pkg/front_end/testcases/nnbd_mixed/no_null_shorting.dart.weak.transformed.expect b/pkg/front_end/testcases/nnbd_mixed/no_null_shorting.dart.weak.transformed.expect
index e9ab19d..9e9eb03 100644
--- a/pkg/front_end/testcases/nnbd_mixed/no_null_shorting.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/nnbd_mixed/no_null_shorting.dart.weak.transformed.expect
@@ -138,7 +138,7 @@
   self::throws(() → self::Class* => let final self::Class* #t169 = let final self::Class* #t170 = c in #t170 == null ?{self::Class*} null : #t170.{self::Class::field}{self::Class*} in #t169.{self::Class::field} = #t169.{self::Class::field}{self::Class*}.{self::Class::+}(0){(core::int*) →* self::Class*});
   self::throws(() → self::Class* => c = let final self::Class* #t171 = let final self::Class* #t172 = c in #t172 == null ?{self::Class*} null : #t172.{self::Class::field}{self::Class*} in #t171.{self::Class::field} = #t171.{self::Class::field}{self::Class*}.{self::Class::+}(0){(core::int*) →* self::Class*});
   let final self::Class* #t173 = c in #t173 == null ?{self::Class*} null : #t173.{self::Class::field} = #t173.{self::Class::field}{self::Class*}.{self::Class::+}(1){(core::int*) →* self::Class*};
-  c = let final self::Class* #t174 = c in #t174 == null ?{self::Class*} null : let final self::Class* #t175 = #t174.{self::Class::field}{self::Class*} in let final self::Class* #t176 = #t174.{self::Class::field} = #t175.{self::Class::+}(1){(core::int*) →* self::Class*} in #t175;
+  c = let final self::Class* #t174 = c in #t174 == null ?{self::Class*} null : let final self::Class* #t175 = #t174.{self::Class::field}{self::Class*} in let final void #t176 = #t174.{self::Class::field} = #t175.{self::Class::+}(1){(core::int*) →* self::Class*} in #t175;
   let final self::Class* #t177 = c in #t177 == null ?{self::Class*} null : let final self::Class* #t178 = #t177.{self::Class::field}{self::Class*}.{self::Class::+}(1){(core::int*) →* self::Class*} in let final void #t179 = #t177.{self::Class::field} = #t178 in #t178;
   c = let final self::Class* #t180 = c in #t180 == null ?{self::Class*} null : let final self::Class* #t181 = #t180.{self::Class::field}{self::Class*}.{self::Class::+}(1){(core::int*) →* self::Class*} in let final void #t182 = #t180.{self::Class::field} = #t181 in #t181;
 }
diff --git a/pkg/front_end/testcases/nnbd_mixed/no_null_shorting_explicit_extension.dart.weak.expect b/pkg/front_end/testcases/nnbd_mixed/no_null_shorting_explicit_extension.dart.weak.expect
index dc4c0e8..f8fa444 100644
--- a/pkg/front_end/testcases/nnbd_mixed/no_null_shorting_explicit_extension.dart.weak.expect
+++ b/pkg/front_end/testcases/nnbd_mixed/no_null_shorting_explicit_extension.dart.weak.expect
@@ -1,11 +1,4 @@
 library;
-//
-// Problems in library:
-//
-// pkg/front_end/testcases/nnbd_mixed/no_null_shorting_explicit_extension.dart:46:24: Error: This expression has type 'void' and can't be used.
-//   Extension(c)?.field?.field = new Class();
-//                        ^
-//
 import self as self;
 import "dart:core" as core;
 
@@ -68,7 +61,7 @@
   let final self::Class* #t8 = let final self::Class* #t9 = c in #t9 == null ?{self::Class*} null : self::Extension|get#field(#t9) in #t8 == null ?{self::Class*} null : self::Extension|get#field(#t8);
   self::throws(() → self::Class* => let final self::Class* #t10 = self::Extension|get#field(let final self::Class* #t11 = c in #t11 == null ?{self::Class*} null : self::Extension|get#field(#t11)) in #t10 == null ?{self::Class*} null : self::Extension|get#field(#t10));
   self::throws(() → self::Class* => let final self::Class* #t12 = new self::Class::•() in let final void #t13 = self::Extension|set#field(let final self::Class* #t14 = c in #t14 == null ?{self::Class*} null : self::Extension|get#field(#t14), #t12) in #t12);
-  let final self::Class* #t15 = let final self::Class* #t16 = c in #t16 == null ?{self::Class*} null : self::Extension|get#field(#t16) in #t15 == null ?{void} null : self::Extension|set#field(#t15, new self::Class::•());
+  let final self::Class* #t15 = let final self::Class* #t16 = c in #t16 == null ?{self::Class*} null : self::Extension|get#field(#t16) in #t15 == null ?{self::Class*} null : self::Extension|set#field(#t15, new self::Class::•());
   self::throws(() → self::Class* => let final self::Class* #t17 = self::Extension|get#field(let final self::Class* #t18 = c in #t18 == null ?{self::Class*} null : self::Extension|get#field(#t18)) in #t17 == null ?{self::Class*} null : let final self::Class* #t19 = new self::Class::•() in let final void #t20 = self::Extension|set#field(#t17, #t19) in #t19);
   self::throws(() → self::Class* => self::Extension|get#field(let final self::Class* #t21 = c in #t21 == null ?{self::Class*} null : self::Extension|get#field(#t21)));
   self::throws(() → self::Class* => self::Extension|get#field(let final self::Class* #t22 = c in #t22 == null ?{self::Class*} null : let final self::Class* #t23 = new self::Class::•() in let final void #t24 = self::Extension|set#field(#t22, #t23) in #t23));
diff --git a/pkg/front_end/testcases/nnbd_mixed/no_null_shorting_explicit_extension.dart.weak.modular.expect b/pkg/front_end/testcases/nnbd_mixed/no_null_shorting_explicit_extension.dart.weak.modular.expect
index dc4c0e8..f8fa444 100644
--- a/pkg/front_end/testcases/nnbd_mixed/no_null_shorting_explicit_extension.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/nnbd_mixed/no_null_shorting_explicit_extension.dart.weak.modular.expect
@@ -1,11 +1,4 @@
 library;
-//
-// Problems in library:
-//
-// pkg/front_end/testcases/nnbd_mixed/no_null_shorting_explicit_extension.dart:46:24: Error: This expression has type 'void' and can't be used.
-//   Extension(c)?.field?.field = new Class();
-//                        ^
-//
 import self as self;
 import "dart:core" as core;
 
@@ -68,7 +61,7 @@
   let final self::Class* #t8 = let final self::Class* #t9 = c in #t9 == null ?{self::Class*} null : self::Extension|get#field(#t9) in #t8 == null ?{self::Class*} null : self::Extension|get#field(#t8);
   self::throws(() → self::Class* => let final self::Class* #t10 = self::Extension|get#field(let final self::Class* #t11 = c in #t11 == null ?{self::Class*} null : self::Extension|get#field(#t11)) in #t10 == null ?{self::Class*} null : self::Extension|get#field(#t10));
   self::throws(() → self::Class* => let final self::Class* #t12 = new self::Class::•() in let final void #t13 = self::Extension|set#field(let final self::Class* #t14 = c in #t14 == null ?{self::Class*} null : self::Extension|get#field(#t14), #t12) in #t12);
-  let final self::Class* #t15 = let final self::Class* #t16 = c in #t16 == null ?{self::Class*} null : self::Extension|get#field(#t16) in #t15 == null ?{void} null : self::Extension|set#field(#t15, new self::Class::•());
+  let final self::Class* #t15 = let final self::Class* #t16 = c in #t16 == null ?{self::Class*} null : self::Extension|get#field(#t16) in #t15 == null ?{self::Class*} null : self::Extension|set#field(#t15, new self::Class::•());
   self::throws(() → self::Class* => let final self::Class* #t17 = self::Extension|get#field(let final self::Class* #t18 = c in #t18 == null ?{self::Class*} null : self::Extension|get#field(#t18)) in #t17 == null ?{self::Class*} null : let final self::Class* #t19 = new self::Class::•() in let final void #t20 = self::Extension|set#field(#t17, #t19) in #t19);
   self::throws(() → self::Class* => self::Extension|get#field(let final self::Class* #t21 = c in #t21 == null ?{self::Class*} null : self::Extension|get#field(#t21)));
   self::throws(() → self::Class* => self::Extension|get#field(let final self::Class* #t22 = c in #t22 == null ?{self::Class*} null : let final self::Class* #t23 = new self::Class::•() in let final void #t24 = self::Extension|set#field(#t22, #t23) in #t23));
diff --git a/pkg/front_end/testcases/nnbd_mixed/no_null_shorting_explicit_extension.dart.weak.transformed.expect b/pkg/front_end/testcases/nnbd_mixed/no_null_shorting_explicit_extension.dart.weak.transformed.expect
index dc4c0e8..f8fa444 100644
--- a/pkg/front_end/testcases/nnbd_mixed/no_null_shorting_explicit_extension.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/nnbd_mixed/no_null_shorting_explicit_extension.dart.weak.transformed.expect
@@ -1,11 +1,4 @@
 library;
-//
-// Problems in library:
-//
-// pkg/front_end/testcases/nnbd_mixed/no_null_shorting_explicit_extension.dart:46:24: Error: This expression has type 'void' and can't be used.
-//   Extension(c)?.field?.field = new Class();
-//                        ^
-//
 import self as self;
 import "dart:core" as core;
 
@@ -68,7 +61,7 @@
   let final self::Class* #t8 = let final self::Class* #t9 = c in #t9 == null ?{self::Class*} null : self::Extension|get#field(#t9) in #t8 == null ?{self::Class*} null : self::Extension|get#field(#t8);
   self::throws(() → self::Class* => let final self::Class* #t10 = self::Extension|get#field(let final self::Class* #t11 = c in #t11 == null ?{self::Class*} null : self::Extension|get#field(#t11)) in #t10 == null ?{self::Class*} null : self::Extension|get#field(#t10));
   self::throws(() → self::Class* => let final self::Class* #t12 = new self::Class::•() in let final void #t13 = self::Extension|set#field(let final self::Class* #t14 = c in #t14 == null ?{self::Class*} null : self::Extension|get#field(#t14), #t12) in #t12);
-  let final self::Class* #t15 = let final self::Class* #t16 = c in #t16 == null ?{self::Class*} null : self::Extension|get#field(#t16) in #t15 == null ?{void} null : self::Extension|set#field(#t15, new self::Class::•());
+  let final self::Class* #t15 = let final self::Class* #t16 = c in #t16 == null ?{self::Class*} null : self::Extension|get#field(#t16) in #t15 == null ?{self::Class*} null : self::Extension|set#field(#t15, new self::Class::•());
   self::throws(() → self::Class* => let final self::Class* #t17 = self::Extension|get#field(let final self::Class* #t18 = c in #t18 == null ?{self::Class*} null : self::Extension|get#field(#t18)) in #t17 == null ?{self::Class*} null : let final self::Class* #t19 = new self::Class::•() in let final void #t20 = self::Extension|set#field(#t17, #t19) in #t19);
   self::throws(() → self::Class* => self::Extension|get#field(let final self::Class* #t21 = c in #t21 == null ?{self::Class*} null : self::Extension|get#field(#t21)));
   self::throws(() → self::Class* => self::Extension|get#field(let final self::Class* #t22 = c in #t22 == null ?{self::Class*} null : let final self::Class* #t23 = new self::Class::•() in let final void #t24 = self::Extension|set#field(#t22, #t23) in #t23));
diff --git a/pkg/front_end/testcases/nnbd_mixed/no_null_shorting_extension.dart.weak.expect b/pkg/front_end/testcases/nnbd_mixed/no_null_shorting_extension.dart.weak.expect
index a25531b..ce52b2a 100644
--- a/pkg/front_end/testcases/nnbd_mixed/no_null_shorting_extension.dart.weak.expect
+++ b/pkg/front_end/testcases/nnbd_mixed/no_null_shorting_extension.dart.weak.expect
@@ -1,63 +1,4 @@
 library;
-//
-// Problems in library:
-//
-// pkg/front_end/testcases/nnbd_mixed/no_null_shorting_extension.dart:38:6: Error: This expression has type 'void' and can't be used.
-//   c?.field = new Class();
-//      ^
-//
-// pkg/front_end/testcases/nnbd_mixed/no_null_shorting_extension.dart:46:13: Error: This expression has type 'void' and can't be used.
-//   c?.field?.field = new Class();
-//             ^
-//
-// pkg/front_end/testcases/nnbd_mixed/no_null_shorting_extension.dart:55:6: Error: This expression has type 'void' and can't be used.
-//   c?.field = new Class().field;
-//      ^
-//
-// pkg/front_end/testcases/nnbd_mixed/no_null_shorting_extension.dart:57:6: Error: This expression has type 'void' and can't be used.
-//   c?.field = new Class().field = new Class();
-//      ^
-//
-// pkg/front_end/testcases/nnbd_mixed/no_null_shorting_extension.dart:59:6: Error: This expression has type 'void' and can't be used.
-//   c?.field = new Class().method();
-//      ^
-//
-// pkg/front_end/testcases/nnbd_mixed/no_null_shorting_extension.dart:69:6: Error: This expression has type 'void' and can't be used.
-//   c?.field = new Class().field.field;
-//      ^
-//
-// pkg/front_end/testcases/nnbd_mixed/no_null_shorting_extension.dart:71:6: Error: This expression has type 'void' and can't be used.
-//   c?.field = new Class().field.field = new Class();
-//      ^
-//
-// pkg/front_end/testcases/nnbd_mixed/no_null_shorting_extension.dart:73:6: Error: This expression has type 'void' and can't be used.
-//   c?.field = new Class().field.method();
-//      ^
-//
-// pkg/front_end/testcases/nnbd_mixed/no_null_shorting_extension.dart:85:6: Error: This expression has type 'void' and can't be used.
-//   c?.field = new Class().field = new Class().field;
-//      ^
-//
-// pkg/front_end/testcases/nnbd_mixed/no_null_shorting_extension.dart:87:6: Error: This expression has type 'void' and can't be used.
-//   c?.field = new Class().field = new Class().field = new Class();
-//      ^
-//
-// pkg/front_end/testcases/nnbd_mixed/no_null_shorting_extension.dart:89:6: Error: This expression has type 'void' and can't be used.
-//   c?.field = new Class().field = new Class().method();
-//      ^
-//
-// pkg/front_end/testcases/nnbd_mixed/no_null_shorting_extension.dart:102:6: Error: This expression has type 'void' and can't be used.
-//   c?.field = new Class().method().field;
-//      ^
-//
-// pkg/front_end/testcases/nnbd_mixed/no_null_shorting_extension.dart:104:6: Error: This expression has type 'void' and can't be used.
-//   c?.field = new Class().method().field = new Class();
-//      ^
-//
-// pkg/front_end/testcases/nnbd_mixed/no_null_shorting_extension.dart:106:6: Error: This expression has type 'void' and can't be used.
-//   c?.field = new Class().method().method();
-//      ^
-//
 import self as self;
 import "dart:core" as core;
 
@@ -113,14 +54,14 @@
 }
 static method propertyAccess(self::Class* c) → void {
   let final self::Class* #t1 = c in #t1 == null ?{self::Class*} null : self::Extension|get#field(#t1);
-  let final self::Class* #t2 = c in #t2 == null ?{void} null : self::Extension|set#field(#t2, new self::Class::•());
+  let final self::Class* #t2 = c in #t2 == null ?{self::Class*} null : self::Extension|set#field(#t2, new self::Class::•());
   c = let final self::Class* #t3 = c in #t3 == null ?{self::Class*} null : let final self::Class* #t4 = new self::Class::•() in let final void #t5 = self::Extension|set#field(#t3, #t4) in #t4;
   let final self::Class* #t6 = c in #t6 == null ?{self::Class*} null : self::Extension|method(#t6);
   self::throws(() → self::Class* => self::Extension|get#field(let final self::Class* #t7 = c in #t7 == null ?{self::Class*} null : self::Extension|get#field(#t7)));
   let final self::Class* #t8 = let final self::Class* #t9 = c in #t9 == null ?{self::Class*} null : self::Extension|get#field(#t9) in #t8 == null ?{self::Class*} null : self::Extension|get#field(#t8);
   self::throws(() → self::Class* => let final self::Class* #t10 = self::Extension|get#field(let final self::Class* #t11 = c in #t11 == null ?{self::Class*} null : self::Extension|get#field(#t11)) in #t10 == null ?{self::Class*} null : self::Extension|get#field(#t10));
   self::throws(() → self::Class* => let final self::Class* #t12 = new self::Class::•() in let final void #t13 = self::Extension|set#field(let final self::Class* #t14 = c in #t14 == null ?{self::Class*} null : self::Extension|get#field(#t14), #t12) in #t12);
-  let final self::Class* #t15 = let final self::Class* #t16 = c in #t16 == null ?{self::Class*} null : self::Extension|get#field(#t16) in #t15 == null ?{void} null : self::Extension|set#field(#t15, new self::Class::•());
+  let final self::Class* #t15 = let final self::Class* #t16 = c in #t16 == null ?{self::Class*} null : self::Extension|get#field(#t16) in #t15 == null ?{self::Class*} null : self::Extension|set#field(#t15, new self::Class::•());
   self::throws(() → self::Class* => let final self::Class* #t17 = self::Extension|get#field(let final self::Class* #t18 = c in #t18 == null ?{self::Class*} null : self::Extension|get#field(#t18)) in #t17 == null ?{self::Class*} null : let final self::Class* #t19 = new self::Class::•() in let final void #t20 = self::Extension|set#field(#t17, #t19) in #t19);
   self::throws(() → self::Class* => self::Extension|get#field(let final self::Class* #t21 = c in #t21 == null ?{self::Class*} null : self::Extension|get#field(#t21)));
   self::throws(() → self::Class* => self::Extension|get#field(let final self::Class* #t22 = c in #t22 == null ?{self::Class*} null : let final self::Class* #t23 = new self::Class::•() in let final void #t24 = self::Extension|set#field(#t22, #t23) in #t23));
@@ -129,11 +70,11 @@
   c = let final self::Class* #t29 = let final self::Class* #t30 = c in #t30 == null ?{self::Class*} null : self::Extension|get#field(#t30) in #t29 == null ?{self::Class*} null : let final self::Class* #t31 = new self::Class::•() in let final void #t32 = self::Extension|set#field(#t29, #t31) in #t31;
   self::throws(() → self::Class* => c = let final self::Class* #t33 = self::Extension|get#field(let final self::Class* #t34 = c in #t34 == null ?{self::Class*} null : self::Extension|get#field(#t34)) in #t33 == null ?{self::Class*} null : let final self::Class* #t35 = new self::Class::•() in let final void #t36 = self::Extension|set#field(#t33, #t35) in #t35);
   self::throws(() → self::Class* => self::Extension|method(let final self::Class* #t37 = c in #t37 == null ?{self::Class*} null : self::Extension|get#field(#t37)));
-  let final self::Class* #t38 = c in #t38 == null ?{void} null : self::Extension|set#field(#t38, self::Extension|get#field(new self::Class::•()));
+  let final self::Class* #t38 = c in #t38 == null ?{self::Class*} null : self::Extension|set#field(#t38, self::Extension|get#field(new self::Class::•()));
   c = let final self::Class* #t39 = c in #t39 == null ?{self::Class*} null : let final self::Class* #t40 = self::Extension|get#field(new self::Class::•()) in let final void #t41 = self::Extension|set#field(#t39, #t40) in #t40;
-  let final self::Class* #t42 = c in #t42 == null ?{void} null : self::Extension|set#field(#t42, let final self::Class* #t43 = new self::Class::•() in let final void #t44 = self::Extension|set#field(new self::Class::•(), #t43) in #t43);
+  let final self::Class* #t42 = c in #t42 == null ?{self::Class*} null : self::Extension|set#field(#t42, let final self::Class* #t43 = new self::Class::•() in let final void #t44 = self::Extension|set#field(new self::Class::•(), #t43) in #t43);
   c = let final self::Class* #t45 = c in #t45 == null ?{self::Class*} null : let final self::Class* #t46 = let final self::Class* #t47 = new self::Class::•() in let final void #t48 = self::Extension|set#field(new self::Class::•(), #t47) in #t47 in let final void #t49 = self::Extension|set#field(#t45, #t46) in #t46;
-  let final self::Class* #t50 = c in #t50 == null ?{void} null : self::Extension|set#field(#t50, self::Extension|method(new self::Class::•()));
+  let final self::Class* #t50 = c in #t50 == null ?{self::Class*} null : self::Extension|set#field(#t50, self::Extension|method(new self::Class::•()));
   c = let final self::Class* #t51 = c in #t51 == null ?{self::Class*} null : let final self::Class* #t52 = self::Extension|method(new self::Class::•()) in let final void #t53 = self::Extension|set#field(#t51, #t52) in #t52;
   self::throws(() → self::Class* => self::Extension|get#field(let final self::Class* #t54 = c in #t54 == null ?{self::Class*} null : self::Extension|method(#t54)));
   self::throws(() → self::Class* => let final self::Class* #t55 = new self::Class::•() in let final void #t56 = self::Extension|set#field(let final self::Class* #t57 = c in #t57 == null ?{self::Class*} null : self::Extension|method(#t57), #t55) in #t55);
@@ -142,11 +83,11 @@
   self::throws(() → self::Class* => let final self::Class* #t60 = new self::Class::•() in let final void #t61 = self::Extension|set#field(self::Extension|get#field(let final self::Class* #t62 = c in #t62 == null ?{self::Class*} null : self::Extension|get#field(#t62)), #t60) in #t60);
   self::throws(() → self::Class* => c = let final self::Class* #t63 = new self::Class::•() in let final void #t64 = self::Extension|set#field(self::Extension|get#field(let final self::Class* #t65 = c in #t65 == null ?{self::Class*} null : self::Extension|get#field(#t65)), #t63) in #t63);
   self::throws(() → self::Class* => self::Extension|method(self::Extension|get#field(let final self::Class* #t66 = c in #t66 == null ?{self::Class*} null : self::Extension|get#field(#t66))));
-  let final self::Class* #t67 = c in #t67 == null ?{void} null : self::Extension|set#field(#t67, self::Extension|get#field(self::Extension|get#field(new self::Class::•())));
+  let final self::Class* #t67 = c in #t67 == null ?{self::Class*} null : self::Extension|set#field(#t67, self::Extension|get#field(self::Extension|get#field(new self::Class::•())));
   c = let final self::Class* #t68 = c in #t68 == null ?{self::Class*} null : let final self::Class* #t69 = self::Extension|get#field(self::Extension|get#field(new self::Class::•())) in let final void #t70 = self::Extension|set#field(#t68, #t69) in #t69;
-  let final self::Class* #t71 = c in #t71 == null ?{void} null : self::Extension|set#field(#t71, let final self::Class* #t72 = new self::Class::•() in let final void #t73 = self::Extension|set#field(self::Extension|get#field(new self::Class::•()), #t72) in #t72);
+  let final self::Class* #t71 = c in #t71 == null ?{self::Class*} null : self::Extension|set#field(#t71, let final self::Class* #t72 = new self::Class::•() in let final void #t73 = self::Extension|set#field(self::Extension|get#field(new self::Class::•()), #t72) in #t72);
   c = let final self::Class* #t74 = c in #t74 == null ?{self::Class*} null : let final self::Class* #t75 = let final self::Class* #t76 = new self::Class::•() in let final void #t77 = self::Extension|set#field(self::Extension|get#field(new self::Class::•()), #t76) in #t76 in let final void #t78 = self::Extension|set#field(#t74, #t75) in #t75;
-  let final self::Class* #t79 = c in #t79 == null ?{void} null : self::Extension|set#field(#t79, self::Extension|method(self::Extension|get#field(new self::Class::•())));
+  let final self::Class* #t79 = c in #t79 == null ?{self::Class*} null : self::Extension|set#field(#t79, self::Extension|method(self::Extension|get#field(new self::Class::•())));
   c = let final self::Class* #t80 = c in #t80 == null ?{self::Class*} null : let final self::Class* #t81 = self::Extension|method(self::Extension|get#field(new self::Class::•())) in let final void #t82 = self::Extension|set#field(#t80, #t81) in #t81;
   self::throws(() → self::Class* => self::Extension|get#field(self::Extension|get#field(let final self::Class* #t83 = c in #t83 == null ?{self::Class*} null : self::Extension|method(#t83))));
   self::throws(() → self::Class* => let final self::Class* #t84 = new self::Class::•() in let final void #t85 = self::Extension|set#field(self::Extension|get#field(let final self::Class* #t86 = c in #t86 == null ?{self::Class*} null : self::Extension|method(#t86)), #t84) in #t84);
@@ -157,11 +98,11 @@
   self::throws(() → self::Class* => c = let final self::Class* #t99 = let final self::Class* #t100 = new self::Class::•() in let final void #t101 = self::Extension|set#field(new self::Class::•(), #t100) in #t100 in let final void #t102 = self::Extension|set#field(let final self::Class* #t103 = c in #t103 == null ?{self::Class*} null : self::Extension|get#field(#t103), #t99) in #t99);
   self::throws(() → self::Class* => let final self::Class* #t104 = self::Extension|method(new self::Class::•()) in let final void #t105 = self::Extension|set#field(let final self::Class* #t106 = c in #t106 == null ?{self::Class*} null : self::Extension|get#field(#t106), #t104) in #t104);
   self::throws(() → self::Class* => c = let final self::Class* #t107 = self::Extension|method(new self::Class::•()) in let final void #t108 = self::Extension|set#field(let final self::Class* #t109 = c in #t109 == null ?{self::Class*} null : self::Extension|get#field(#t109), #t107) in #t107);
-  let final self::Class* #t110 = c in #t110 == null ?{void} null : self::Extension|set#field(#t110, let final self::Class* #t111 = self::Extension|get#field(new self::Class::•()) in let final void #t112 = self::Extension|set#field(new self::Class::•(), #t111) in #t111);
+  let final self::Class* #t110 = c in #t110 == null ?{self::Class*} null : self::Extension|set#field(#t110, let final self::Class* #t111 = self::Extension|get#field(new self::Class::•()) in let final void #t112 = self::Extension|set#field(new self::Class::•(), #t111) in #t111);
   c = let final self::Class* #t113 = c in #t113 == null ?{self::Class*} null : let final self::Class* #t114 = let final self::Class* #t115 = self::Extension|get#field(new self::Class::•()) in let final void #t116 = self::Extension|set#field(new self::Class::•(), #t115) in #t115 in let final void #t117 = self::Extension|set#field(#t113, #t114) in #t114;
-  let final self::Class* #t118 = c in #t118 == null ?{void} null : self::Extension|set#field(#t118, let final self::Class* #t119 = let final self::Class* #t120 = new self::Class::•() in let final void #t121 = self::Extension|set#field(new self::Class::•(), #t120) in #t120 in let final void #t122 = self::Extension|set#field(new self::Class::•(), #t119) in #t119);
+  let final self::Class* #t118 = c in #t118 == null ?{self::Class*} null : self::Extension|set#field(#t118, let final self::Class* #t119 = let final self::Class* #t120 = new self::Class::•() in let final void #t121 = self::Extension|set#field(new self::Class::•(), #t120) in #t120 in let final void #t122 = self::Extension|set#field(new self::Class::•(), #t119) in #t119);
   c = let final self::Class* #t123 = c in #t123 == null ?{self::Class*} null : let final self::Class* #t124 = let final self::Class* #t125 = let final self::Class* #t126 = new self::Class::•() in let final void #t127 = self::Extension|set#field(new self::Class::•(), #t126) in #t126 in let final void #t128 = self::Extension|set#field(new self::Class::•(), #t125) in #t125 in let final void #t129 = self::Extension|set#field(#t123, #t124) in #t124;
-  let final self::Class* #t130 = c in #t130 == null ?{void} null : self::Extension|set#field(#t130, let final self::Class* #t131 = self::Extension|method(new self::Class::•()) in let final void #t132 = self::Extension|set#field(new self::Class::•(), #t131) in #t131);
+  let final self::Class* #t130 = c in #t130 == null ?{self::Class*} null : self::Extension|set#field(#t130, let final self::Class* #t131 = self::Extension|method(new self::Class::•()) in let final void #t132 = self::Extension|set#field(new self::Class::•(), #t131) in #t131);
   c = let final self::Class* #t133 = c in #t133 == null ?{self::Class*} null : let final self::Class* #t134 = let final self::Class* #t135 = self::Extension|method(new self::Class::•()) in let final void #t136 = self::Extension|set#field(new self::Class::•(), #t135) in #t135 in let final void #t137 = self::Extension|set#field(#t133, #t134) in #t134;
   self::throws(() → self::Class* => let final self::Class* #t138 = self::Extension|get#field(new self::Class::•()) in let final void #t139 = self::Extension|set#field(let final self::Class* #t140 = c in #t140 == null ?{self::Class*} null : self::Extension|method(#t140), #t138) in #t138);
   self::throws(() → self::Class* => c = let final self::Class* #t141 = self::Extension|get#field(new self::Class::•()) in let final void #t142 = self::Extension|set#field(let final self::Class* #t143 = c in #t143 == null ?{self::Class*} null : self::Extension|method(#t143), #t141) in #t141);
@@ -173,11 +114,11 @@
   self::throws(() → self::Class* => let final self::Class* #t161 = new self::Class::•() in let final void #t162 = self::Extension|set#field(self::Extension|method(let final self::Class* #t163 = c in #t163 == null ?{self::Class*} null : self::Extension|get#field(#t163)), #t161) in #t161);
   self::throws(() → self::Class* => c = let final self::Class* #t164 = new self::Class::•() in let final void #t165 = self::Extension|set#field(self::Extension|method(let final self::Class* #t166 = c in #t166 == null ?{self::Class*} null : self::Extension|get#field(#t166)), #t164) in #t164);
   self::throws(() → self::Class* => self::Extension|method(self::Extension|method(let final self::Class* #t167 = c in #t167 == null ?{self::Class*} null : self::Extension|get#field(#t167))));
-  let final self::Class* #t168 = c in #t168 == null ?{void} null : self::Extension|set#field(#t168, self::Extension|get#field(self::Extension|method(new self::Class::•())));
+  let final self::Class* #t168 = c in #t168 == null ?{self::Class*} null : self::Extension|set#field(#t168, self::Extension|get#field(self::Extension|method(new self::Class::•())));
   c = let final self::Class* #t169 = c in #t169 == null ?{self::Class*} null : let final self::Class* #t170 = self::Extension|get#field(self::Extension|method(new self::Class::•())) in let final void #t171 = self::Extension|set#field(#t169, #t170) in #t170;
-  let final self::Class* #t172 = c in #t172 == null ?{void} null : self::Extension|set#field(#t172, let final self::Class* #t173 = new self::Class::•() in let final void #t174 = self::Extension|set#field(self::Extension|method(new self::Class::•()), #t173) in #t173);
+  let final self::Class* #t172 = c in #t172 == null ?{self::Class*} null : self::Extension|set#field(#t172, let final self::Class* #t173 = new self::Class::•() in let final void #t174 = self::Extension|set#field(self::Extension|method(new self::Class::•()), #t173) in #t173);
   c = let final self::Class* #t175 = c in #t175 == null ?{self::Class*} null : let final self::Class* #t176 = let final self::Class* #t177 = new self::Class::•() in let final void #t178 = self::Extension|set#field(self::Extension|method(new self::Class::•()), #t177) in #t177 in let final void #t179 = self::Extension|set#field(#t175, #t176) in #t176;
-  let final self::Class* #t180 = c in #t180 == null ?{void} null : self::Extension|set#field(#t180, self::Extension|method(self::Extension|method(new self::Class::•())));
+  let final self::Class* #t180 = c in #t180 == null ?{self::Class*} null : self::Extension|set#field(#t180, self::Extension|method(self::Extension|method(new self::Class::•())));
   c = let final self::Class* #t181 = c in #t181 == null ?{self::Class*} null : let final self::Class* #t182 = self::Extension|method(self::Extension|method(new self::Class::•())) in let final void #t183 = self::Extension|set#field(#t181, #t182) in #t182;
   self::throws(() → self::Class* => self::Extension|get#field(self::Extension|method(let final self::Class* #t184 = c in #t184 == null ?{self::Class*} null : self::Extension|method(#t184))));
   self::throws(() → self::Class* => let final self::Class* #t185 = new self::Class::•() in let final void #t186 = self::Extension|set#field(self::Extension|method(let final self::Class* #t187 = c in #t187 == null ?{self::Class*} null : self::Extension|method(#t187)), #t185) in #t185);
diff --git a/pkg/front_end/testcases/nnbd_mixed/no_null_shorting_extension.dart.weak.modular.expect b/pkg/front_end/testcases/nnbd_mixed/no_null_shorting_extension.dart.weak.modular.expect
index a25531b..ce52b2a 100644
--- a/pkg/front_end/testcases/nnbd_mixed/no_null_shorting_extension.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/nnbd_mixed/no_null_shorting_extension.dart.weak.modular.expect
@@ -1,63 +1,4 @@
 library;
-//
-// Problems in library:
-//
-// pkg/front_end/testcases/nnbd_mixed/no_null_shorting_extension.dart:38:6: Error: This expression has type 'void' and can't be used.
-//   c?.field = new Class();
-//      ^
-//
-// pkg/front_end/testcases/nnbd_mixed/no_null_shorting_extension.dart:46:13: Error: This expression has type 'void' and can't be used.
-//   c?.field?.field = new Class();
-//             ^
-//
-// pkg/front_end/testcases/nnbd_mixed/no_null_shorting_extension.dart:55:6: Error: This expression has type 'void' and can't be used.
-//   c?.field = new Class().field;
-//      ^
-//
-// pkg/front_end/testcases/nnbd_mixed/no_null_shorting_extension.dart:57:6: Error: This expression has type 'void' and can't be used.
-//   c?.field = new Class().field = new Class();
-//      ^
-//
-// pkg/front_end/testcases/nnbd_mixed/no_null_shorting_extension.dart:59:6: Error: This expression has type 'void' and can't be used.
-//   c?.field = new Class().method();
-//      ^
-//
-// pkg/front_end/testcases/nnbd_mixed/no_null_shorting_extension.dart:69:6: Error: This expression has type 'void' and can't be used.
-//   c?.field = new Class().field.field;
-//      ^
-//
-// pkg/front_end/testcases/nnbd_mixed/no_null_shorting_extension.dart:71:6: Error: This expression has type 'void' and can't be used.
-//   c?.field = new Class().field.field = new Class();
-//      ^
-//
-// pkg/front_end/testcases/nnbd_mixed/no_null_shorting_extension.dart:73:6: Error: This expression has type 'void' and can't be used.
-//   c?.field = new Class().field.method();
-//      ^
-//
-// pkg/front_end/testcases/nnbd_mixed/no_null_shorting_extension.dart:85:6: Error: This expression has type 'void' and can't be used.
-//   c?.field = new Class().field = new Class().field;
-//      ^
-//
-// pkg/front_end/testcases/nnbd_mixed/no_null_shorting_extension.dart:87:6: Error: This expression has type 'void' and can't be used.
-//   c?.field = new Class().field = new Class().field = new Class();
-//      ^
-//
-// pkg/front_end/testcases/nnbd_mixed/no_null_shorting_extension.dart:89:6: Error: This expression has type 'void' and can't be used.
-//   c?.field = new Class().field = new Class().method();
-//      ^
-//
-// pkg/front_end/testcases/nnbd_mixed/no_null_shorting_extension.dart:102:6: Error: This expression has type 'void' and can't be used.
-//   c?.field = new Class().method().field;
-//      ^
-//
-// pkg/front_end/testcases/nnbd_mixed/no_null_shorting_extension.dart:104:6: Error: This expression has type 'void' and can't be used.
-//   c?.field = new Class().method().field = new Class();
-//      ^
-//
-// pkg/front_end/testcases/nnbd_mixed/no_null_shorting_extension.dart:106:6: Error: This expression has type 'void' and can't be used.
-//   c?.field = new Class().method().method();
-//      ^
-//
 import self as self;
 import "dart:core" as core;
 
@@ -113,14 +54,14 @@
 }
 static method propertyAccess(self::Class* c) → void {
   let final self::Class* #t1 = c in #t1 == null ?{self::Class*} null : self::Extension|get#field(#t1);
-  let final self::Class* #t2 = c in #t2 == null ?{void} null : self::Extension|set#field(#t2, new self::Class::•());
+  let final self::Class* #t2 = c in #t2 == null ?{self::Class*} null : self::Extension|set#field(#t2, new self::Class::•());
   c = let final self::Class* #t3 = c in #t3 == null ?{self::Class*} null : let final self::Class* #t4 = new self::Class::•() in let final void #t5 = self::Extension|set#field(#t3, #t4) in #t4;
   let final self::Class* #t6 = c in #t6 == null ?{self::Class*} null : self::Extension|method(#t6);
   self::throws(() → self::Class* => self::Extension|get#field(let final self::Class* #t7 = c in #t7 == null ?{self::Class*} null : self::Extension|get#field(#t7)));
   let final self::Class* #t8 = let final self::Class* #t9 = c in #t9 == null ?{self::Class*} null : self::Extension|get#field(#t9) in #t8 == null ?{self::Class*} null : self::Extension|get#field(#t8);
   self::throws(() → self::Class* => let final self::Class* #t10 = self::Extension|get#field(let final self::Class* #t11 = c in #t11 == null ?{self::Class*} null : self::Extension|get#field(#t11)) in #t10 == null ?{self::Class*} null : self::Extension|get#field(#t10));
   self::throws(() → self::Class* => let final self::Class* #t12 = new self::Class::•() in let final void #t13 = self::Extension|set#field(let final self::Class* #t14 = c in #t14 == null ?{self::Class*} null : self::Extension|get#field(#t14), #t12) in #t12);
-  let final self::Class* #t15 = let final self::Class* #t16 = c in #t16 == null ?{self::Class*} null : self::Extension|get#field(#t16) in #t15 == null ?{void} null : self::Extension|set#field(#t15, new self::Class::•());
+  let final self::Class* #t15 = let final self::Class* #t16 = c in #t16 == null ?{self::Class*} null : self::Extension|get#field(#t16) in #t15 == null ?{self::Class*} null : self::Extension|set#field(#t15, new self::Class::•());
   self::throws(() → self::Class* => let final self::Class* #t17 = self::Extension|get#field(let final self::Class* #t18 = c in #t18 == null ?{self::Class*} null : self::Extension|get#field(#t18)) in #t17 == null ?{self::Class*} null : let final self::Class* #t19 = new self::Class::•() in let final void #t20 = self::Extension|set#field(#t17, #t19) in #t19);
   self::throws(() → self::Class* => self::Extension|get#field(let final self::Class* #t21 = c in #t21 == null ?{self::Class*} null : self::Extension|get#field(#t21)));
   self::throws(() → self::Class* => self::Extension|get#field(let final self::Class* #t22 = c in #t22 == null ?{self::Class*} null : let final self::Class* #t23 = new self::Class::•() in let final void #t24 = self::Extension|set#field(#t22, #t23) in #t23));
@@ -129,11 +70,11 @@
   c = let final self::Class* #t29 = let final self::Class* #t30 = c in #t30 == null ?{self::Class*} null : self::Extension|get#field(#t30) in #t29 == null ?{self::Class*} null : let final self::Class* #t31 = new self::Class::•() in let final void #t32 = self::Extension|set#field(#t29, #t31) in #t31;
   self::throws(() → self::Class* => c = let final self::Class* #t33 = self::Extension|get#field(let final self::Class* #t34 = c in #t34 == null ?{self::Class*} null : self::Extension|get#field(#t34)) in #t33 == null ?{self::Class*} null : let final self::Class* #t35 = new self::Class::•() in let final void #t36 = self::Extension|set#field(#t33, #t35) in #t35);
   self::throws(() → self::Class* => self::Extension|method(let final self::Class* #t37 = c in #t37 == null ?{self::Class*} null : self::Extension|get#field(#t37)));
-  let final self::Class* #t38 = c in #t38 == null ?{void} null : self::Extension|set#field(#t38, self::Extension|get#field(new self::Class::•()));
+  let final self::Class* #t38 = c in #t38 == null ?{self::Class*} null : self::Extension|set#field(#t38, self::Extension|get#field(new self::Class::•()));
   c = let final self::Class* #t39 = c in #t39 == null ?{self::Class*} null : let final self::Class* #t40 = self::Extension|get#field(new self::Class::•()) in let final void #t41 = self::Extension|set#field(#t39, #t40) in #t40;
-  let final self::Class* #t42 = c in #t42 == null ?{void} null : self::Extension|set#field(#t42, let final self::Class* #t43 = new self::Class::•() in let final void #t44 = self::Extension|set#field(new self::Class::•(), #t43) in #t43);
+  let final self::Class* #t42 = c in #t42 == null ?{self::Class*} null : self::Extension|set#field(#t42, let final self::Class* #t43 = new self::Class::•() in let final void #t44 = self::Extension|set#field(new self::Class::•(), #t43) in #t43);
   c = let final self::Class* #t45 = c in #t45 == null ?{self::Class*} null : let final self::Class* #t46 = let final self::Class* #t47 = new self::Class::•() in let final void #t48 = self::Extension|set#field(new self::Class::•(), #t47) in #t47 in let final void #t49 = self::Extension|set#field(#t45, #t46) in #t46;
-  let final self::Class* #t50 = c in #t50 == null ?{void} null : self::Extension|set#field(#t50, self::Extension|method(new self::Class::•()));
+  let final self::Class* #t50 = c in #t50 == null ?{self::Class*} null : self::Extension|set#field(#t50, self::Extension|method(new self::Class::•()));
   c = let final self::Class* #t51 = c in #t51 == null ?{self::Class*} null : let final self::Class* #t52 = self::Extension|method(new self::Class::•()) in let final void #t53 = self::Extension|set#field(#t51, #t52) in #t52;
   self::throws(() → self::Class* => self::Extension|get#field(let final self::Class* #t54 = c in #t54 == null ?{self::Class*} null : self::Extension|method(#t54)));
   self::throws(() → self::Class* => let final self::Class* #t55 = new self::Class::•() in let final void #t56 = self::Extension|set#field(let final self::Class* #t57 = c in #t57 == null ?{self::Class*} null : self::Extension|method(#t57), #t55) in #t55);
@@ -142,11 +83,11 @@
   self::throws(() → self::Class* => let final self::Class* #t60 = new self::Class::•() in let final void #t61 = self::Extension|set#field(self::Extension|get#field(let final self::Class* #t62 = c in #t62 == null ?{self::Class*} null : self::Extension|get#field(#t62)), #t60) in #t60);
   self::throws(() → self::Class* => c = let final self::Class* #t63 = new self::Class::•() in let final void #t64 = self::Extension|set#field(self::Extension|get#field(let final self::Class* #t65 = c in #t65 == null ?{self::Class*} null : self::Extension|get#field(#t65)), #t63) in #t63);
   self::throws(() → self::Class* => self::Extension|method(self::Extension|get#field(let final self::Class* #t66 = c in #t66 == null ?{self::Class*} null : self::Extension|get#field(#t66))));
-  let final self::Class* #t67 = c in #t67 == null ?{void} null : self::Extension|set#field(#t67, self::Extension|get#field(self::Extension|get#field(new self::Class::•())));
+  let final self::Class* #t67 = c in #t67 == null ?{self::Class*} null : self::Extension|set#field(#t67, self::Extension|get#field(self::Extension|get#field(new self::Class::•())));
   c = let final self::Class* #t68 = c in #t68 == null ?{self::Class*} null : let final self::Class* #t69 = self::Extension|get#field(self::Extension|get#field(new self::Class::•())) in let final void #t70 = self::Extension|set#field(#t68, #t69) in #t69;
-  let final self::Class* #t71 = c in #t71 == null ?{void} null : self::Extension|set#field(#t71, let final self::Class* #t72 = new self::Class::•() in let final void #t73 = self::Extension|set#field(self::Extension|get#field(new self::Class::•()), #t72) in #t72);
+  let final self::Class* #t71 = c in #t71 == null ?{self::Class*} null : self::Extension|set#field(#t71, let final self::Class* #t72 = new self::Class::•() in let final void #t73 = self::Extension|set#field(self::Extension|get#field(new self::Class::•()), #t72) in #t72);
   c = let final self::Class* #t74 = c in #t74 == null ?{self::Class*} null : let final self::Class* #t75 = let final self::Class* #t76 = new self::Class::•() in let final void #t77 = self::Extension|set#field(self::Extension|get#field(new self::Class::•()), #t76) in #t76 in let final void #t78 = self::Extension|set#field(#t74, #t75) in #t75;
-  let final self::Class* #t79 = c in #t79 == null ?{void} null : self::Extension|set#field(#t79, self::Extension|method(self::Extension|get#field(new self::Class::•())));
+  let final self::Class* #t79 = c in #t79 == null ?{self::Class*} null : self::Extension|set#field(#t79, self::Extension|method(self::Extension|get#field(new self::Class::•())));
   c = let final self::Class* #t80 = c in #t80 == null ?{self::Class*} null : let final self::Class* #t81 = self::Extension|method(self::Extension|get#field(new self::Class::•())) in let final void #t82 = self::Extension|set#field(#t80, #t81) in #t81;
   self::throws(() → self::Class* => self::Extension|get#field(self::Extension|get#field(let final self::Class* #t83 = c in #t83 == null ?{self::Class*} null : self::Extension|method(#t83))));
   self::throws(() → self::Class* => let final self::Class* #t84 = new self::Class::•() in let final void #t85 = self::Extension|set#field(self::Extension|get#field(let final self::Class* #t86 = c in #t86 == null ?{self::Class*} null : self::Extension|method(#t86)), #t84) in #t84);
@@ -157,11 +98,11 @@
   self::throws(() → self::Class* => c = let final self::Class* #t99 = let final self::Class* #t100 = new self::Class::•() in let final void #t101 = self::Extension|set#field(new self::Class::•(), #t100) in #t100 in let final void #t102 = self::Extension|set#field(let final self::Class* #t103 = c in #t103 == null ?{self::Class*} null : self::Extension|get#field(#t103), #t99) in #t99);
   self::throws(() → self::Class* => let final self::Class* #t104 = self::Extension|method(new self::Class::•()) in let final void #t105 = self::Extension|set#field(let final self::Class* #t106 = c in #t106 == null ?{self::Class*} null : self::Extension|get#field(#t106), #t104) in #t104);
   self::throws(() → self::Class* => c = let final self::Class* #t107 = self::Extension|method(new self::Class::•()) in let final void #t108 = self::Extension|set#field(let final self::Class* #t109 = c in #t109 == null ?{self::Class*} null : self::Extension|get#field(#t109), #t107) in #t107);
-  let final self::Class* #t110 = c in #t110 == null ?{void} null : self::Extension|set#field(#t110, let final self::Class* #t111 = self::Extension|get#field(new self::Class::•()) in let final void #t112 = self::Extension|set#field(new self::Class::•(), #t111) in #t111);
+  let final self::Class* #t110 = c in #t110 == null ?{self::Class*} null : self::Extension|set#field(#t110, let final self::Class* #t111 = self::Extension|get#field(new self::Class::•()) in let final void #t112 = self::Extension|set#field(new self::Class::•(), #t111) in #t111);
   c = let final self::Class* #t113 = c in #t113 == null ?{self::Class*} null : let final self::Class* #t114 = let final self::Class* #t115 = self::Extension|get#field(new self::Class::•()) in let final void #t116 = self::Extension|set#field(new self::Class::•(), #t115) in #t115 in let final void #t117 = self::Extension|set#field(#t113, #t114) in #t114;
-  let final self::Class* #t118 = c in #t118 == null ?{void} null : self::Extension|set#field(#t118, let final self::Class* #t119 = let final self::Class* #t120 = new self::Class::•() in let final void #t121 = self::Extension|set#field(new self::Class::•(), #t120) in #t120 in let final void #t122 = self::Extension|set#field(new self::Class::•(), #t119) in #t119);
+  let final self::Class* #t118 = c in #t118 == null ?{self::Class*} null : self::Extension|set#field(#t118, let final self::Class* #t119 = let final self::Class* #t120 = new self::Class::•() in let final void #t121 = self::Extension|set#field(new self::Class::•(), #t120) in #t120 in let final void #t122 = self::Extension|set#field(new self::Class::•(), #t119) in #t119);
   c = let final self::Class* #t123 = c in #t123 == null ?{self::Class*} null : let final self::Class* #t124 = let final self::Class* #t125 = let final self::Class* #t126 = new self::Class::•() in let final void #t127 = self::Extension|set#field(new self::Class::•(), #t126) in #t126 in let final void #t128 = self::Extension|set#field(new self::Class::•(), #t125) in #t125 in let final void #t129 = self::Extension|set#field(#t123, #t124) in #t124;
-  let final self::Class* #t130 = c in #t130 == null ?{void} null : self::Extension|set#field(#t130, let final self::Class* #t131 = self::Extension|method(new self::Class::•()) in let final void #t132 = self::Extension|set#field(new self::Class::•(), #t131) in #t131);
+  let final self::Class* #t130 = c in #t130 == null ?{self::Class*} null : self::Extension|set#field(#t130, let final self::Class* #t131 = self::Extension|method(new self::Class::•()) in let final void #t132 = self::Extension|set#field(new self::Class::•(), #t131) in #t131);
   c = let final self::Class* #t133 = c in #t133 == null ?{self::Class*} null : let final self::Class* #t134 = let final self::Class* #t135 = self::Extension|method(new self::Class::•()) in let final void #t136 = self::Extension|set#field(new self::Class::•(), #t135) in #t135 in let final void #t137 = self::Extension|set#field(#t133, #t134) in #t134;
   self::throws(() → self::Class* => let final self::Class* #t138 = self::Extension|get#field(new self::Class::•()) in let final void #t139 = self::Extension|set#field(let final self::Class* #t140 = c in #t140 == null ?{self::Class*} null : self::Extension|method(#t140), #t138) in #t138);
   self::throws(() → self::Class* => c = let final self::Class* #t141 = self::Extension|get#field(new self::Class::•()) in let final void #t142 = self::Extension|set#field(let final self::Class* #t143 = c in #t143 == null ?{self::Class*} null : self::Extension|method(#t143), #t141) in #t141);
@@ -173,11 +114,11 @@
   self::throws(() → self::Class* => let final self::Class* #t161 = new self::Class::•() in let final void #t162 = self::Extension|set#field(self::Extension|method(let final self::Class* #t163 = c in #t163 == null ?{self::Class*} null : self::Extension|get#field(#t163)), #t161) in #t161);
   self::throws(() → self::Class* => c = let final self::Class* #t164 = new self::Class::•() in let final void #t165 = self::Extension|set#field(self::Extension|method(let final self::Class* #t166 = c in #t166 == null ?{self::Class*} null : self::Extension|get#field(#t166)), #t164) in #t164);
   self::throws(() → self::Class* => self::Extension|method(self::Extension|method(let final self::Class* #t167 = c in #t167 == null ?{self::Class*} null : self::Extension|get#field(#t167))));
-  let final self::Class* #t168 = c in #t168 == null ?{void} null : self::Extension|set#field(#t168, self::Extension|get#field(self::Extension|method(new self::Class::•())));
+  let final self::Class* #t168 = c in #t168 == null ?{self::Class*} null : self::Extension|set#field(#t168, self::Extension|get#field(self::Extension|method(new self::Class::•())));
   c = let final self::Class* #t169 = c in #t169 == null ?{self::Class*} null : let final self::Class* #t170 = self::Extension|get#field(self::Extension|method(new self::Class::•())) in let final void #t171 = self::Extension|set#field(#t169, #t170) in #t170;
-  let final self::Class* #t172 = c in #t172 == null ?{void} null : self::Extension|set#field(#t172, let final self::Class* #t173 = new self::Class::•() in let final void #t174 = self::Extension|set#field(self::Extension|method(new self::Class::•()), #t173) in #t173);
+  let final self::Class* #t172 = c in #t172 == null ?{self::Class*} null : self::Extension|set#field(#t172, let final self::Class* #t173 = new self::Class::•() in let final void #t174 = self::Extension|set#field(self::Extension|method(new self::Class::•()), #t173) in #t173);
   c = let final self::Class* #t175 = c in #t175 == null ?{self::Class*} null : let final self::Class* #t176 = let final self::Class* #t177 = new self::Class::•() in let final void #t178 = self::Extension|set#field(self::Extension|method(new self::Class::•()), #t177) in #t177 in let final void #t179 = self::Extension|set#field(#t175, #t176) in #t176;
-  let final self::Class* #t180 = c in #t180 == null ?{void} null : self::Extension|set#field(#t180, self::Extension|method(self::Extension|method(new self::Class::•())));
+  let final self::Class* #t180 = c in #t180 == null ?{self::Class*} null : self::Extension|set#field(#t180, self::Extension|method(self::Extension|method(new self::Class::•())));
   c = let final self::Class* #t181 = c in #t181 == null ?{self::Class*} null : let final self::Class* #t182 = self::Extension|method(self::Extension|method(new self::Class::•())) in let final void #t183 = self::Extension|set#field(#t181, #t182) in #t182;
   self::throws(() → self::Class* => self::Extension|get#field(self::Extension|method(let final self::Class* #t184 = c in #t184 == null ?{self::Class*} null : self::Extension|method(#t184))));
   self::throws(() → self::Class* => let final self::Class* #t185 = new self::Class::•() in let final void #t186 = self::Extension|set#field(self::Extension|method(let final self::Class* #t187 = c in #t187 == null ?{self::Class*} null : self::Extension|method(#t187)), #t185) in #t185);
diff --git a/pkg/front_end/testcases/nnbd_mixed/no_null_shorting_extension.dart.weak.transformed.expect b/pkg/front_end/testcases/nnbd_mixed/no_null_shorting_extension.dart.weak.transformed.expect
index a25531b..ce52b2a 100644
--- a/pkg/front_end/testcases/nnbd_mixed/no_null_shorting_extension.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/nnbd_mixed/no_null_shorting_extension.dart.weak.transformed.expect
@@ -1,63 +1,4 @@
 library;
-//
-// Problems in library:
-//
-// pkg/front_end/testcases/nnbd_mixed/no_null_shorting_extension.dart:38:6: Error: This expression has type 'void' and can't be used.
-//   c?.field = new Class();
-//      ^
-//
-// pkg/front_end/testcases/nnbd_mixed/no_null_shorting_extension.dart:46:13: Error: This expression has type 'void' and can't be used.
-//   c?.field?.field = new Class();
-//             ^
-//
-// pkg/front_end/testcases/nnbd_mixed/no_null_shorting_extension.dart:55:6: Error: This expression has type 'void' and can't be used.
-//   c?.field = new Class().field;
-//      ^
-//
-// pkg/front_end/testcases/nnbd_mixed/no_null_shorting_extension.dart:57:6: Error: This expression has type 'void' and can't be used.
-//   c?.field = new Class().field = new Class();
-//      ^
-//
-// pkg/front_end/testcases/nnbd_mixed/no_null_shorting_extension.dart:59:6: Error: This expression has type 'void' and can't be used.
-//   c?.field = new Class().method();
-//      ^
-//
-// pkg/front_end/testcases/nnbd_mixed/no_null_shorting_extension.dart:69:6: Error: This expression has type 'void' and can't be used.
-//   c?.field = new Class().field.field;
-//      ^
-//
-// pkg/front_end/testcases/nnbd_mixed/no_null_shorting_extension.dart:71:6: Error: This expression has type 'void' and can't be used.
-//   c?.field = new Class().field.field = new Class();
-//      ^
-//
-// pkg/front_end/testcases/nnbd_mixed/no_null_shorting_extension.dart:73:6: Error: This expression has type 'void' and can't be used.
-//   c?.field = new Class().field.method();
-//      ^
-//
-// pkg/front_end/testcases/nnbd_mixed/no_null_shorting_extension.dart:85:6: Error: This expression has type 'void' and can't be used.
-//   c?.field = new Class().field = new Class().field;
-//      ^
-//
-// pkg/front_end/testcases/nnbd_mixed/no_null_shorting_extension.dart:87:6: Error: This expression has type 'void' and can't be used.
-//   c?.field = new Class().field = new Class().field = new Class();
-//      ^
-//
-// pkg/front_end/testcases/nnbd_mixed/no_null_shorting_extension.dart:89:6: Error: This expression has type 'void' and can't be used.
-//   c?.field = new Class().field = new Class().method();
-//      ^
-//
-// pkg/front_end/testcases/nnbd_mixed/no_null_shorting_extension.dart:102:6: Error: This expression has type 'void' and can't be used.
-//   c?.field = new Class().method().field;
-//      ^
-//
-// pkg/front_end/testcases/nnbd_mixed/no_null_shorting_extension.dart:104:6: Error: This expression has type 'void' and can't be used.
-//   c?.field = new Class().method().field = new Class();
-//      ^
-//
-// pkg/front_end/testcases/nnbd_mixed/no_null_shorting_extension.dart:106:6: Error: This expression has type 'void' and can't be used.
-//   c?.field = new Class().method().method();
-//      ^
-//
 import self as self;
 import "dart:core" as core;
 
@@ -113,14 +54,14 @@
 }
 static method propertyAccess(self::Class* c) → void {
   let final self::Class* #t1 = c in #t1 == null ?{self::Class*} null : self::Extension|get#field(#t1);
-  let final self::Class* #t2 = c in #t2 == null ?{void} null : self::Extension|set#field(#t2, new self::Class::•());
+  let final self::Class* #t2 = c in #t2 == null ?{self::Class*} null : self::Extension|set#field(#t2, new self::Class::•());
   c = let final self::Class* #t3 = c in #t3 == null ?{self::Class*} null : let final self::Class* #t4 = new self::Class::•() in let final void #t5 = self::Extension|set#field(#t3, #t4) in #t4;
   let final self::Class* #t6 = c in #t6 == null ?{self::Class*} null : self::Extension|method(#t6);
   self::throws(() → self::Class* => self::Extension|get#field(let final self::Class* #t7 = c in #t7 == null ?{self::Class*} null : self::Extension|get#field(#t7)));
   let final self::Class* #t8 = let final self::Class* #t9 = c in #t9 == null ?{self::Class*} null : self::Extension|get#field(#t9) in #t8 == null ?{self::Class*} null : self::Extension|get#field(#t8);
   self::throws(() → self::Class* => let final self::Class* #t10 = self::Extension|get#field(let final self::Class* #t11 = c in #t11 == null ?{self::Class*} null : self::Extension|get#field(#t11)) in #t10 == null ?{self::Class*} null : self::Extension|get#field(#t10));
   self::throws(() → self::Class* => let final self::Class* #t12 = new self::Class::•() in let final void #t13 = self::Extension|set#field(let final self::Class* #t14 = c in #t14 == null ?{self::Class*} null : self::Extension|get#field(#t14), #t12) in #t12);
-  let final self::Class* #t15 = let final self::Class* #t16 = c in #t16 == null ?{self::Class*} null : self::Extension|get#field(#t16) in #t15 == null ?{void} null : self::Extension|set#field(#t15, new self::Class::•());
+  let final self::Class* #t15 = let final self::Class* #t16 = c in #t16 == null ?{self::Class*} null : self::Extension|get#field(#t16) in #t15 == null ?{self::Class*} null : self::Extension|set#field(#t15, new self::Class::•());
   self::throws(() → self::Class* => let final self::Class* #t17 = self::Extension|get#field(let final self::Class* #t18 = c in #t18 == null ?{self::Class*} null : self::Extension|get#field(#t18)) in #t17 == null ?{self::Class*} null : let final self::Class* #t19 = new self::Class::•() in let final void #t20 = self::Extension|set#field(#t17, #t19) in #t19);
   self::throws(() → self::Class* => self::Extension|get#field(let final self::Class* #t21 = c in #t21 == null ?{self::Class*} null : self::Extension|get#field(#t21)));
   self::throws(() → self::Class* => self::Extension|get#field(let final self::Class* #t22 = c in #t22 == null ?{self::Class*} null : let final self::Class* #t23 = new self::Class::•() in let final void #t24 = self::Extension|set#field(#t22, #t23) in #t23));
@@ -129,11 +70,11 @@
   c = let final self::Class* #t29 = let final self::Class* #t30 = c in #t30 == null ?{self::Class*} null : self::Extension|get#field(#t30) in #t29 == null ?{self::Class*} null : let final self::Class* #t31 = new self::Class::•() in let final void #t32 = self::Extension|set#field(#t29, #t31) in #t31;
   self::throws(() → self::Class* => c = let final self::Class* #t33 = self::Extension|get#field(let final self::Class* #t34 = c in #t34 == null ?{self::Class*} null : self::Extension|get#field(#t34)) in #t33 == null ?{self::Class*} null : let final self::Class* #t35 = new self::Class::•() in let final void #t36 = self::Extension|set#field(#t33, #t35) in #t35);
   self::throws(() → self::Class* => self::Extension|method(let final self::Class* #t37 = c in #t37 == null ?{self::Class*} null : self::Extension|get#field(#t37)));
-  let final self::Class* #t38 = c in #t38 == null ?{void} null : self::Extension|set#field(#t38, self::Extension|get#field(new self::Class::•()));
+  let final self::Class* #t38 = c in #t38 == null ?{self::Class*} null : self::Extension|set#field(#t38, self::Extension|get#field(new self::Class::•()));
   c = let final self::Class* #t39 = c in #t39 == null ?{self::Class*} null : let final self::Class* #t40 = self::Extension|get#field(new self::Class::•()) in let final void #t41 = self::Extension|set#field(#t39, #t40) in #t40;
-  let final self::Class* #t42 = c in #t42 == null ?{void} null : self::Extension|set#field(#t42, let final self::Class* #t43 = new self::Class::•() in let final void #t44 = self::Extension|set#field(new self::Class::•(), #t43) in #t43);
+  let final self::Class* #t42 = c in #t42 == null ?{self::Class*} null : self::Extension|set#field(#t42, let final self::Class* #t43 = new self::Class::•() in let final void #t44 = self::Extension|set#field(new self::Class::•(), #t43) in #t43);
   c = let final self::Class* #t45 = c in #t45 == null ?{self::Class*} null : let final self::Class* #t46 = let final self::Class* #t47 = new self::Class::•() in let final void #t48 = self::Extension|set#field(new self::Class::•(), #t47) in #t47 in let final void #t49 = self::Extension|set#field(#t45, #t46) in #t46;
-  let final self::Class* #t50 = c in #t50 == null ?{void} null : self::Extension|set#field(#t50, self::Extension|method(new self::Class::•()));
+  let final self::Class* #t50 = c in #t50 == null ?{self::Class*} null : self::Extension|set#field(#t50, self::Extension|method(new self::Class::•()));
   c = let final self::Class* #t51 = c in #t51 == null ?{self::Class*} null : let final self::Class* #t52 = self::Extension|method(new self::Class::•()) in let final void #t53 = self::Extension|set#field(#t51, #t52) in #t52;
   self::throws(() → self::Class* => self::Extension|get#field(let final self::Class* #t54 = c in #t54 == null ?{self::Class*} null : self::Extension|method(#t54)));
   self::throws(() → self::Class* => let final self::Class* #t55 = new self::Class::•() in let final void #t56 = self::Extension|set#field(let final self::Class* #t57 = c in #t57 == null ?{self::Class*} null : self::Extension|method(#t57), #t55) in #t55);
@@ -142,11 +83,11 @@
   self::throws(() → self::Class* => let final self::Class* #t60 = new self::Class::•() in let final void #t61 = self::Extension|set#field(self::Extension|get#field(let final self::Class* #t62 = c in #t62 == null ?{self::Class*} null : self::Extension|get#field(#t62)), #t60) in #t60);
   self::throws(() → self::Class* => c = let final self::Class* #t63 = new self::Class::•() in let final void #t64 = self::Extension|set#field(self::Extension|get#field(let final self::Class* #t65 = c in #t65 == null ?{self::Class*} null : self::Extension|get#field(#t65)), #t63) in #t63);
   self::throws(() → self::Class* => self::Extension|method(self::Extension|get#field(let final self::Class* #t66 = c in #t66 == null ?{self::Class*} null : self::Extension|get#field(#t66))));
-  let final self::Class* #t67 = c in #t67 == null ?{void} null : self::Extension|set#field(#t67, self::Extension|get#field(self::Extension|get#field(new self::Class::•())));
+  let final self::Class* #t67 = c in #t67 == null ?{self::Class*} null : self::Extension|set#field(#t67, self::Extension|get#field(self::Extension|get#field(new self::Class::•())));
   c = let final self::Class* #t68 = c in #t68 == null ?{self::Class*} null : let final self::Class* #t69 = self::Extension|get#field(self::Extension|get#field(new self::Class::•())) in let final void #t70 = self::Extension|set#field(#t68, #t69) in #t69;
-  let final self::Class* #t71 = c in #t71 == null ?{void} null : self::Extension|set#field(#t71, let final self::Class* #t72 = new self::Class::•() in let final void #t73 = self::Extension|set#field(self::Extension|get#field(new self::Class::•()), #t72) in #t72);
+  let final self::Class* #t71 = c in #t71 == null ?{self::Class*} null : self::Extension|set#field(#t71, let final self::Class* #t72 = new self::Class::•() in let final void #t73 = self::Extension|set#field(self::Extension|get#field(new self::Class::•()), #t72) in #t72);
   c = let final self::Class* #t74 = c in #t74 == null ?{self::Class*} null : let final self::Class* #t75 = let final self::Class* #t76 = new self::Class::•() in let final void #t77 = self::Extension|set#field(self::Extension|get#field(new self::Class::•()), #t76) in #t76 in let final void #t78 = self::Extension|set#field(#t74, #t75) in #t75;
-  let final self::Class* #t79 = c in #t79 == null ?{void} null : self::Extension|set#field(#t79, self::Extension|method(self::Extension|get#field(new self::Class::•())));
+  let final self::Class* #t79 = c in #t79 == null ?{self::Class*} null : self::Extension|set#field(#t79, self::Extension|method(self::Extension|get#field(new self::Class::•())));
   c = let final self::Class* #t80 = c in #t80 == null ?{self::Class*} null : let final self::Class* #t81 = self::Extension|method(self::Extension|get#field(new self::Class::•())) in let final void #t82 = self::Extension|set#field(#t80, #t81) in #t81;
   self::throws(() → self::Class* => self::Extension|get#field(self::Extension|get#field(let final self::Class* #t83 = c in #t83 == null ?{self::Class*} null : self::Extension|method(#t83))));
   self::throws(() → self::Class* => let final self::Class* #t84 = new self::Class::•() in let final void #t85 = self::Extension|set#field(self::Extension|get#field(let final self::Class* #t86 = c in #t86 == null ?{self::Class*} null : self::Extension|method(#t86)), #t84) in #t84);
@@ -157,11 +98,11 @@
   self::throws(() → self::Class* => c = let final self::Class* #t99 = let final self::Class* #t100 = new self::Class::•() in let final void #t101 = self::Extension|set#field(new self::Class::•(), #t100) in #t100 in let final void #t102 = self::Extension|set#field(let final self::Class* #t103 = c in #t103 == null ?{self::Class*} null : self::Extension|get#field(#t103), #t99) in #t99);
   self::throws(() → self::Class* => let final self::Class* #t104 = self::Extension|method(new self::Class::•()) in let final void #t105 = self::Extension|set#field(let final self::Class* #t106 = c in #t106 == null ?{self::Class*} null : self::Extension|get#field(#t106), #t104) in #t104);
   self::throws(() → self::Class* => c = let final self::Class* #t107 = self::Extension|method(new self::Class::•()) in let final void #t108 = self::Extension|set#field(let final self::Class* #t109 = c in #t109 == null ?{self::Class*} null : self::Extension|get#field(#t109), #t107) in #t107);
-  let final self::Class* #t110 = c in #t110 == null ?{void} null : self::Extension|set#field(#t110, let final self::Class* #t111 = self::Extension|get#field(new self::Class::•()) in let final void #t112 = self::Extension|set#field(new self::Class::•(), #t111) in #t111);
+  let final self::Class* #t110 = c in #t110 == null ?{self::Class*} null : self::Extension|set#field(#t110, let final self::Class* #t111 = self::Extension|get#field(new self::Class::•()) in let final void #t112 = self::Extension|set#field(new self::Class::•(), #t111) in #t111);
   c = let final self::Class* #t113 = c in #t113 == null ?{self::Class*} null : let final self::Class* #t114 = let final self::Class* #t115 = self::Extension|get#field(new self::Class::•()) in let final void #t116 = self::Extension|set#field(new self::Class::•(), #t115) in #t115 in let final void #t117 = self::Extension|set#field(#t113, #t114) in #t114;
-  let final self::Class* #t118 = c in #t118 == null ?{void} null : self::Extension|set#field(#t118, let final self::Class* #t119 = let final self::Class* #t120 = new self::Class::•() in let final void #t121 = self::Extension|set#field(new self::Class::•(), #t120) in #t120 in let final void #t122 = self::Extension|set#field(new self::Class::•(), #t119) in #t119);
+  let final self::Class* #t118 = c in #t118 == null ?{self::Class*} null : self::Extension|set#field(#t118, let final self::Class* #t119 = let final self::Class* #t120 = new self::Class::•() in let final void #t121 = self::Extension|set#field(new self::Class::•(), #t120) in #t120 in let final void #t122 = self::Extension|set#field(new self::Class::•(), #t119) in #t119);
   c = let final self::Class* #t123 = c in #t123 == null ?{self::Class*} null : let final self::Class* #t124 = let final self::Class* #t125 = let final self::Class* #t126 = new self::Class::•() in let final void #t127 = self::Extension|set#field(new self::Class::•(), #t126) in #t126 in let final void #t128 = self::Extension|set#field(new self::Class::•(), #t125) in #t125 in let final void #t129 = self::Extension|set#field(#t123, #t124) in #t124;
-  let final self::Class* #t130 = c in #t130 == null ?{void} null : self::Extension|set#field(#t130, let final self::Class* #t131 = self::Extension|method(new self::Class::•()) in let final void #t132 = self::Extension|set#field(new self::Class::•(), #t131) in #t131);
+  let final self::Class* #t130 = c in #t130 == null ?{self::Class*} null : self::Extension|set#field(#t130, let final self::Class* #t131 = self::Extension|method(new self::Class::•()) in let final void #t132 = self::Extension|set#field(new self::Class::•(), #t131) in #t131);
   c = let final self::Class* #t133 = c in #t133 == null ?{self::Class*} null : let final self::Class* #t134 = let final self::Class* #t135 = self::Extension|method(new self::Class::•()) in let final void #t136 = self::Extension|set#field(new self::Class::•(), #t135) in #t135 in let final void #t137 = self::Extension|set#field(#t133, #t134) in #t134;
   self::throws(() → self::Class* => let final self::Class* #t138 = self::Extension|get#field(new self::Class::•()) in let final void #t139 = self::Extension|set#field(let final self::Class* #t140 = c in #t140 == null ?{self::Class*} null : self::Extension|method(#t140), #t138) in #t138);
   self::throws(() → self::Class* => c = let final self::Class* #t141 = self::Extension|get#field(new self::Class::•()) in let final void #t142 = self::Extension|set#field(let final self::Class* #t143 = c in #t143 == null ?{self::Class*} null : self::Extension|method(#t143), #t141) in #t141);
@@ -173,11 +114,11 @@
   self::throws(() → self::Class* => let final self::Class* #t161 = new self::Class::•() in let final void #t162 = self::Extension|set#field(self::Extension|method(let final self::Class* #t163 = c in #t163 == null ?{self::Class*} null : self::Extension|get#field(#t163)), #t161) in #t161);
   self::throws(() → self::Class* => c = let final self::Class* #t164 = new self::Class::•() in let final void #t165 = self::Extension|set#field(self::Extension|method(let final self::Class* #t166 = c in #t166 == null ?{self::Class*} null : self::Extension|get#field(#t166)), #t164) in #t164);
   self::throws(() → self::Class* => self::Extension|method(self::Extension|method(let final self::Class* #t167 = c in #t167 == null ?{self::Class*} null : self::Extension|get#field(#t167))));
-  let final self::Class* #t168 = c in #t168 == null ?{void} null : self::Extension|set#field(#t168, self::Extension|get#field(self::Extension|method(new self::Class::•())));
+  let final self::Class* #t168 = c in #t168 == null ?{self::Class*} null : self::Extension|set#field(#t168, self::Extension|get#field(self::Extension|method(new self::Class::•())));
   c = let final self::Class* #t169 = c in #t169 == null ?{self::Class*} null : let final self::Class* #t170 = self::Extension|get#field(self::Extension|method(new self::Class::•())) in let final void #t171 = self::Extension|set#field(#t169, #t170) in #t170;
-  let final self::Class* #t172 = c in #t172 == null ?{void} null : self::Extension|set#field(#t172, let final self::Class* #t173 = new self::Class::•() in let final void #t174 = self::Extension|set#field(self::Extension|method(new self::Class::•()), #t173) in #t173);
+  let final self::Class* #t172 = c in #t172 == null ?{self::Class*} null : self::Extension|set#field(#t172, let final self::Class* #t173 = new self::Class::•() in let final void #t174 = self::Extension|set#field(self::Extension|method(new self::Class::•()), #t173) in #t173);
   c = let final self::Class* #t175 = c in #t175 == null ?{self::Class*} null : let final self::Class* #t176 = let final self::Class* #t177 = new self::Class::•() in let final void #t178 = self::Extension|set#field(self::Extension|method(new self::Class::•()), #t177) in #t177 in let final void #t179 = self::Extension|set#field(#t175, #t176) in #t176;
-  let final self::Class* #t180 = c in #t180 == null ?{void} null : self::Extension|set#field(#t180, self::Extension|method(self::Extension|method(new self::Class::•())));
+  let final self::Class* #t180 = c in #t180 == null ?{self::Class*} null : self::Extension|set#field(#t180, self::Extension|method(self::Extension|method(new self::Class::•())));
   c = let final self::Class* #t181 = c in #t181 == null ?{self::Class*} null : let final self::Class* #t182 = self::Extension|method(self::Extension|method(new self::Class::•())) in let final void #t183 = self::Extension|set#field(#t181, #t182) in #t182;
   self::throws(() → self::Class* => self::Extension|get#field(self::Extension|method(let final self::Class* #t184 = c in #t184 == null ?{self::Class*} null : self::Extension|method(#t184))));
   self::throws(() → self::Class* => let final self::Class* #t185 = new self::Class::•() in let final void #t186 = self::Extension|set#field(self::Extension|method(let final self::Class* #t187 = c in #t187 == null ?{self::Class*} null : self::Extension|method(#t187)), #t185) in #t185);