Version 2.18.0-189.0.dev

Merge commit 'd6e5a0fc49cf47a3bfc9dc47c23de6abcbfa3435' into 'dev'
diff --git a/pkg/analysis_server/lib/src/utilities/flutter.dart b/pkg/analysis_server/lib/src/utilities/flutter.dart
index 7132231..f423152 100644
--- a/pkg/analysis_server/lib/src/utilities/flutter.dart
+++ b/pkg/analysis_server/lib/src/utilities/flutter.dart
@@ -266,7 +266,8 @@
             parent is IfElement && parent.elseElement == node ||
             parent is ListLiteral ||
             parent is NamedExpression && parent.expression == node ||
-            parent is Statement) {
+            parent is Statement ||
+            parent is VariableDeclaration) {
           return node as Expression;
         }
       }
diff --git a/pkg/analysis_server/test/src/services/correction/assist/flutter_wrap_builder_test.dart b/pkg/analysis_server/test/src/services/correction/assist/flutter_wrap_builder_test.dart
index 32237d6..65d5acd 100644
--- a/pkg/analysis_server/test/src/services/correction/assist/flutter_wrap_builder_test.dart
+++ b/pkg/analysis_server/test/src/services/correction/assist/flutter_wrap_builder_test.dart
@@ -135,4 +135,25 @@
 }
 ''');
   }
+
+  Future<void> test_variableDeclaration() async {
+    await resolveTestCode('''
+import 'package:flutter/widgets.dart';
+
+void f() {
+  Widget w = /*caret*/Container();
+}
+''');
+    await assertHasAssist('''
+import 'package:flutter/widgets.dart';
+
+void f() {
+  Widget w = Builder(
+    builder: (context) {
+      return Container();
+    }
+  );
+}
+''');
+  }
 }
diff --git a/pkg/analysis_server/test/src/services/correction/assist/flutter_wrap_center_test.dart b/pkg/analysis_server/test/src/services/correction/assist/flutter_wrap_center_test.dart
index 40bedd9..f894cfd 100644
--- a/pkg/analysis_server/test/src/services/correction/assist/flutter_wrap_center_test.dart
+++ b/pkg/analysis_server/test/src/services/correction/assist/flutter_wrap_center_test.dart
@@ -120,4 +120,32 @@
 }
 ''');
   }
+
+  Future<void> test_variableDeclaration() async {
+    await resolveTestCode('''
+import 'package:flutter/widgets.dart';
+
+void f() {
+  Widget w = /*caret*/Container();
+}
+''');
+    await assertHasAssist('''
+import 'package:flutter/widgets.dart';
+
+void f() {
+  Widget w = Center(child: Container());
+}
+''');
+  }
+
+  Future<void> test_variableDeclaration_name() async {
+    await resolveTestCode('''
+import 'package:flutter/widgets.dart';
+
+void f() {
+  Widget /*caret*/w = Container();
+}
+''');
+    await assertNoAssist();
+  }
 }
