Skip to content

Commit f521f38

Browse files
mralephcommit-bot@chromium.org
authored andcommitted
[vm/kernel] Handle InvalidExpression in constant contexts
It might occur there when CFE starts performing constant evaluation. Change-Id: I635b8f855f0128a4c1decb1417e310ab91b276ce Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/108780 Auto-Submit: Vyacheslav Egorov <[email protected]> Reviewed-by: Martin Kustermann <[email protected]> Commit-Queue: Vyacheslav Egorov <[email protected]>
1 parent 0c9abb8 commit f521f38

File tree

1 file changed

+9
-0
lines changed

1 file changed

+9
-0
lines changed

runtime/vm/compiler/frontend/constant_evaluator.cc

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -175,6 +175,15 @@ RawInstance* ConstantEvaluator::EvaluateExpression(intptr_t offset,
175175
case kDeprecated_ConstantExpression:
176176
result_ = EvaluateConstantExpression(helper_->ReadUInt());
177177
break;
178+
case kInvalidExpression: {
179+
helper_->ReadPosition(); // Skip position.
180+
const String& message = H.DartString(helper_->ReadStringReference());
181+
// Invalid expression message has pointer to the source code, no need to
182+
// report it twice.
183+
H.ReportError(helper_->script(), TokenPosition::kNoSource, "%s",
184+
message.ToCString());
185+
break;
186+
}
178187
default:
179188
H.ReportError(
180189
script_, TokenPosition::kNoSource,

0 commit comments

Comments
 (0)