Revert the fix for issue #31770

Back in January we wanted to strip the call to unary- in the minimum
int64 literal.  Now we have decided we want to keep it for the back
ends.

Change-Id: I06b3e20e63a59c84828eb5bdba4613f1c226ecbb
Reviewed-on: https://dart-review.googlesource.com/60444
Reviewed-by: Stephen Adams <sra@google.com>
diff --git a/pkg/front_end/lib/src/fasta/kernel/body_builder.dart b/pkg/front_end/lib/src/fasta/kernel/body_builder.dart
index 7843457..a43afde 100644
--- a/pkg/front_end/lib/src/fasta/kernel/body_builder.dart
+++ b/pkg/front_end/lib/src/fasta/kernel/body_builder.dart
@@ -2509,26 +2509,26 @@
       push(forest.notExpression(toValue(receiver), token));
     } else {
       String operator = token.stringValue;
+      Expression receiverValue;
       if (optional("-", token)) {
         operator = "unary-";
 
         if (receiver
             is LargeIntAccessGenerator<Expression, Statement, Arguments>) {
-          int value =
-              int.parse("-" + receiver.token.lexeme, onError: (_) => null);
+          int value = int.tryParse("-" + receiver.token.lexeme);
           if (value != null) {
-            push(forest.literalInt(value, token));
-            return;
+            receiverValue = forest.literalInt(value, token);
           }
         }
       }
       bool isSuper = false;
-      Expression receiverValue;
-      if (receiver is ThisAccessGenerator && receiver.isSuper) {
-        isSuper = true;
-        receiverValue = forest.thisExpression(receiver.token);
-      } else {
-        receiverValue = toValue(receiver);
+      if (receiverValue == null) {
+        if (receiver is ThisAccessGenerator && receiver.isSuper) {
+          isSuper = true;
+          receiverValue = forest.thisExpression(receiver.token);
+        } else {
+          receiverValue = toValue(receiver);
+        }
       }
       push(buildMethodInvocation(receiverValue, new Name(operator),
           forest.argumentsEmpty(noLocation), token.charOffset,
diff --git a/pkg/front_end/testcases/minimum_int.dart.direct.expect b/pkg/front_end/testcases/minimum_int.dart.direct.expect
index 20fea8a..4216458 100644
--- a/pkg/front_end/testcases/minimum_int.dart.direct.expect
+++ b/pkg/front_end/testcases/minimum_int.dart.direct.expect
@@ -3,5 +3,4 @@
 import "dart:core" as core;
 
 static method main() → dynamic
-  return core::print(-9223372036854775808);
-
+  return core::print(-9223372036854775808.unary-());
diff --git a/pkg/front_end/testcases/minimum_int.dart.direct.transformed.expect b/pkg/front_end/testcases/minimum_int.dart.direct.transformed.expect
index eb7af70..4216458 100644
--- a/pkg/front_end/testcases/minimum_int.dart.direct.transformed.expect
+++ b/pkg/front_end/testcases/minimum_int.dart.direct.transformed.expect
@@ -3,4 +3,4 @@
 import "dart:core" as core;
 
 static method main() → dynamic
-  return core::print(-9223372036854775808);
+  return core::print(-9223372036854775808.unary-());
diff --git a/pkg/front_end/testcases/minimum_int.dart.strong.expect b/pkg/front_end/testcases/minimum_int.dart.strong.expect
index 20fea8a..17fdfdc 100644
--- a/pkg/front_end/testcases/minimum_int.dart.strong.expect
+++ b/pkg/front_end/testcases/minimum_int.dart.strong.expect
@@ -3,5 +3,4 @@
 import "dart:core" as core;
 
 static method main() → dynamic
-  return core::print(-9223372036854775808);
-
+  return core::print(-9223372036854775808.{core::int::unary-}());
diff --git a/pkg/front_end/testcases/minimum_int.dart.strong.transformed.expect b/pkg/front_end/testcases/minimum_int.dart.strong.transformed.expect
index eb7af70..17fdfdc 100644
--- a/pkg/front_end/testcases/minimum_int.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/minimum_int.dart.strong.transformed.expect
@@ -3,4 +3,4 @@
 import "dart:core" as core;
 
 static method main() → dynamic
-  return core::print(-9223372036854775808);
+  return core::print(-9223372036854775808.{core::int::unary-}());