diff --git a/pkg/dev_compiler/lib/src/kernel/compiler.dart b/pkg/dev_compiler/lib/src/kernel/compiler.dart index 721f433a732..ca43d5a9dbf 100644 --- a/pkg/dev_compiler/lib/src/kernel/compiler.dart +++ b/pkg/dev_compiler/lib/src/kernel/compiler.dart @@ -8065,6 +8065,12 @@ class ProgramCompiler extends ComputeOnceConstantVisitor var init = _visitExpression(v.initializer!); var body = _visitExpression(node.body); var temp = _tempVariables.remove(v); + // TODO(eernst): Remove the following `if` if anonymous-methods is rejected. + // Otherwise, revise this method to be more readable. + // See https://github.com/dart-lang/language/issues/260. + if (temp == null && !_isTemporaryVariable(v)) { + temp = _emitVariableRef(v); + } if (temp != null) { if (_letVariables != null) { init = js_ast.Assignment(temp, init); diff --git a/pkg/dev_compiler/lib/src/kernel/compiler_new.dart b/pkg/dev_compiler/lib/src/kernel/compiler_new.dart index a19b2c5c526..922e363bfbe 100644 --- a/pkg/dev_compiler/lib/src/kernel/compiler_new.dart +++ b/pkg/dev_compiler/lib/src/kernel/compiler_new.dart @@ -8938,6 +8938,12 @@ class LibraryCompiler extends ComputeOnceConstantVisitor var init = _visitExpression(v.initializer!); var body = _visitExpression(node.body); var temp = _tempVariables.remove(v); + // TODO(eernst): Remove the following `if` if anonymous-methods is rejected. + // Otherwise, revise this method to be more readable. + // See https://github.com/dart-lang/language/issues/260. + if (temp == null && !_isTemporaryVariable(v)) { + temp = _emitVariableRef(v); + } if (temp != null) { if (_letVariables != null) { init = js_ast.Assignment(temp, init);