Fix token used for large negative integers.
R=brianwilkerson@google.com, paulberry@google.com
Change-Id: I4625f76bb071888392510c1c5c85f1314832ffa3
Reviewed-on: https://dart-review.googlesource.com/62480
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Paul Berry <paulberry@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
diff --git a/pkg/analyzer/test/generated/non_error_resolver_kernel_test.dart b/pkg/analyzer/test/generated/non_error_resolver_kernel_test.dart
index c032088..e68b400 100644
--- a/pkg/analyzer/test/generated/non_error_resolver_kernel_test.dart
+++ b/pkg/analyzer/test/generated/non_error_resolver_kernel_test.dart
@@ -202,13 +202,6 @@
@override
@failingTest
- @potentialAnalyzerProblem
- test_integerLiteralOutOfRange_negative_valid() async {
- return super.test_integerLiteralOutOfRange_negative_valid();
- }
-
- @override
- @failingTest
@FastaProblem('https://github.com/dart-lang/sdk/issues/31641')
test_invalidAnnotation_constantVariable_field() async {
return super.test_invalidAnnotation_constantVariable_field();
diff --git a/pkg/analyzer/test/generated/non_error_resolver_test.dart b/pkg/analyzer/test/generated/non_error_resolver_test.dart
index 6a12526..dc9950a 100644
--- a/pkg/analyzer/test/generated/non_error_resolver_test.dart
+++ b/pkg/analyzer/test/generated/non_error_resolver_test.dart
@@ -2907,6 +2907,12 @@
assertNoErrors(source);
}
+ test_integerLiteralOutOfRange_negative_small() async {
+ Source source = addSource('int x = -42;');
+ await computeAnalysisResult(source);
+ assertErrors(source);
+ }
+
test_integerLiteralOutOfRange_negative_valid() async {
Source source = addSource('int x = -9223372036854775808;');
await computeAnalysisResult(source);
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 c72cfab..7065b1b 100644
--- a/pkg/front_end/lib/src/fasta/kernel/body_builder.dart
+++ b/pkg/front_end/lib/src/fasta/kernel/body_builder.dart
@@ -2495,7 +2495,7 @@
if (receiver is LargeIntAccessGenerator) {
int value = int.tryParse("-" + receiver.token.lexeme);
if (value != null) {
- receiverValue = forest.literalInt(value, token);
+ receiverValue = forest.literalInt(value, receiver.token);
if (errorOnUnexactWebIntLiterals) {
checkWebIntLiteralsErrorIfUnexact(value, token);
}