diff --git a/pkg/analysis_server/test/src/services/correction/assist/flutter_wrap_sized_box_test.dart b/pkg/analysis_server/test/src/services/correction/assist/flutter_wrap_sized_box_test.dart
index 32fdaeb..ed0c885 100644
--- a/pkg/analysis_server/test/src/services/correction/assist/flutter_wrap_sized_box_test.dart
+++ b/pkg/analysis_server/test/src/services/correction/assist/flutter_wrap_sized_box_test.dart
@@ -122,4 +122,21 @@
 }
 ''');
   }
+
+  Future<void> test_variableDeclaration() async {
+    await resolveTestCode('''
+import 'package:flutter/widgets.dart';
+
+void f() {
+  Widget w = /*caret*/Container();
+}
+''');
+    await assertHasAssist('''
+import 'package:flutter/widgets.dart';
+
+void f() {
+  Widget w = SizedBox(child: Container());
+}
+''');
+  }
 }
diff --git a/pkg/front_end/lib/src/fasta/kernel/constant_evaluator.dart b/pkg/front_end/lib/src/fasta/kernel/constant_evaluator.dart
index 3bb84ee..e1cffbd 100644
--- a/pkg/front_end/lib/src/fasta/kernel/constant_evaluator.dart
+++ b/pkg/front_end/lib/src/fasta/kernel/constant_evaluator.dart
@@ -2689,7 +2689,7 @@
       return unevaluated(
           node,
           new ConditionalExpression(extract(condition), extract(then),
-              extract(otherwise), node.staticType));
+              extract(otherwise), env.substituteType(node.staticType)));
     } else {
       return createEvaluationErrorConstant(
           node.condition,
diff --git a/pkg/front_end/lib/src/fasta/kernel/inference_visitor.dart b/pkg/front_end/lib/src/fasta/kernel/inference_visitor.dart
index 1017c52..c3f4254 100644
--- a/pkg/front_end/lib/src/fasta/kernel/inference_visitor.dart
+++ b/pkg/front_end/lib/src/fasta/kernel/inference_visitor.dart
@@ -48,22 +48,36 @@
 
   Class? mapEntryClass;
 
+  /// Context information for the current closure, or `null` if we are not
+  /// inside a closure.
+  ClosureContext? _closureContext;
+
   InferenceVisitor(this.inferrer);
 
+  ClosureContext get closureContext => _closureContext!;
+
   /// Performs type inference on the given [statement].
   ///
-  /// Derived classes should override this method with logic that dispatches on
-  /// the statement type and calls the appropriate specialized "infer" method.
-  StatementInferenceResult inferStatement(Statement statement) {
+  /// If [closureContext] is not null, the [statement] is inferred using
+  /// [closureContext] as the current context.
+  StatementInferenceResult inferStatement(Statement statement,
+      [ClosureContext? closureContext]) {
+    ClosureContext? oldClosureContext = _closureContext;
+    if (closureContext != null) {
+      _closureContext = closureContext;
+    }
     inferrer.registerIfUnreachableForTesting(statement);
 
     // For full (non-top level) inference, we need access to the
     // ExpressionGeneratorHelper so that we can perform error recovery.
+    StatementInferenceResult result;
     if (statement is InternalStatement) {
-      return statement.acceptInference(this);
+      result = statement.acceptInference(this);
     } else {
-      return statement.accept(this);
+      result = statement.accept(this);
     }
+    _closureContext = oldClosureContext;
+    return result;
   }
 
   /// Performs type inference on the given [expression].
@@ -6093,7 +6107,6 @@
   @override
   StatementInferenceResult visitReturnStatement(
       covariant ReturnStatementImpl node) {
-    ClosureContext closureContext = inferrer.closureContext!;
     DartType typeContext = closureContext.returnContext;
     DartType inferredType;
     if (node.expression != null) {
@@ -7075,7 +7088,6 @@
 
   @override
   StatementInferenceResult visitYieldStatement(YieldStatement node) {
-    ClosureContext closureContext = inferrer.closureContext!;
     ExpressionInferenceResult expressionResult;
     DartType typeContext = closureContext.yieldContext;
     if (node.isYieldStar && typeContext is! UnknownType) {
diff --git a/pkg/front_end/lib/src/fasta/type_inference/type_inferrer.dart b/pkg/front_end/lib/src/fasta/type_inference/type_inferrer.dart
index 49d5866..293bd91 100644
--- a/pkg/front_end/lib/src/fasta/type_inference/type_inferrer.dart
+++ b/pkg/front_end/lib/src/fasta/type_inference/type_inferrer.dart
@@ -275,10 +275,6 @@
 
   InferenceHelper? _helper;
 
-  /// Context information for the current closure, or `null` if we are not
-  /// inside a closure.
-  ClosureContext? closureContext;
-
   TypeInferrerImpl(
       this.engine,
       this.uriForInstrumentation,
@@ -2047,7 +2043,6 @@
   @override
   ExpressionInferenceResult inferFieldInitializer(
       InferenceHelper helper, DartType declaredType, Expression initializer) {
-    assert(closureContext == null);
     assert(!isTopLevel);
     this.helper = helper;
     InferenceVisitor visitor = _createInferenceVisitor();
@@ -2064,12 +2059,12 @@
       DartType returnType, AsyncMarker asyncMarker, Statement body) {
     // ignore: unnecessary_null_comparison
     assert(body != null);
-    // ignore: unnecessary_null_comparison
-    assert(closureContext == null);
     this.helper = helper;
-    closureContext = new ClosureContext(this, asyncMarker, returnType, false);
+    ClosureContext closureContext =
+        new ClosureContext(this, asyncMarker, returnType, false);
     InferenceVisitor visitor = _createInferenceVisitor();
-    StatementInferenceResult result = visitor.inferStatement(body);
+    StatementInferenceResult result =
+        visitor.inferStatement(body, closureContext);
     if (dataForTesting != null) {
       if (!flowAnalysis.isReachable) {
         dataForTesting!.flowAnalysisResult.functionBodiesThatDontComplete
@@ -2077,11 +2072,10 @@
       }
     }
     result =
-        closureContext!.handleImplicitReturn(this, body, result, fileOffset);
-    DartType? futureValueType = closureContext!.futureValueType;
+        closureContext.handleImplicitReturn(this, body, result, fileOffset);
+    DartType? futureValueType = closureContext.futureValueType;
     assert(!(asyncMarker == AsyncMarker.Async && futureValueType == null),
         "No future value type computed.");
-    closureContext = null;
     _helper = null;
     flowAnalysis.finish();
     return new InferredFunctionBody(
@@ -2913,12 +2907,10 @@
     // Apply type inference to `B` in return context `N’`, with any references
     // to `xi` in `B` having type `Pi`.  This produces `B’`.
     bool needToSetReturnType = hasImplicitReturnType;
-    ClosureContext? oldClosureContext = this.closureContext;
     ClosureContext closureContext = new ClosureContext(
         this, function.asyncMarker, returnContext, needToSetReturnType);
-    this.closureContext = closureContext;
     StatementInferenceResult bodyResult =
-        visitor.inferStatement(function.body!);
+        visitor.inferStatement(function.body!, closureContext);
 
     // If the closure is declared with `async*` or `sync*`, let `M` be the
     // least upper bound of the types of the `yield` expressions in `B’`, or
@@ -2947,7 +2939,6 @@
     if (bodyResult.hasChanged) {
       function.body = bodyResult.statement..parent = function;
     }
-    this.closureContext = oldClosureContext;
     return function.computeFunctionType(libraryBuilder.nonNullable);
   }
 
@@ -4149,7 +4140,6 @@
       Expression initializer,
       DartType declaredType,
       bool hasDeclaredInitializer) {
-    assert(closureContext == null);
     this.helper = helper;
     // ignore: unnecessary_null_comparison
     assert(declaredType != null);
diff --git a/pkg/front_end/testcases/general/constants/with_unevaluated_agnostic/issue_49245.dart b/pkg/front_end/testcases/general/constants/with_unevaluated_agnostic/issue_49245.dart
new file mode 100644
index 0000000..67b89d0
--- /dev/null
+++ b/pkg/front_end/testcases/general/constants/with_unevaluated_agnostic/issue_49245.dart
@@ -0,0 +1,16 @@
+// Copyright (c) 2022, 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.
+
+class Foo<T> {
+  const Foo(T Function(String)? foo) : _foo = foo ?? bar;
+  final T Function(String) _foo;
+}
+
+T bar<T>(String o) => o as T;
+
+void main() {
+  const Foo<int> myValue = Foo<int>(
+    bool.fromEnvironment("baz") ? int.parse : null,
+  );
+}
diff --git a/pkg/front_end/testcases/general/constants/with_unevaluated_agnostic/issue_49245.dart.textual_outline.expect b/pkg/front_end/testcases/general/constants/with_unevaluated_agnostic/issue_49245.dart.textual_outline.expect
new file mode 100644
index 0000000..81c0904
--- /dev/null
+++ b/pkg/front_end/testcases/general/constants/with_unevaluated_agnostic/issue_49245.dart.textual_outline.expect
@@ -0,0 +1,7 @@
+class Foo<T> {
+  const Foo(T Function(String)? foo) : _foo = foo ?? bar;
+  final T Function(String) _foo;
+}
+
+T bar<T>(String o) => o as T;
+void main() {}
diff --git a/pkg/front_end/testcases/general/constants/with_unevaluated_agnostic/issue_49245.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/general/constants/with_unevaluated_agnostic/issue_49245.dart.textual_outline_modelled.expect
new file mode 100644
index 0000000..bd416b5
--- /dev/null
+++ b/pkg/front_end/testcases/general/constants/with_unevaluated_agnostic/issue_49245.dart.textual_outline_modelled.expect
@@ -0,0 +1,8 @@
+T bar<T>(String o) => o as T;
+
+class Foo<T> {
+  const Foo(T Function(String)? foo) : _foo = foo ?? bar;
+  final T Function(String) _foo;
+}
+
+void main() {}
diff --git a/pkg/front_end/testcases/general/constants/with_unevaluated_agnostic/issue_49245.dart.weak.expect b/pkg/front_end/testcases/general/constants/with_unevaluated_agnostic/issue_49245.dart.weak.expect
new file mode 100644
index 0000000..7218dfd
--- /dev/null
+++ b/pkg/front_end/testcases/general/constants/with_unevaluated_agnostic/issue_49245.dart.weak.expect
@@ -0,0 +1,29 @@
+library /*isNonNullableByDefault*/;
+import self as self;
+import "dart:core" as core;
+
+class Foo<T extends core::Object? = dynamic> extends core::Object /*hasConstConstructor*/  {
+  final field (core::String) → self::Foo::T% _foo;
+  const constructor •((core::String) →? self::Foo::T% foo) → self::Foo<self::Foo::T%>
+    : self::Foo::_foo = let final (core::String) →? self::Foo::T% #t1 = foo in #t1 == null ?{(core::String) → self::Foo::T%} #C1<self::Foo::T%> : #t1{(core::String) → self::Foo::T%}, super core::Object::•()
+    ;
+}
+static method bar<T extends core::Object? = dynamic>(core::String o) → self::bar::T%
+  return o as{ForNonNullableByDefault} self::bar::T%;
+static method main() → void {
+  const self::Foo<core::int> myValue = #C5;
+}
+
+constants  {
+  #C1 = static-tearoff self::bar
+  #C2 = "baz"
+  #C3 = static-tearoff core::int::parse
+  #C4 = null
+  #C5 = eval self::Foo<core::int*>{_foo:(const core::bool::fromEnvironment(#C2) ?{(core::String, {onError: (core::String) →? core::int, radix: core::int?}) →? core::int} #C3 : #C4) == null ?{(core::String) → core::int*} #C1<core::int*> : const core::bool::fromEnvironment(#C2) ?{(core::String, {onError: (core::String) →? core::int, radix: core::int?}) →? core::int} #C3 : #C4}
+}
+
+
+Constructor coverage from constants:
+org-dartlang-testcase:///issue_49245.dart:
+- Foo. (from org-dartlang-testcase:///issue_49245.dart:6:9)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:25:9)
diff --git a/pkg/front_end/testcases/general/constants/with_unevaluated_agnostic/issue_49245.dart.weak.modular.expect b/pkg/front_end/testcases/general/constants/with_unevaluated_agnostic/issue_49245.dart.weak.modular.expect
new file mode 100644
index 0000000..7218dfd
--- /dev/null
+++ b/pkg/front_end/testcases/general/constants/with_unevaluated_agnostic/issue_49245.dart.weak.modular.expect
@@ -0,0 +1,29 @@
+library /*isNonNullableByDefault*/;
+import self as self;
+import "dart:core" as core;
+
+class Foo<T extends core::Object? = dynamic> extends core::Object /*hasConstConstructor*/  {
+  final field (core::String) → self::Foo::T% _foo;
+  const constructor •((core::String) →? self::Foo::T% foo) → self::Foo<self::Foo::T%>
+    : self::Foo::_foo = let final (core::String) →? self::Foo::T% #t1 = foo in #t1 == null ?{(core::String) → self::Foo::T%} #C1<self::Foo::T%> : #t1{(core::String) → self::Foo::T%}, super core::Object::•()
+    ;
+}
+static method bar<T extends core::Object? = dynamic>(core::String o) → self::bar::T%
+  return o as{ForNonNullableByDefault} self::bar::T%;
+static method main() → void {
+  const self::Foo<core::int> myValue = #C5;
+}
+
+constants  {
+  #C1 = static-tearoff self::bar
+  #C2 = "baz"
+  #C3 = static-tearoff core::int::parse
+  #C4 = null
+  #C5 = eval self::Foo<core::int*>{_foo:(const core::bool::fromEnvironment(#C2) ?{(core::String, {onError: (core::String) →? core::int, radix: core::int?}) →? core::int} #C3 : #C4) == null ?{(core::String) → core::int*} #C1<core::int*> : const core::bool::fromEnvironment(#C2) ?{(core::String, {onError: (core::String) →? core::int, radix: core::int?}) →? core::int} #C3 : #C4}
+}
+
+
+Constructor coverage from constants:
+org-dartlang-testcase:///issue_49245.dart:
+- Foo. (from org-dartlang-testcase:///issue_49245.dart:6:9)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:25:9)
diff --git a/pkg/front_end/testcases/general/constants/with_unevaluated_agnostic/issue_49245.dart.weak.outline.expect b/pkg/front_end/testcases/general/constants/with_unevaluated_agnostic/issue_49245.dart.weak.outline.expect
new file mode 100644
index 0000000..f3e28e7b
--- /dev/null
+++ b/pkg/front_end/testcases/general/constants/with_unevaluated_agnostic/issue_49245.dart.weak.outline.expect
@@ -0,0 +1,19 @@
+library /*isNonNullableByDefault*/;
+import self as self;
+import "dart:core" as core;
+
+class Foo<T extends core::Object? = dynamic> extends core::Object /*hasConstConstructor*/  {
+  final field (core::String) → self::Foo::T% _foo;
+  const constructor •((core::String) →? self::Foo::T% foo) → self::Foo<self::Foo::T%>
+    : self::Foo::_foo = let final (core::String) →? self::Foo::T% #t1 = foo in #t1 == null ?{(core::String) → self::Foo::T%} self::bar<self::Foo::T%> : #t1{(core::String) → self::Foo::T%}, super core::Object::•()
+    ;
+}
+static method bar<T extends core::Object? = dynamic>(core::String o) → self::bar::T%
+  ;
+static method main() → void
+  ;
+
+
+Extra constant evaluation status:
+Evaluated: StaticTearOff @ org-dartlang-testcase:///issue_49245.dart:6:54 -> StaticTearOffConstant(bar)
+Extra constant evaluation: evaluated: 8, effectively constant: 1
diff --git a/pkg/front_end/testcases/general/constants/with_unevaluated_agnostic/issue_49245.dart.weak.transformed.expect b/pkg/front_end/testcases/general/constants/with_unevaluated_agnostic/issue_49245.dart.weak.transformed.expect
new file mode 100644
index 0000000..5a4f3bf
--- /dev/null
+++ b/pkg/front_end/testcases/general/constants/with_unevaluated_agnostic/issue_49245.dart.weak.transformed.expect
@@ -0,0 +1,33 @@
+library /*isNonNullableByDefault*/;
+import self as self;
+import "dart:core" as core;
+
+class Foo<T extends core::Object? = dynamic> extends core::Object /*hasConstConstructor*/  {
+  final field (core::String) → self::Foo::T% _foo;
+  const constructor •((core::String) →? self::Foo::T% foo) → self::Foo<self::Foo::T%>
+    : self::Foo::_foo = let final (core::String) →? self::Foo::T% #t1 = foo in #t1 == null ?{(core::String) → self::Foo::T%} #C1<self::Foo::T%> : #t1{(core::String) → self::Foo::T%}, super core::Object::•()
+    ;
+}
+static method bar<T extends core::Object? = dynamic>(core::String o) → self::bar::T%
+  return o as{ForNonNullableByDefault} self::bar::T%;
+static method main() → void {
+  const self::Foo<core::int> myValue = #C5;
+}
+
+constants  {
+  #C1 = static-tearoff self::bar
+  #C2 = "baz"
+  #C3 = static-tearoff core::int::parse
+  #C4 = null
+  #C5 = eval self::Foo<core::int*>{_foo:(const core::bool::fromEnvironment(#C2) ?{(core::String, {onError: (core::String) →? core::int, radix: core::int?}) →? core::int} #C3 : #C4) == null ?{(core::String) → core::int*} #C1<core::int*> : const core::bool::fromEnvironment(#C2) ?{(core::String, {onError: (core::String) →? core::int, radix: core::int?}) →? core::int} #C3 : #C4}
+}
+
+Extra constant evaluation status:
+Evaluated with empty environment: ConstantExpression @ org-dartlang-testcase:///issue_49245.dart:13:28 -> InstanceConstant(const Foo<int*>{Foo._foo: bar<int*>})
+Extra constant evaluation: evaluated: 10, effectively constant: 1
+
+
+Constructor coverage from constants:
+org-dartlang-testcase:///issue_49245.dart:
+- Foo. (from org-dartlang-testcase:///issue_49245.dart:6:9)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:25:9)
diff --git a/pkg/front_end/testcases/strong.status b/pkg/front_end/testcases/strong.status
index f805d8e..3eb31ff 100644
--- a/pkg/front_end/testcases/strong.status
+++ b/pkg/front_end/testcases/strong.status
@@ -21,7 +21,6 @@
 late_lowering/private_members: SemiFuzzFailure # Reproduced in https://dart-review.googlesource.com/c/sdk/+/242285
 macros/multiple_imports: SemiFuzzFailure # probably augment imports that isn't split correctly.
 nnbd/constants: SemiFuzzFailure # Reproduced in https://dart-review.googlesource.com/c/sdk/+/242441
-nnbd/flutter_issue64155: SemiFuzzFailure # Reproduced in https://dart-review.googlesource.com/c/sdk/+/242443
 
 # These tests have "privacy issues" and isn't compatiable with splitting files (fuzzing):
 dart2js/mixin_default_values/main: semiFuzzFailureOnForceRebuildBodies # private method
@@ -41,6 +40,8 @@
 none/mixin_super: semiFuzzFailureOnForceRebuildBodies # has private name mixin
 dart2js/tear_off_patch/main: semiFuzzFailureOnForceRebuildBodies # needs custom libraries.json (and platform?) not setup here
 
+super_parameters/circular_dependency_inference: SemiFuzzCrash # https://github.com/dart-lang/sdk/issues/49254
+
 constructor_tearoffs/call_instantiation: TypeCheckError
 constructor_tearoffs/lowering/invalid_redirect: VerificationError
 enhanced_enums/declared_hashcode: TypeCheckError
diff --git a/pkg/front_end/testcases/weak.status b/pkg/front_end/testcases/weak.status
index e309c17..a80885d 100644
--- a/pkg/front_end/testcases/weak.status
+++ b/pkg/front_end/testcases/weak.status
@@ -12,10 +12,10 @@
 
 dart2js/tear_off_patch/main: semiFuzzFailureOnForceRebuildBodies # needs custom libraries.json (and platform?) not setup here
 general/constants/with_unevaluated_agnostic/various_2: SemiFuzzFailure # Looks similar to https://dart-review.googlesource.com/c/sdk/+/242441
-general/flutter_issue64155: SemiFuzzFailure # Looks similar to https://dart-review.googlesource.com/c/sdk/+/242443
 general/no_such_method_forwarder: SemiFuzzFailure # https://dart-review.googlesource.com/c/sdk/+/242444
 general/tear_off_patch/main: semiFuzzFailureOnForceRebuildBodies # needs custom libraries.json (and platform?) not setup here
 general/with_dependencies/issue_43084/issue_43084: SemiFuzzFailure # https://dart-review.googlesource.com/c/sdk/+/242543
+inference_update_1/horizontal_inference_extension_method: semiFuzzFailureOnForceRebuildBodies # Errors on split
 inference_update_1/horizontal_inference_extension_method: SemiFuzzFailure # https://dart-review.googlesource.com/c/sdk/+/245004
 late_lowering/issue41436b: SemiFuzzFailure # https://dart-review.googlesource.com/c/sdk/+/242445
 late_lowering/issue41436c/issue41436c: SemiFuzzFailure # Looks similar to https://dart-review.googlesource.com/c/sdk/+/242445
@@ -29,13 +29,14 @@
 nnbd_mixed/issue43988/main.no_link: SemiFuzzFailure # https://dart-review.googlesource.com/c/sdk/+/242540 and https://dart-review.googlesource.com/c/sdk/+/242446
 nnbd_mixed/member_inheritance_from_opt_in: SemiFuzzFailure # https://dart-review.googlesource.com/c/sdk/+/242446
 nnbd/constants: SemiFuzzFailure # Looks similar to https://dart-review.googlesource.com/c/sdk/+/242441
-nnbd/flutter_issue64155: SemiFuzzFailure # Looks similar to https://dart-review.googlesource.com/c/sdk/+/242443
 no_such_method_forwarders/abstract_accessors_from_field_one_defined: SemiFuzzFailure # Looks similar to https://dart-review.googlesource.com/c/sdk/+/242444
 no_such_method_forwarders/abstract_accessors_from_field_with_substitution: SemiFuzzFailure # Looks similar to https://dart-review.googlesource.com/c/sdk/+/242444
 no_such_method_forwarders/abstract_accessors_from_field: SemiFuzzFailure # Looks similar to https://dart-review.googlesource.com/c/sdk/+/242444
 no_such_method_forwarders/default_argument_values: SemiFuzzFailure # Looks similar to https://dart-review.googlesource.com/c/sdk/+/242444
 variance/generic_covariance_sound_variance: SemiFuzzFailure # Looks similar to https://dart-review.googlesource.com/c/sdk/+/242444
 
+super_parameters/circular_dependency_inference: SemiFuzzCrash # https://github.com/dart-lang/sdk/issues/49254
+
 dart2js/flutter_issue94561/main: SemiFuzzFailure
 dart2js/flutter_issue94561/main.no_link: SemiFuzzFailure
 dart2js/late_fields: SemiFuzzFailure
diff --git a/tools/VERSION b/tools/VERSION
index 1b33d07..3fa685a 100644
--- a/tools/VERSION
+++ b/tools/VERSION
@@ -27,5 +27,5 @@
 MAJOR 2
 MINOR 18
 PATCH 0
-PRERELEASE 188
+PRERELEASE 189
 PRERELEASE_PATCH 0
\ No newline at end of file