Stop reporting INFERRED_TYPE codes.

Internal presubmit is green.
https://test.corp.google.com/ui#id=OCL:285886840:BASE:285910812:1576561195953:c64215aa

Change-Id: I6616a8ce0fd5188ae9405cdc4b82a2006fee675d
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/128571
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
diff --git a/pkg/analyzer/lib/error/error.dart b/pkg/analyzer/lib/error/error.dart
index 810f655..cae9d0d 100644
--- a/pkg/analyzer/lib/error/error.dart
+++ b/pkg/analyzer/lib/error/error.dart
@@ -803,10 +803,6 @@
   StrongModeCode.IMPLICIT_DYNAMIC_RETURN,
   StrongModeCode.IMPLICIT_DYNAMIC_TYPE,
   StrongModeCode.IMPLICIT_DYNAMIC_VARIABLE,
-  StrongModeCode.INFERRED_TYPE,
-  StrongModeCode.INFERRED_TYPE_ALLOCATION,
-  StrongModeCode.INFERRED_TYPE_CLOSURE,
-  StrongModeCode.INFERRED_TYPE_LITERAL,
   StrongModeCode.INVALID_CAST_LITERAL,
   StrongModeCode.INVALID_CAST_LITERAL_LIST,
   StrongModeCode.INVALID_CAST_LITERAL_MAP,
diff --git a/pkg/analyzer/lib/src/error/codes.dart b/pkg/analyzer/lib/src/error/codes.dart
index 85b0dc8..a88bdb3 100644
--- a/pkg/analyzer/lib/src/error/codes.dart
+++ b/pkg/analyzer/lib/src/error/codes.dart
@@ -8610,8 +8610,6 @@
       "Try adding an explicit type like 'dynamic', or "
       "enable implicit-dynamic in your analysis options file.";
 
-  static const String _inferredTypeMessage = "'{0}' has inferred type '{1}'.";
-
   static const StrongModeCode INVALID_PARAMETER_DECLARATION = StrongModeCode(
       ErrorType.COMPILE_TIME_ERROR,
       'INVALID_PARAMETER_DECLARATION',
@@ -8622,18 +8620,6 @@
       'COULD_NOT_INFER',
       "Couldn't infer type parameter '{0}'.{1}");
 
-  static const StrongModeCode INFERRED_TYPE =
-      StrongModeCode(ErrorType.HINT, 'INFERRED_TYPE', _inferredTypeMessage);
-
-  static const StrongModeCode INFERRED_TYPE_LITERAL = StrongModeCode(
-      ErrorType.HINT, 'INFERRED_TYPE_LITERAL', _inferredTypeMessage);
-
-  static const StrongModeCode INFERRED_TYPE_ALLOCATION = StrongModeCode(
-      ErrorType.HINT, 'INFERRED_TYPE_ALLOCATION', _inferredTypeMessage);
-
-  static const StrongModeCode INFERRED_TYPE_CLOSURE = StrongModeCode(
-      ErrorType.HINT, 'INFERRED_TYPE_CLOSURE', _inferredTypeMessage);
-
   static const StrongModeCode INVALID_CAST_LITERAL = StrongModeCode(
       ErrorType.COMPILE_TIME_ERROR,
       'INVALID_CAST_LITERAL',
diff --git a/pkg/analyzer/lib/src/generated/resolver.dart b/pkg/analyzer/lib/src/generated/resolver.dart
index e901ed3..5119fcb 100644
--- a/pkg/analyzer/lib/src/generated/resolver.dart
+++ b/pkg/analyzer/lib/src/generated/resolver.dart
@@ -57,12 +57,6 @@
 
   final ResolverVisitor _resolver;
 
-  /// The error listener on which to record inference information.
-  final ErrorReporter _errorReporter;
-
-  /// If true, emit hints when types are inferred
-  final bool _inferenceHints;
-
   /// Type provider, needed for type matching.
   final TypeProvider _typeProvider;
 
@@ -79,12 +73,9 @@
   /// functions and methods.
   final List<DartType> _returnStack = <DartType>[];
 
-  InferenceContext._(
-    ResolverVisitor resolver,
-    this._inferenceHints,
-  )   : _resolver = resolver,
+  InferenceContext._(ResolverVisitor resolver)
+      : _resolver = resolver,
         _typeProvider = resolver.typeProvider,
-        _errorReporter = resolver.errorReporter,
         _typeSystem = resolver.typeSystem;
 
   /// Get the return type of the current enclosing function, if any.
@@ -153,27 +144,6 @@
     _inferredReturn.add(null);
   }
 
-  /// Place an info node into the error stream indicating that a
-  /// [type] has been inferred as the type of [node].
-  void recordInference(Expression node, DartType type) {
-    if (!_inferenceHints) {
-      return;
-    }
-
-    ErrorCode error;
-    if (node is Literal) {
-      error = StrongModeCode.INFERRED_TYPE_LITERAL;
-    } else if (node is InstanceCreationExpression) {
-      error = StrongModeCode.INFERRED_TYPE_ALLOCATION;
-    } else if (node is FunctionExpression) {
-      error = StrongModeCode.INFERRED_TYPE_CLOSURE;
-    } else {
-      error = StrongModeCode.INFERRED_TYPE;
-    }
-
-    _errorReporter.reportErrorForNode(error, node, [node, type]);
-  }
-
   /// Clear the type information associated with [node].
   static void clearType(AstNode node) {
     node?.setProperty(_typeProperty, null);
@@ -485,8 +455,6 @@
    */
   final InheritanceManager3 inheritance;
 
-  final AnalysisOptionsImpl _analysisOptions;
-
   /**
    * The feature set that is enabled for the current unit.
    */
@@ -604,8 +572,7 @@
       reportConstEvaluationErrors,
       this._flowAnalysis,
       this._elementTypeProvider)
-      : _analysisOptions = definingLibrary.context.analysisOptions,
-        _featureSet = featureSet,
+      : _featureSet = featureSet,
         _uiAsCodeEnabled =
             featureSet.isEnabled(Feature.control_flow_collections) ||
                 featureSet.isEnabled(Feature.spread_collections),
@@ -616,12 +583,7 @@
     this.elementResolver = ElementResolver(this,
         reportConstEvaluationErrors: reportConstEvaluationErrors,
         elementTypeProvider: _elementTypeProvider);
-    bool strongModeHints = false;
-    AnalysisOptions options = _analysisOptions;
-    if (options is AnalysisOptionsImpl) {
-      strongModeHints = options.strongModeHints;
-    }
-    this.inferenceContext = InferenceContext._(this, strongModeHints);
+    this.inferenceContext = InferenceContext._(this);
     this.typeAnalyzer = _makeStaticTypeAnalyzer(featureSet, _flowAnalysis);
   }
 
@@ -1581,7 +1543,7 @@
         functionType =
             matchFunctionTypeParameters(node.typeParameters, functionType);
         if (functionType is FunctionType) {
-          _inferFormalParameterList(node.parameters, functionType);
+          typeAnalyzer.inferFormalParameterList(node.parameters, functionType);
           InferenceContext.setType(
               node.body, _computeReturnOrYieldType(functionType.returnType));
         }
@@ -2500,9 +2462,6 @@
             resolveArgumentsToParameters(arguments, inferred.parameters, null);
 
         constructor.type.type = inferred.returnType;
-        if (UnknownInferredType.isKnown(inferred)) {
-          inferenceContext.recordInference(node, inferred.returnType);
-        }
 
         // Update the static element as well. This is used in some cases, such
         // as computing constant values. It is stored in two places.
@@ -2525,28 +2484,6 @@
         node.argumentList, inferred ?? node.staticInvokeType);
   }
 
-  void _inferFormalParameterList(FormalParameterList node, DartType type) {
-    if (typeAnalyzer.inferFormalParameterList(node, type)) {
-      // TODO(leafp): This gets dropped on the floor if we're in the field
-      // inference task.  We should probably keep these infos.
-      //
-      // TODO(jmesserly): this is reporting the context type, and therefore not
-      // necessarily the correct inferred type for the lambda.
-      //
-      // For example, `([x]) {}`  could be passed to `int -> void` but its type
-      // will really be `([int]) -> void`. Similar issue for named arguments.
-      // It can also happen if the return type is inferred later on to be
-      // more precise.
-      //
-      // This reporting bug defeats the deduplication of error messages and
-      // results in the same inference message being reported twice.
-      //
-      // To get this right, we'd have to delay reporting until we have the
-      // complete type including return type.
-      inferenceContext.recordInference(node.parent, type);
-    }
-  }
-
   StaticTypeAnalyzer _makeStaticTypeAnalyzer(
           FeatureSet featureSet, FlowAnalysisHelper flowAnalysis) =>
       StaticTypeAnalyzer(this, featureSet, flowAnalysis);
diff --git a/pkg/analyzer/lib/src/generated/static_type_analyzer.dart b/pkg/analyzer/lib/src/generated/static_type_analyzer.dart
index d69fb2a..f1bf503 100644
--- a/pkg/analyzer/lib/src/generated/static_type_analyzer.dart
+++ b/pkg/analyzer/lib/src/generated/static_type_analyzer.dart
@@ -160,30 +160,6 @@
   }
 
   /**
-   * Given a constructor name [node] and a type [type], record an inferred type
-   * for the constructor if in strong mode. This is used to fill in any
-   * inferred type parameters found by the resolver.
-   */
-  void inferConstructorName(ConstructorName node, InterfaceType type) {
-    // TODO(scheglov) Inline.
-    node.type.type = type;
-    // TODO(scheglov) Remove when DDC stops using analyzer.
-    var element = type.element;
-    if (element.typeParameters.isNotEmpty) {
-      var typeParameterBounds = _typeSystem.instantiateTypeFormalsToBounds(
-        element.typeParameters,
-      );
-      var instantiatedToBounds = element.instantiate(
-        typeArguments: typeParameterBounds,
-        nullabilitySuffix: _noneOrStarSuffix,
-      );
-      if (type != instantiatedToBounds) {
-        _resolver.inferenceContext.recordInference(node.parent, type);
-      }
-    }
-  }
-
-  /**
    * Given a formal parameter list and a function type use the function type
    * to infer types for any of the parameters which have implicit (missing)
    * types.  Returns true if inference has occurred.
@@ -785,13 +761,8 @@
     DartType inferred = inferListType(node);
 
     if (inferred != listDynamicType) {
-      // TODO(jmesserly): this results in an "inferred" message even when we
-      // in fact had an error above, because it will still attempt to return
-      // a type. Perhaps we should record inference from TypeSystem if
-      // everything was successful?
       // TODO(brianwilkerson) Determine whether we need to make the inferred
       //  type non-nullable here or whether it will already be non-nullable.
-      _resolver.inferenceContext.recordInference(node, inferred);
       _recordStaticType(node, inferred);
       return;
     }
@@ -1127,7 +1098,6 @@
     // TODO(brianwilkerson) Decide whether the literalType needs to be made
     //  non-nullable here or whether that will have happened in
     //  _inferSetOrMapLiteralType.
-    _resolver.inferenceContext.recordInference(node, literalType);
     _recordStaticType(node, literalType);
   }
 
@@ -1789,7 +1759,7 @@
       arguments.correspondingStaticParameters =
           ResolverVisitor.resolveArgumentsToParameters(
               arguments, inferred.parameters, null);
-      inferConstructorName(constructor, inferred.returnType);
+      constructor.type.type = inferred.returnType;
       // Update the static element as well. This is used in some cases, such as
       // computing constant values. It is stored in two places.
       constructor.staticElement =
@@ -1814,8 +1784,6 @@
     functionElement.returnType = computedType;
     _recordStaticType(
         node, _elementTypeProvider.getExecutableType(functionElement));
-    _resolver.inferenceContext.recordInference(
-        node, _elementTypeProvider.getExecutableType(functionElement));
   }
 
   /**
diff --git a/pkg/analyzer/test/src/summary/resynthesize_common.dart b/pkg/analyzer/test/src/summary/resynthesize_common.dart
index 3ab7b93..6af1668 100644
--- a/pkg/analyzer/test/src/summary/resynthesize_common.dart
+++ b/pkg/analyzer/test/src/summary/resynthesize_common.dart
@@ -7256,7 +7256,7 @@
     var library = await checkLibrary('''
 typedef void F(int g(String s));
 h(F f) => null;
-var v = h(/*info:INFERRED_TYPE_CLOSURE*/(y) {});
+var v = h((y) {});
 ''');
     checkElementText(library, r'''
 typedef F = void Function(int Function(String) g/*(String s)*/);
diff --git a/pkg/analyzer/test/src/summary/top_level_inference_test.dart b/pkg/analyzer/test/src/summary/top_level_inference_test.dart
index 6a7ed96..3daa825 100644
--- a/pkg/analyzer/test/src/summary/top_level_inference_test.dart
+++ b/pkg/analyzer/test/src/summary/top_level_inference_test.dart
@@ -80,7 +80,7 @@
 class A<T> {}
 class B {
   var t1 = new A<int>();
-  var t2 = /*info:INFERRED_TYPE_ALLOCATION*/new A();
+  var t2 = new A();
 }
 ''';
     await checkFile(content);
@@ -91,7 +91,7 @@
 class A<T> {}
 class B {
   static var t1 = 1;
-  static var t2 = /*info:INFERRED_TYPE_ALLOCATION*/new A();
+  static var t2 = new A();
 }
 ''';
     await checkFile(content);
@@ -127,7 +127,7 @@
 
   test_initializer_extractIndex() async {
     var content = r'''
-var a = /*info:INFERRED_TYPE_LITERAL*/[0, 1.2];
+var a = [0, 1.2];
 var b0 = a[0];
 var b1 = a[1];
 ''';
@@ -137,7 +137,7 @@
   test_initializer_functionLiteral_blockBody() async {
     var content = r'''
 var t = /*error:TOP_LEVEL_FUNCTION_LITERAL_BLOCK*/
-        /*info:INFERRED_TYPE_CLOSURE*/
+        
         (int p) {};
 ''';
     await checkFile(content);
@@ -146,14 +146,14 @@
   test_initializer_functionLiteral_expressionBody() async {
     var content = r'''
 var a = 0;
-var t = /*info:INFERRED_TYPE_CLOSURE*/(int p) => (a = 1);
+var t = (int p) => (a = 1);
 ''';
     await checkFile(content);
   }
 
   test_initializer_functionLiteral_parameters_withoutType() async {
     var content = r'''
-var t = /*info:INFERRED_TYPE_CLOSURE*/(int a, b,int c, d) => 0;
+var t = (int a, b,int c, d) => 0;
 ''';
     await checkFile(content);
   }
@@ -217,7 +217,7 @@
     var content = r'''
 class A<T> {}
 var t1 = new A<int>();
-var t2 = /*info:INFERRED_TYPE_ALLOCATION*/new A();
+var t2 = new A();
 ''';
     await checkFile(content);
   }
@@ -306,7 +306,7 @@
   test_initializer_untypedList() async {
     var content = r'''
 var a = 1;
-var t = /*info:INFERRED_TYPE_LITERAL*/[
+var t = [
             a = 1,
             2, 3];
 ''';
@@ -316,7 +316,7 @@
   test_initializer_untypedMap() async {
     var content = r'''
 var a = 1;
-var t = /*info:INFERRED_TYPE_LITERAL*/{
+var t = {
             (a = 1) :
             (a = 2)};
 ''';
diff --git a/pkg/analyzer/test/src/task/strong/checker_test.dart b/pkg/analyzer/test/src/task/strong/checker_test.dart
index 3148d00..958ee92 100644
--- a/pkg/analyzer/test/src/task/strong/checker_test.dart
+++ b/pkg/analyzer/test/src/task/strong/checker_test.dart
@@ -376,19 +376,19 @@
     await checkFile('''
 abstract class Equality<Q> {}
 abstract class EqualityBase<R> implements Equality<R> {
-  final C<R> c = /*info:INFERRED_TYPE_ALLOCATION*/const C();
+  final C<R> c = const C();
   const EqualityBase();
 }
 class DefaultEquality<S> extends EqualityBase<S> {
   const DefaultEquality();
 }
 class SetEquality<T> implements Equality<T> {
-  final Equality<T> field = /*info:INFERRED_TYPE_ALLOCATION*/const DefaultEquality();
-  const SetEquality([Equality<T> inner = /*info:INFERRED_TYPE_ALLOCATION*/const DefaultEquality()]);
+  final Equality<T> field = const DefaultEquality();
+  const SetEquality([Equality<T> inner = const DefaultEquality()]);
 }
 class C<Q> {
-  final List<Q> list = /*info:INFERRED_TYPE_LITERAL*/const [];
-  final Map<Q, Iterable<Q>> m =  /*info:INFERRED_TYPE_LITERAL*/const {};
+  final List<Q> list = const [];
+  final Map<Q, Iterable<Q>> m =  const {};
   const C();
 }
 main() {
@@ -443,7 +443,7 @@
 
   test_conversionAndDynamicInvoke() async {
     addFile('''
-dynamic toString = /*info:INFERRED_TYPE_CLOSURE*/(int x) => x + 42;
+dynamic toString = (int x) => x + 42;
 dynamic hashCode = "hello";
 ''', name: '/helper.dart');
     await checkFile('''
@@ -507,7 +507,7 @@
   (/*info:DYNAMIC_INVOKE*/a1.toStringClosure("hello"));
   a1.hashCode;
 
-  dynamic toString = /*info:INFERRED_TYPE_CLOSURE*/() => null;
+  dynamic toString = () => null;
   (/*info:DYNAMIC_INVOKE*/toString());
 
   (/*info:DYNAMIC_INVOKE*/helper.toString());
@@ -976,7 +976,7 @@
 Stream baz2() async* { yield* x; }
 Stream<int> baz3() async* { yield* x; }
 Stream<int> baz4() async* { yield* intStream; }
-Stream<int> baz5() async* { yield* /*info:INFERRED_TYPE_ALLOCATION*/new MyStream(); }
+Stream<int> baz5() async* { yield* new MyStream(); }
 ''');
   }
 
@@ -993,7 +993,7 @@
 Iterable baz2() sync* { yield* x; }
 Iterable<int> baz3() sync* { yield* x; }
 Iterable<int> baz4() sync* { yield* bar3(); }
-Iterable<int> baz5() sync* { yield* /*info:INFERRED_TYPE_ALLOCATION*/new List(); }
+Iterable<int> baz5() sync* { yield* new List(); }
 ''');
   }
 
@@ -1149,10 +1149,10 @@
         botTop
                       );
     apply<BotTop>(
-        /*info:INFERRED_TYPE_CLOSURE*/(dynamic x) => new A(),
-        /*info:INFERRED_TYPE_CLOSURE*/(dynamic x) => (x as Object),
-        /*info:INFERRED_TYPE_CLOSURE*/(A x) => x,
-        /*info:INFERRED_TYPE_CLOSURE*/(A x) => null,
+        (dynamic x) => new A(),
+        (dynamic x) => (x as Object),
+        (A x) => x,
+        (A x) => null,
         botA,
         botTop
                       );
@@ -1174,10 +1174,10 @@
         botTop
                     );
     apply<ATop>(
-        /*info:INFERRED_TYPE_CLOSURE*/(dynamic x) => new A(),
-        /*info:INFERRED_TYPE_CLOSURE*/(dynamic x) => (x as Object),
-        /*info:INFERRED_TYPE_CLOSURE*/(A x) => x,
-        /*info:INFERRED_TYPE_CLOSURE*/(A x) => null,
+        (dynamic x) => new A(),
+        (dynamic x) => (x as Object),
+        (A x) => x,
+        (A x) => null,
         /*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/botA,
         botTop
                     );
@@ -1199,10 +1199,10 @@
         botTop
                     );
     apply<BotA>(
-        /*info:INFERRED_TYPE_CLOSURE*/(dynamic x) => new A(),
-        /*info:INFERRED_TYPE_CLOSURE*/(dynamic x) => (x as Object),
-        /*info:INFERRED_TYPE_CLOSURE*/(A x) => x,
-        /*info:INFERRED_TYPE_CLOSURE*/(A x) => (/*info:UNNECESSARY_CAST*/x as Object),
+        (dynamic x) => new A(),
+        (dynamic x) => (x as Object),
+        (A x) => x,
+        (A x) => (/*info:UNNECESSARY_CAST*/x as Object),
         botA,
         botTop
                     );
@@ -1224,10 +1224,10 @@
         botTop
                   );
     apply<AA>(
-        /*info:INFERRED_TYPE_CLOSURE*/(dynamic x) => new A(),
-        /*info:INFERRED_TYPE_CLOSURE*/(dynamic x) => (x as Object),
-        /*info:INFERRED_TYPE_CLOSURE*/(A x) => x,
-        /*info:INFERRED_TYPE_CLOSURE*/(A x) => (/*info:UNNECESSARY_CAST*/x as Object), // known function
+        (dynamic x) => new A(),
+        (dynamic x) => (x as Object),
+        (A x) => x,
+        (A x) => (/*info:UNNECESSARY_CAST*/x as Object), // known function
         botA,
         botTop
                   );
@@ -1249,10 +1249,10 @@
         botTop
                       );
     apply<TopTop>(
-        /*info:INFERRED_TYPE_CLOSURE*/(dynamic x) => new A(),
-        /*info:INFERRED_TYPE_CLOSURE*/(dynamic x) => (x as Object),
-        /*info:INFERRED_TYPE_CLOSURE, error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/(A x) => x,
-        /*info:INFERRED_TYPE_CLOSURE, error:INVALID_CAST_FUNCTION_EXPR*/(A x) => (/*info:UNNECESSARY_CAST*/x as Object), // known function
+        (dynamic x) => new A(),
+        (dynamic x) => (x as Object),
+        /*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/(A x) => x,
+        /*error:INVALID_CAST_FUNCTION_EXPR*/(A x) => (/*info:UNNECESSARY_CAST*/x as Object), // known function
         /*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/botA,
         botTop
                       );
@@ -1274,10 +1274,10 @@
         botTop
                     );
     apply<TopA>(
-        /*info:INFERRED_TYPE_CLOSURE*/(dynamic x) => new A(),
-        /*info:INFERRED_TYPE_CLOSURE*/(dynamic x) => (x as Object), // known function
-        /*info:INFERRED_TYPE_CLOSURE, error:INVALID_CAST_FUNCTION_EXPR*/(A x) => x, // known function
-        /*info:INFERRED_TYPE_CLOSURE, error:INVALID_CAST_FUNCTION_EXPR*/(A x) => (/*info:UNNECESSARY_CAST*/x as Object), // known function
+        (dynamic x) => new A(),
+        (dynamic x) => (x as Object), // known function
+        /*error:INVALID_CAST_FUNCTION_EXPR*/(A x) => x, // known function
+        /*error:INVALID_CAST_FUNCTION_EXPR*/(A x) => (/*info:UNNECESSARY_CAST*/x as Object), // known function
         botA,
         botTop
                     );
@@ -1892,7 +1892,7 @@
   test_functionTypingAndSubtyping_subtypeOfUniversalType() async {
     await checkFile('''
 void main() {
-  nonGenericFn/*info:INFERRED_TYPE_CLOSURE*/(x) => null;
+  nonGenericFn(x) => null;
   {
     R f<P, R>(P p) => null;
     T g<S, T>(S s) => null;
@@ -1901,7 +1901,7 @@
     local = g; // valid
 
     // Non-generic function cannot subtype a generic one.
-    local = /*info:INFERRED_TYPE_CLOSURE, error:INVALID_ASSIGNMENT*/(x) => null;
+    local = /*error:INVALID_ASSIGNMENT*/(x) => null;
     local = /*error:INVALID_ASSIGNMENT*/nonGenericFn;
   }
   {
@@ -1917,7 +1917,7 @@
     local2 = local;
 
     // Non-generic function cannot subtype a generic one.
-    local = /*info:INFERRED_TYPE_CLOSURE, error:INVALID_ASSIGNMENT*/(x) => null;
+    local = /*error:INVALID_ASSIGNMENT*/(x) => null;
     local = /*error:INVALID_ASSIGNMENT*/nonGenericFn;
   }
 }
@@ -1928,7 +1928,7 @@
     await checkFile('''
 typedef num Num2Num(num x);
 void main() {
-  Num2Num g = /*info:INFERRED_TYPE_CLOSURE,error:INVALID_ASSIGNMENT*/(int x) { return x; };
+  Num2Num g = /*error:INVALID_ASSIGNMENT*/(int x) { return x; };
   print(g(42));
 }
 ''');
@@ -2182,7 +2182,7 @@
 
   test_implicitCasts_genericMethods() async {
     addFile('''
-var x = <String>[].map<String>(/*info:INFERRED_TYPE_CLOSURE*/(x) => "");
+var x = <String>[].map<String>((x) => "");
 ''');
     await check(implicitCasts: false);
   }
@@ -2277,9 +2277,9 @@
   d = /*error:IMPLICIT_DYNAMIC_FUNCTION*/g();
   i = g();
 
-  /*error:IMPLICIT_DYNAMIC_INVOKE*/(/*info:INFERRED_TYPE_CLOSURE*/<T>(T t) => t)(d);
-  (/*info:INFERRED_TYPE_CLOSURE*/<T>(T t) => t)(42);
-  (/*info:INFERRED_TYPE_CLOSURE*/<T>() => /*info:UNNECESSARY_CAST*/null as T)<int>();
+  /*error:IMPLICIT_DYNAMIC_INVOKE*/(<T>(T t) => t)(d);
+  (<T>(T t) => t)(42);
+  (<T>() => /*info:UNNECESSARY_CAST*/null as T)<int>();
 }
     ''');
     await check(implicitDynamic: false);
@@ -2296,26 +2296,26 @@
 
 var l4 = <dynamic>[];
 var l5 = <int>[];
-List<int> l6 = /*info:INFERRED_TYPE_LITERAL*/[];
-var l7 = /*info:INFERRED_TYPE_LITERAL*/[42];
+List<int> l6 = [];
+var l7 = [42];
     ''');
     await check(implicitDynamic: false);
   }
 
   test_implicitDynamic_mapLiteral() async {
     addFile(r'''
-var m0 = /*info:INFERRED_TYPE_LITERAL,error:IMPLICIT_DYNAMIC_MAP_LITERAL*/{};
-Map m1 = /*info:INFERRED_TYPE_LITERAL,error:IMPLICIT_DYNAMIC_MAP_LITERAL*/{};
-Map<dynamic, dynamic> m2 = /*info:INFERRED_TYPE_LITERAL,error:IMPLICIT_DYNAMIC_MAP_LITERAL*/{};
+var m0 = /*error:IMPLICIT_DYNAMIC_MAP_LITERAL*/{};
+Map m1 = /*error:IMPLICIT_DYNAMIC_MAP_LITERAL*/{};
+Map<dynamic, dynamic> m2 = /*error:IMPLICIT_DYNAMIC_MAP_LITERAL*/{};
 dynamic d = 42;
-var m3 = /*info:INFERRED_TYPE_LITERAL,error:IMPLICIT_DYNAMIC_MAP_LITERAL*/{d: d};
-var m4 = /*info:INFERRED_TYPE_LITERAL,error:IMPLICIT_DYNAMIC_MAP_LITERAL*/{'x': d, 'y': d};
-var m5 = /*info:INFERRED_TYPE_LITERAL,error:IMPLICIT_DYNAMIC_MAP_LITERAL*/{d: 'x'};
+var m3 = /*error:IMPLICIT_DYNAMIC_MAP_LITERAL*/{d: d};
+var m4 = /*error:IMPLICIT_DYNAMIC_MAP_LITERAL*/{'x': d, 'y': d};
+var m5 = /*error:IMPLICIT_DYNAMIC_MAP_LITERAL*/{d: 'x'};
 
 var m6 = <dynamic, dynamic>{};
 var m7 = <String, String>{};
-Map<String, String> m8 = /*info:INFERRED_TYPE_LITERAL*/{};
-var m9 = /*info:INFERRED_TYPE_LITERAL*/{'hi': 'there'};
+Map<String, String> m8 = {};
+var m9 = {'hi': 'there'};
     ''');
     await check(implicitDynamic: false);
   }
@@ -2392,7 +2392,7 @@
 
 // nested function
 void main() {
-  /*error:IMPLICIT_DYNAMIC_RETURN*/g0/*info:INFERRED_TYPE_CLOSURE*/() {return g0();}
+  /*error:IMPLICIT_DYNAMIC_RETURN*/g0() {return g0();}
   dynamic g1() { return 42; }
 }
 
@@ -2416,8 +2416,8 @@
 void ftf1(dynamic f(int x)) {}
 
 // function expressions
-var fe0 = /*info:INFERRED_TYPE_CLOSURE*/(int x) => x as dynamic;
-var fe1 = /*info:INFERRED_TYPE_CLOSURE*/(int x) => x;
+var fe0 = (int x) => x as dynamic;
+var fe1 = (int x) => x;
     ''');
     await check(implicitDynamic: false);
   }
@@ -2429,7 +2429,7 @@
 }
 
 void main() {
-  C.test(/*info:INFERRED_TYPE_CLOSURE*/()  {
+  C.test(()  {
     return 42;
   });
 }
@@ -2451,10 +2451,10 @@
     implements /*error:IMPLICIT_DYNAMIC_TYPE*/I;
 
 C f(D d) {
-  D x = /*info:INFERRED_TYPE_ALLOCATION*/new /*error:IMPLICIT_DYNAMIC_TYPE*/D();
-  D<int, dynamic> y = /*info:INFERRED_TYPE_ALLOCATION*/new /*error:IMPLICIT_DYNAMIC_TYPE*/D();
-  D<dynamic, int> z = /*info:INFERRED_TYPE_ALLOCATION*/new /*error:IMPLICIT_DYNAMIC_TYPE*/D();
-  return /*info:INFERRED_TYPE_ALLOCATION*/new /*error:IMPLICIT_DYNAMIC_TYPE*/C();
+  D x = new /*error:IMPLICIT_DYNAMIC_TYPE*/D();
+  D<int, dynamic> y = new /*error:IMPLICIT_DYNAMIC_TYPE*/D();
+  D<dynamic, int> z = new /*error:IMPLICIT_DYNAMIC_TYPE*/D();
+  return new /*error:IMPLICIT_DYNAMIC_TYPE*/C();
 }
 
 class A<T extends num> {}
@@ -2463,8 +2463,8 @@
 class J<T extends Object> {}
 class B<T extends Object> extends A with N1, N2 implements J {}
 A g(B b) {
-  B y = /*info:INFERRED_TYPE_ALLOCATION*/new B();
-  return /*info:INFERRED_TYPE_ALLOCATION*/new A();
+  B y = new B();
+  return new A();
 }
     ''');
     await check(implicitDynamic: false);
@@ -3681,8 +3681,8 @@
 
   // downwards inference
   C<int> c, d;
-  c ??= /*info:INFERRED_TYPE_ALLOCATION*/new C();
-  d = d ?? /*info:INFERRED_TYPE_ALLOCATION*/new C();
+  c ??= new C();
+  d = d ?? new C();
 }
 ''');
   }
@@ -3704,10 +3704,8 @@
     // Regression test for https://github.com/dart-lang/sdk/issues/26155
     await checkFile(r'''
 void takesF(void f(int x)) {
-  takesF(/*info:INFERRED_TYPE_CLOSURE,
-           info:INFERRED_TYPE_CLOSURE*/([x]) { bool z = x.isEven; });
-  takesF(/*info:INFERRED_TYPE_CLOSURE,
-           info:INFERRED_TYPE_CLOSURE*/(y) { bool z = y.isEven; });
+  takesF(([x]) { bool z = x.isEven; });
+  takesF((y) { bool z = y.isEven; });
 }
     ''');
   }
@@ -3869,7 +3867,7 @@
     lOfDs = lOfDs;
     lOfDs = lOfOs;
     lOfDs = lOfAs;
-    lOfDs = /*info:INFERRED_TYPE_ALLOCATION*/new L(); // Reset type propagation.
+    lOfDs = new L(); // Reset type propagation.
   }
   {
     lOfOs = mOfDs;
@@ -3896,7 +3894,7 @@
     mOfDs = lOfDs;
     mOfDs = lOfOs;
     mOfDs = /*error:INVALID_ASSIGNMENT*/lOfAs;
-    mOfDs = /*info:INFERRED_TYPE_ALLOCATION*/new M(); // Reset type propagation.
+    mOfDs = new M(); // Reset type propagation.
   }
   {
     mOfOs = mOfDs;
@@ -4513,13 +4511,13 @@
   SplayTreeMap([int compare(K key1, K key2),
                 bool isValidKey(potentialKey)])
     : _comparator = (compare == null) ? Comparable.compare : compare,
-      _validKey = (isValidKey != null) ? isValidKey : (/*info:INFERRED_TYPE_CLOSURE*/(v) => true) {
+      _validKey = (isValidKey != null) ? isValidKey : ((v) => true) {
 
     _Predicate<Object> v = (isValidKey != null)
-        ? isValidKey : (/*info:INFERRED_TYPE_CLOSURE*/(_) => true);
+        ? isValidKey : ((_) => true);
 
     v = (isValidKey != null)
-         ? v : (/*info:INFERRED_TYPE_CLOSURE*/(_) => true);
+         ? v : ((_) => true);
   }
 }
 void main() {
@@ -4564,13 +4562,13 @@
  // TODO(leafp): We can't currently test for key errors since the
  // error marker binds to the entire entry.
   {
-     Map m = /*info:INFERRED_TYPE_LITERAL*/{s: i};
-     m = /*info:INFERRED_TYPE_LITERAL*/{s: s};
-     m = /*info:INFERRED_TYPE_LITERAL*/{s: n};
-     m = /*info:INFERRED_TYPE_LITERAL*/{s: i,
+     Map m = {s: i};
+     m = {s: s};
+     m = {s: n};
+     m = {s: i,
           s: n,
           s: s};
-     m = /*info:INFERRED_TYPE_LITERAL*/{i: s,
+     m = {i: s,
           n: s,
           s: s};
   }
@@ -4636,8 +4634,8 @@
     await checkFile(r'''
 void f<T extends num>(T x, T y) {
   var z = x;
-  var f = /*info:INFERRED_TYPE_CLOSURE*/() => x;
-  f = /*info:INFERRED_TYPE_CLOSURE*/() => y;
+  var f = () => x;
+  f = () => y;
   if (x is int) {
     /*info:DYNAMIC_INVOKE*/z./*error:UNDEFINED_GETTER*/isEven;
     var q = x;
@@ -4645,7 +4643,7 @@
     /*info:DYNAMIC_INVOKE*/f()./*error:UNDEFINED_GETTER*/isEven;
 
     // This captures the type `T extends int`.
-    var g = /*info:INFERRED_TYPE_CLOSURE*/() => x;
+    var g = () => x;
     g = f;
     g().isEven;
     q = g();
@@ -4835,7 +4833,7 @@
   b++;
   b--;
 
-  takesC/*info:INFERRED_TYPE_CLOSURE*/(C c) => null;
+  takesC(C c) => null;
   takesC(++b);
   takesC(--b);
   takesC(b++);
diff --git a/pkg/analyzer/test/src/task/strong/inferred_type_test.dart b/pkg/analyzer/test/src/task/strong/inferred_type_test.dart
index 4225b72..575b9c3 100644
--- a/pkg/analyzer/test/src/task/strong/inferred_type_test.dart
+++ b/pkg/analyzer/test/src/task/strong/inferred_type_test.dart
@@ -51,8 +51,8 @@
     var mainUnit = await checkFileElement('''
 import 'dart:async';
 Future<int> futureInt = null;
-var f = /*info:INFERRED_TYPE_CLOSURE*/() => futureInt;
-var g = /*info:INFERRED_TYPE_CLOSURE*/() async => futureInt;
+var f = () => futureInt;
+var g = () async => futureInt;
 ''');
     var futureInt = mainUnit.topLevelVariables[0];
     expect(futureInt.name, 'futureInt');
@@ -67,7 +67,7 @@
 
   test_asyncClosureReturnType_future() async {
     var mainUnit = await checkFileElement('''
-var f = /*info:INFERRED_TYPE_CLOSURE*/() async => 0;
+var f = () async => 0;
 ''');
     var f = mainUnit.topLevelVariables[0];
     expect(f.name, 'f');
@@ -78,8 +78,8 @@
     var mainUnit = await checkFileElement('''
 import 'dart:async';
 FutureOr<int> futureOrInt = null;
-var f = /*info:INFERRED_TYPE_CLOSURE*/() => futureOrInt;
-var g = /*info:INFERRED_TYPE_CLOSURE*/() async => futureOrInt;
+var f = () => futureOrInt;
+var g = () async => futureOrInt;
 ''');
     var futureOrInt = mainUnit.topLevelVariables[0];
     expect(futureOrInt.name, 'futureOrInt');
@@ -100,7 +100,7 @@
 import 'dart:async';
 import 'dart:math' show Random;
 main() {
-  var f = /*info:INFERRED_TYPE_CLOSURE*/() async {
+  var f = () async {
     if (new Random().nextBool()) {
       return new Future<int>.value(1);
     } else {
@@ -123,7 +123,7 @@
 import 'dart:async';
 import 'dart:math' show Random;
 main() {
-  var f = /*info:INFERRED_TYPE_CLOSURE*/() async {
+  var f = () async {
     if (new Random().nextBool()) {
       return 1;
     } else {
@@ -146,7 +146,7 @@
 import 'dart:async';
 import 'dart:math' show Random;
 main() {
-  var f = /*info:INFERRED_TYPE_CLOSURE*/() async {
+  var f = () async {
     if (new Random().nextBool()) {
       return new Future<int>.value(1);
     } else {
@@ -168,7 +168,7 @@
     var unit = await checkFile(r'''
 import 'dart:async';
 main() {
-  var f = /*info:INFERRED_TYPE_CLOSURE*/() async* {
+  var f = () async* {
     yield 1;
     Stream<double> s;
     yield* s;
@@ -185,7 +185,7 @@
     await checkFileElement(r'''
 test1() {
   List<int> o;
-  var y = o.map(/*info:INFERRED_TYPE_CLOSURE,info:INFERRED_TYPE_CLOSURE*/(x) { return x + 1; });
+  var y = o.map((x) { return x + 1; });
   Iterable<int> z = y;
 }
 ''');
@@ -199,7 +199,7 @@
 main() {
   String f() => null;
   var g = f;
-  g = /*info:INFERRED_TYPE_CLOSURE*/() { return /*error:RETURN_OF_INVALID_TYPE_FROM_CLOSURE*/1; };
+  g = () { return /*error:RETURN_OF_INVALID_TYPE_FROM_CLOSURE*/1; };
 }
 ''');
     var g = findLocalVariable(unit, 'g');
@@ -222,7 +222,7 @@
     var unit = await checkFile(r'''
 import 'dart:async';
 main() async {
-  var f = /*info:INFERRED_TYPE_CLOSURE*/() async { return null; };
+  var f = () async { return null; };
   Future y = f();
   Future<String> z = f();
   String s = await f();
@@ -239,7 +239,7 @@
     var unit = await checkFile(r'''
 import 'dart:async';
 main() async {
-  var f = /*info:INFERRED_TYPE_CLOSURE*/() async* { yield null; };
+  var f = () async* { yield null; };
   Stream y = f();
   Stream<String> z = f();
   String s = await f().first;
@@ -258,15 +258,13 @@
 void foo(int g(Object _)) {}
 
 main() {
-  var f = /*info:INFERRED_TYPE_CLOSURE*/(Object x) { return null; };
+  var f = (Object x) { return null; };
   String y = f(42);
 
-  f = /*info:INFERRED_TYPE_CLOSURE*/(x) => /*error:INVALID_CAST_LITERAL*/'hello';
+  f = (x) => /*error:INVALID_CAST_LITERAL*/'hello';
 
-  foo(/*info:INFERRED_TYPE_CLOSURE,
-        info:INFERRED_TYPE_CLOSURE*/(x) { return null; });
-  foo(/*info:INFERRED_TYPE_CLOSURE,
-        info:INFERRED_TYPE_CLOSURE*/(x) { throw "not implemented"; });
+  foo((x) { return null; });
+  foo((x) { throw "not implemented"; });
 }
 ''');
 
@@ -280,7 +278,7 @@
     }
     var unit = await checkFile(r'''
 main() {
-  var f = /*info:INFERRED_TYPE_CLOSURE*/() sync* { yield null; };
+  var f = () sync* { yield null; };
   Iterable y = f();
   Iterable<String> z = f();
   String s = f().first;
@@ -295,7 +293,7 @@
 import 'dart:math' show Random;
 test2() {
   List<num> o;
-  var y = o.map(/*info:INFERRED_TYPE_CLOSURE, info:INFERRED_TYPE_CLOSURE*/(x) {
+  var y = o.map((x) {
     if (new Random().nextBool()) {
       return x.toInt() + 1;
     } else {
@@ -315,8 +313,8 @@
     // Original feature request: https://github.com/dart-lang/sdk/issues/25487
     var unit = await checkFile(r'''
 main() {
-  var f = /*info:INFERRED_TYPE_CLOSURE*/() {
-    return /*info:INFERRED_TYPE_CLOSURE*/(int x) { return 2.0 * x; };
+  var f = () {
+    return (int x) { return 2.0 * x; };
   };
 }
 ''');
@@ -331,7 +329,7 @@
     var unit = await checkFile(r'''
 test1() {
   List<int> o;
-  var y = o.map(/*info:INFERRED_TYPE_CLOSURE,info:INFERRED_TYPE_CLOSURE*/(x) { });
+  var y = o.map((x) { });
   Iterable<int> z = y;
 }
 ''');
@@ -345,9 +343,9 @@
     }
     var unit = await checkFile(r'''
 main() {
-  var f = /*info:INFERRED_TYPE_CLOSURE*/() sync* {
+  var f = () sync* {
     yield 1;
-    yield* /*info:INFERRED_TYPE_LITERAL*/[3, 4.0];
+    yield* [3, 4.0];
   };
   Iterable<num> g = f();
   Iterable<int> h = f();
@@ -373,7 +371,7 @@
     // When a closure's return type is inferred from the expression `null`, the
     // inferred type is `dynamic`.
     var mainUnit = await checkFileElement('''
-var v = /*info:INFERRED_TYPE_CLOSURE*/() => null;
+var v = () => null;
 ''');
     var v = mainUnit.topLevelVariables[0];
     expect(v.type.toString(), 'Null Function()');
@@ -382,8 +380,8 @@
 
   test_circularReference_viaClosures() async {
     var mainUnit = await checkFileElement('''
-var x = /*info:INFERRED_TYPE_CLOSURE*/() => /*error:TOP_LEVEL_CYCLE*/y;
-var y = /*info:INFERRED_TYPE_CLOSURE*/() => /*error:TOP_LEVEL_CYCLE*/x;
+var x = () => /*error:TOP_LEVEL_CYCLE*/y;
+var y = () => /*error:TOP_LEVEL_CYCLE*/x;
 ''');
     var x = mainUnit.topLevelVariables[0];
     var y = mainUnit.topLevelVariables[1];
@@ -395,8 +393,8 @@
 
   test_circularReference_viaClosures_initializerTypes() async {
     var mainUnit = await checkFileElement('''
-var x = /*info:INFERRED_TYPE_CLOSURE*/() => /*error:TOP_LEVEL_CYCLE*/y;
-var y = /*info:INFERRED_TYPE_CLOSURE*/() => /*error:TOP_LEVEL_CYCLE*/x;
+var x = () => /*error:TOP_LEVEL_CYCLE*/y;
+var y = () => /*error:TOP_LEVEL_CYCLE*/x;
 ''');
     var x = mainUnit.topLevelVariables[0];
     var y = mainUnit.topLevelVariables[1];
@@ -473,7 +471,7 @@
 class B extends A {}
 class Foo<T extends A> {}
 void main() {
-  Foo<B> foo = /*info:INFERRED_TYPE_ALLOCATION*/new Foo();
+  Foo<B> foo = new Foo();
 }
 ''');
   }
@@ -490,7 +488,7 @@
   U u;
   Pair(this.t, this.u);
   Pair._();
-  Pair<U, T> get reversed => /*info:INFERRED_TYPE_ALLOCATION*/new Pair(u, t);
+  Pair<U, T> get reversed => new Pair(u, t);
 }
 
 main() {
@@ -509,14 +507,14 @@
 }
 
 main() {
-  var x = /*info:INFERRED_TYPE_ALLOCATION*/new C(42);
+  var x = new C(42);
 
   num y;
-  C<int> c_int = /*info:INFERRED_TYPE_ALLOCATION*/new C(y);
+  C<int> c_int = new C(y);
 
   // These hints are not reported because we resolve with a null error listener.
-  C<num> c_num = /*info:INFERRED_TYPE_ALLOCATION*/new C(123);
-  C<num> c_num2 = (/*info:INFERRED_TYPE_ALLOCATION*/new C(456))
+  C<num> c_num = new C(123);
+  C<num> c_num2 = (new C(456))
       ..t = 1.0;
 
   // Don't infer from explicit dynamic.
@@ -544,7 +542,7 @@
 NotA myF() => null;
 
 main() {
-  var x = /*info:INFERRED_TYPE_ALLOCATION*/new
+  var x = new
       /*error:COULD_NOT_INFER,error:TYPE_ARGUMENT_NOT_MATCHING_BOUNDS*/C(myF);
 }
 ''');
@@ -560,7 +558,7 @@
 }
 
 main() {
-  var x = /*info:INFERRED_TYPE_ALLOCATION*/const C(42);
+  var x = const C(42);
 }
 ''');
     var x = findLocalVariable(unit, 'x');
@@ -578,9 +576,9 @@
   const D();
 }
 void f() {
-  const c = /*info:INFERRED_TYPE_ALLOCATION*/const C(0);
+  const c = const C(0);
   C<int> c2 = c;
-  const D<int> d = /*info:INFERRED_TYPE_ALLOCATION*/const D();
+  const D<int> d = const D();
 }
 ''');
   }
@@ -590,12 +588,12 @@
 class C<T> { C(List<T> list); }
 
 main() {
-  var x = /*info:INFERRED_TYPE_ALLOCATION*/new C(/*info:INFERRED_TYPE_LITERAL*/[123]);
+  var x = new C([123]);
   C<int> y = x;
 
   var a = new C<dynamic>([123]);
   // This one however works.
-  var b = new C<Object>(/*info:INFERRED_TYPE_LITERAL*/[123]);
+  var b = new C<Object>([123]);
 }
 ''');
   }
@@ -616,7 +614,7 @@
 
 
 main() {
-  var x = /*info:INFERRED_TYPE_ALLOCATION*/new C(42);
+  var x = new C(42);
   x.t = /*error:INVALID_ASSIGNMENT*/'hello';
 }
 ''');
@@ -627,10 +625,10 @@
   test_constructors_inferFromArguments_factory_callsConstructor() async {
     await checkFileElement(r'''
 class A<T> {
-  A<T> f = /*info:INFERRED_TYPE_ALLOCATION*/new A();
+  A<T> f = new A();
   A();
-  factory A.factory() => /*info:INFERRED_TYPE_ALLOCATION*/new A();
-  A<T> m() => /*info:INFERRED_TYPE_ALLOCATION*/new A();
+  factory A.factory() => new A();
+  A<T> m() => new A();
 }
 ''');
   }
@@ -644,7 +642,7 @@
 
 
 main() {
-  var x = /*info:INFERRED_TYPE_ALLOCATION*/new C.named(<int>[]);
+  var x = new C.named(<int>[]);
   x.t = /*error:INVALID_ASSIGNMENT*/'hello';
 }
 ''');
@@ -667,7 +665,7 @@
 
 
 main() {
-  var x = /*info:INFERRED_TYPE_ALLOCATION*/new C.named(42);
+  var x = new C.named(42);
   x.t = /*error:INVALID_ASSIGNMENT*/'hello';
 }
 ''');
@@ -685,7 +683,7 @@
 
 
 main() {
-  var x = /*info:INFERRED_TYPE_ALLOCATION*/new C.named(<int>[42]);
+  var x = new C.named(<int>[42]);
   x.t = /*error:INVALID_ASSIGNMENT*/'hello';
 }
 ''');
@@ -708,7 +706,7 @@
 }
 
 main() {
-  var x = /*info:INFERRED_TYPE_ALLOCATION*/new C(42);
+  var x = new C(42);
   x.t = /*error:INVALID_ASSIGNMENT*/'hello';
 }
 ''');
@@ -723,7 +721,7 @@
   T t;
   U u;
   Pair(this.t, this.u);
-  Pair<U, T> get reversed => /*info:INFERRED_TYPE_ALLOCATION*/new Pair(u, t);
+  Pair<U, T> get reversed => new Pair(u, t);
 }
 ''');
   }
@@ -825,11 +823,11 @@
     var x = "hello";
     var y = 3;
     void f(List<Map<int, String>> l) {};
-    f(/*info:INFERRED_TYPE_LITERAL*/[/*info:INFERRED_TYPE_LITERAL*/{y: x}]);
+    f([{y: x}]);
   }
   {
     int f(int x) => 0;
-    A<int> a = /*info:INFERRED_TYPE_ALLOCATION*/new A(f);
+    A<int> a = new A(f);
   }
 }
 ''');
@@ -845,10 +843,10 @@
   B(T x);
 }
 
-var t1 = new A()..b = /*info:INFERRED_TYPE_ALLOCATION*/new B(1);
-var t2 = <B<int>>[/*info:INFERRED_TYPE_ALLOCATION*/new B(2)];
-var t3 = /*info:INFERRED_TYPE_LITERAL*/[
-            /*info:INFERRED_TYPE_ALLOCATION*/new B(3)
+var t1 = new A()..b = new B(1);
+var t2 = <B<int>>[new B(2)];
+var t3 = [
+            new B(3)
          ];
 ''');
   }
@@ -859,9 +857,9 @@
   const Foo(List<String> l);
   const Foo.named(List<String> l);
 }
-@Foo(/*info:INFERRED_TYPE_LITERAL*/const [])
+@Foo(const [])
 class Bar {}
-@Foo.named(/*info:INFERRED_TYPE_LITERAL*/const [])
+@Foo.named(const [])
 class Baz {}
 ''');
   }
@@ -870,8 +868,8 @@
     await checkFileElement('''
 void main() {
   List<int> l;
-  l = /*info:INFERRED_TYPE_LITERAL*/[/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/"hello"];
-  l = (l = /*info:INFERRED_TYPE_LITERAL*/[1]);
+  l = [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/"hello"];
+  l = (l = [1]);
 }
 ''');
   }
@@ -881,9 +879,9 @@
 import 'dart:async';
 Future test() async {
   dynamic d;
-  List<int> l0 = await /*info:INFERRED_TYPE_LITERAL*/[d];
-  List<int> l1 = await /*info:INFERRED_TYPE_ALLOCATION*/new Future.value(
-      /*info:INFERRED_TYPE_LITERAL*/[d]);
+  List<int> l0 = await [d];
+  List<int> l1 = await new Future.value(
+      [d]);
 }
 ''');
   }
@@ -897,8 +895,8 @@
 }
 
 Future main() async {
-  for(int x in /*info:INFERRED_TYPE_LITERAL*/[1, 2, 3]) {}
-  await for(int x in /*info:INFERRED_TYPE_ALLOCATION*/new MyStream()) {}
+  for(int x in [1, 2, 3]) {}
+  await for(int x in new MyStream()) {}
 }
 ''');
   }
@@ -908,12 +906,12 @@
 typedef T Function2<S, T>([S x]);
 class Foo {
   List<int> x;
-  Foo([this.x = /*info:INFERRED_TYPE_LITERAL*/const [1]]);
-  Foo.named([List<int> x = /*info:INFERRED_TYPE_LITERAL*/const [1]]);
+  Foo([this.x = const [1]]);
+  Foo.named([List<int> x = const [1]]);
 }
-void f([List<int> l = /*info:INFERRED_TYPE_LITERAL*/const [1]]) {}
+void f([List<int> l = const [1]]) {}
 // We do this inference in an early task but don't preserve the infos.
-Function2<List<int>, String> g = /*pass should be info:INFERRED_TYPE_CLOSURE, info:INFERRED_TYPE_CLOSURE*/([llll = /*info:INFERRED_TYPE_LITERAL*/const [1]]) => "hello";
+Function2<List<int>, String> g = ([llll = const [1]]) => "hello";
 ''');
   }
 
@@ -935,33 +933,33 @@
   F4({Iterable<Iterable<int>> a}) {}
 }
 void main() {
-  new F0(/*info:INFERRED_TYPE_LITERAL*/[]);
-  new F0(/*info:INFERRED_TYPE_LITERAL*/[3]);
-  new F0(/*info:INFERRED_TYPE_LITERAL*/[/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/"hello"]);
-  new F0(/*info:INFERRED_TYPE_LITERAL*/[/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/"hello",
+  new F0([]);
+  new F0([3]);
+  new F0([/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/"hello"]);
+  new F0([/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/"hello",
                                       3]);
 
-  new F1(a: /*info:INFERRED_TYPE_LITERAL*/[]);
-  new F1(a: /*info:INFERRED_TYPE_LITERAL*/[3]);
-  new F1(a: /*info:INFERRED_TYPE_LITERAL*/[/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/"hello"]);
-  new F1(a: /*info:INFERRED_TYPE_LITERAL*/[/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/"hello", 3]);
+  new F1(a: []);
+  new F1(a: [3]);
+  new F1(a: [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/"hello"]);
+  new F1(a: [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/"hello", 3]);
 
-  new F2(/*info:INFERRED_TYPE_LITERAL*/[]);
-  new F2(/*info:INFERRED_TYPE_LITERAL*/[3]);
-  new F2(/*info:INFERRED_TYPE_LITERAL*/[/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/"hello"]);
-  new F2(/*info:INFERRED_TYPE_LITERAL*/[/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/"hello", 3]);
+  new F2([]);
+  new F2([3]);
+  new F2([/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/"hello"]);
+  new F2([/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/"hello", 3]);
 
-  new F3(/*info:INFERRED_TYPE_LITERAL*/[]);
-  new F3(/*info:INFERRED_TYPE_LITERAL*/[/*info:INFERRED_TYPE_LITERAL*/[3]]);
-  new F3(/*info:INFERRED_TYPE_LITERAL*/[/*info:INFERRED_TYPE_LITERAL*/[/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/"hello"]]);
-  new F3(/*info:INFERRED_TYPE_LITERAL*/[/*info:INFERRED_TYPE_LITERAL*/[/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/"hello"],
-                   /*info:INFERRED_TYPE_LITERAL*/[3]]);
+  new F3([]);
+  new F3([[3]]);
+  new F3([[/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/"hello"]]);
+  new F3([[/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/"hello"],
+                   [3]]);
 
-  new F4(a: /*info:INFERRED_TYPE_LITERAL*/[]);
-  new F4(a: /*info:INFERRED_TYPE_LITERAL*/[/*info:INFERRED_TYPE_LITERAL*/[3]]);
-  new F4(a: /*info:INFERRED_TYPE_LITERAL*/[/*info:INFERRED_TYPE_LITERAL*/[/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/"hello"]]);
-  new F4(a: /*info:INFERRED_TYPE_LITERAL*/[/*info:INFERRED_TYPE_LITERAL*/[/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/"hello"],
-                      /*info:INFERRED_TYPE_LITERAL*/[3]]);
+  new F4(a: []);
+  new F4(a: [[3]]);
+  new F4(a: [[/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/"hello"]]);
+  new F4(a: [[/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/"hello"],
+                      [3]]);
 }
 ''');
   }
@@ -974,30 +972,30 @@
 void f3(Iterable<Iterable<int>> a) {}
 void f4({Iterable<Iterable<int>> a}) {}
 void main() {
-  f0(/*info:INFERRED_TYPE_LITERAL*/[]);
-  f0(/*info:INFERRED_TYPE_LITERAL*/[3]);
-  f0(/*info:INFERRED_TYPE_LITERAL*/[/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/"hello"]);
-  f0(/*info:INFERRED_TYPE_LITERAL*/[/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/"hello", 3]);
+  f0([]);
+  f0([3]);
+  f0([/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/"hello"]);
+  f0([/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/"hello", 3]);
 
-  f1(a: /*info:INFERRED_TYPE_LITERAL*/[]);
-  f1(a: /*info:INFERRED_TYPE_LITERAL*/[3]);
-  f1(a: /*info:INFERRED_TYPE_LITERAL*/[/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/"hello"]);
-  f1(a: /*info:INFERRED_TYPE_LITERAL*/[/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/"hello", 3]);
+  f1(a: []);
+  f1(a: [3]);
+  f1(a: [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/"hello"]);
+  f1(a: [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/"hello", 3]);
 
-  f2(/*info:INFERRED_TYPE_LITERAL*/[]);
-  f2(/*info:INFERRED_TYPE_LITERAL*/[3]);
-  f2(/*info:INFERRED_TYPE_LITERAL*/[/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/"hello"]);
-  f2(/*info:INFERRED_TYPE_LITERAL*/[/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/"hello", 3]);
+  f2([]);
+  f2([3]);
+  f2([/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/"hello"]);
+  f2([/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/"hello", 3]);
 
-  f3(/*info:INFERRED_TYPE_LITERAL*/[]);
-  f3(/*info:INFERRED_TYPE_LITERAL*/[/*info:INFERRED_TYPE_LITERAL*/[3]]);
-  f3(/*info:INFERRED_TYPE_LITERAL*/[/*info:INFERRED_TYPE_LITERAL*/[/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/"hello"]]);
-  f3(/*info:INFERRED_TYPE_LITERAL*/[/*info:INFERRED_TYPE_LITERAL*/[/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/"hello"], /*info:INFERRED_TYPE_LITERAL*/[3]]);
+  f3([]);
+  f3([[3]]);
+  f3([[/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/"hello"]]);
+  f3([[/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/"hello"], [3]]);
 
-  f4(a: /*info:INFERRED_TYPE_LITERAL*/[]);
-  f4(a: /*info:INFERRED_TYPE_LITERAL*/[/*info:INFERRED_TYPE_LITERAL*/[3]]);
-  f4(a: /*info:INFERRED_TYPE_LITERAL*/[/*info:INFERRED_TYPE_LITERAL*/[/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/"hello"]]);
-  f4(a: /*info:INFERRED_TYPE_LITERAL*/[/*info:INFERRED_TYPE_LITERAL*/[/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/"hello"], /*info:INFERRED_TYPE_LITERAL*/[3]]);
+  f4(a: []);
+  f4(a: [[3]]);
+  f4(a: [[/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/"hello"]]);
+  f4(a: [[/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/"hello"], [3]]);
 }
 ''');
   }
@@ -1008,32 +1006,32 @@
 
 void main () {
   {
-    Function2<int, String> l0 = /*info:INFERRED_TYPE_CLOSURE*/(int x) => null;
-    Function2<int, String> l1 = /*info:INFERRED_TYPE_CLOSURE*/(int x) => "hello";
-    Function2<int, String> l2 = /*info:INFERRED_TYPE_CLOSURE, error:INVALID_ASSIGNMENT*/(String x) => "hello";
-    Function2<int, String> l3 = /*info:INFERRED_TYPE_CLOSURE*/(int x) => /*error:RETURN_OF_INVALID_TYPE_FROM_CLOSURE*/3;
-    Function2<int, String> l4 = /*info:INFERRED_TYPE_CLOSURE*/(int x) {return /*error:RETURN_OF_INVALID_TYPE_FROM_CLOSURE*/3;};
+    Function2<int, String> l0 = (int x) => null;
+    Function2<int, String> l1 = (int x) => "hello";
+    Function2<int, String> l2 = /*error:INVALID_ASSIGNMENT*/(String x) => "hello";
+    Function2<int, String> l3 = (int x) => /*error:RETURN_OF_INVALID_TYPE_FROM_CLOSURE*/3;
+    Function2<int, String> l4 = (int x) {return /*error:RETURN_OF_INVALID_TYPE_FROM_CLOSURE*/3;};
   }
   {
-    Function2<int, String> l0 = /*info:INFERRED_TYPE_CLOSURE, info:INFERRED_TYPE_CLOSURE*/(x) => null;
-    Function2<int, String> l1 = /*info:INFERRED_TYPE_CLOSURE*/(x) => "hello";
-    Function2<int, String> l2 = /*info:INFERRED_TYPE_CLOSURE*/(x) => /*error:RETURN_OF_INVALID_TYPE_FROM_CLOSURE*/3;
-    Function2<int, String> l3 = /*info:INFERRED_TYPE_CLOSURE*/(x) {return /*error:RETURN_OF_INVALID_TYPE_FROM_CLOSURE*/3;};
-    Function2<int, String> l4 = /*info:INFERRED_TYPE_CLOSURE*/(x) {return /*error:RETURN_OF_INVALID_TYPE_FROM_CLOSURE*/x;};
+    Function2<int, String> l0 = (x) => null;
+    Function2<int, String> l1 = (x) => "hello";
+    Function2<int, String> l2 = (x) => /*error:RETURN_OF_INVALID_TYPE_FROM_CLOSURE*/3;
+    Function2<int, String> l3 = (x) {return /*error:RETURN_OF_INVALID_TYPE_FROM_CLOSURE*/3;};
+    Function2<int, String> l4 = (x) {return /*error:RETURN_OF_INVALID_TYPE_FROM_CLOSURE*/x;};
   }
   {
-    Function2<int, List<String>> l0 = /*info:INFERRED_TYPE_CLOSURE*/(int x) => null;
-    Function2<int, List<String>> l1 = /*info:INFERRED_TYPE_CLOSURE*/(int x) => /*info:INFERRED_TYPE_LITERAL*/["hello"];
-    Function2<int, List<String>> l2 = /*info:INFERRED_TYPE_CLOSURE, error:INVALID_ASSIGNMENT*/(String x) => /*info:INFERRED_TYPE_LITERAL*/["hello"];
-    Function2<int, List<String>> l3 = /*info:INFERRED_TYPE_CLOSURE*/(int x) => /*info:INFERRED_TYPE_LITERAL*/[/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/3];
-    Function2<int, List<String>> l4 = /*info:INFERRED_TYPE_CLOSURE*/(int x) {return /*info:INFERRED_TYPE_LITERAL*/[/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/3];};
+    Function2<int, List<String>> l0 = (int x) => null;
+    Function2<int, List<String>> l1 = (int x) => ["hello"];
+    Function2<int, List<String>> l2 = /*error:INVALID_ASSIGNMENT*/(String x) => ["hello"];
+    Function2<int, List<String>> l3 = (int x) => [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/3];
+    Function2<int, List<String>> l4 = (int x) {return [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/3];};
   }
   {
-    Function2<int, int> l0 = /*info:INFERRED_TYPE_CLOSURE*/(x) => x;
-    Function2<int, int> l1 = /*info:INFERRED_TYPE_CLOSURE*/(x) => x+1;
-    Function2<int, String> l2 = /*info:INFERRED_TYPE_CLOSURE*/(x) => /*error:RETURN_OF_INVALID_TYPE_FROM_CLOSURE*/x;
-    Function2<int, String> l3 = /*info:INFERRED_TYPE_CLOSURE*/(x) => /*info:DYNAMIC_INVOKE*/x./*error:UNDEFINED_METHOD*/substring(3);
-    Function2<String, String> l4 = /*info:INFERRED_TYPE_CLOSURE*/(x) => x.substring(3);
+    Function2<int, int> l0 = (x) => x;
+    Function2<int, int> l1 = (x) => x+1;
+    Function2<int, String> l2 = (x) => /*error:RETURN_OF_INVALID_TYPE_FROM_CLOSURE*/x;
+    Function2<int, String> l3 = (x) => /*info:DYNAMIC_INVOKE*/x./*error:UNDEFINED_METHOD*/substring(3);
+    Function2<String, String> l4 = (x) => x.substring(3);
   }
 }
 ''');
@@ -1045,12 +1043,12 @@
   {
     T f<T>(T x) => null;
     var v1 = f;
-    v1 = /*info:INFERRED_TYPE_CLOSURE, info:INFERRED_TYPE_CLOSURE*/<S>(x) => x;
+    v1 = <S>(x) => x;
   }
   {
     List<T> f<T>(T x) => null;
     var v2 = f;
-    v2 = /*info:INFERRED_TYPE_CLOSURE, info:INFERRED_TYPE_CLOSURE*/<S>(x) => /*info:INFERRED_TYPE_LITERAL*/[x];
+    v2 = <S>(x) => [x];
     Iterable<int> r = v2(42);
     Iterable<String> s = v2('hello');
     Iterable<List<int>> t = v2(<int>[]);
@@ -1070,8 +1068,8 @@
   F4({Iterable<Iterable<T>> a}) {}
 }
 void main() {
-  new F3(/*info:INFERRED_TYPE_LITERAL*/[]);
-  new F4(a: /*info:INFERRED_TYPE_LITERAL*/[]);
+  new F3([]);
+  new F4(a: []);
 }
 ''');
   }
@@ -1097,48 +1095,48 @@
   F5(Iterable<Iterable<Iterable<T>>> a) {}
 }
 void main() {
-  new F0<int>(/*info:INFERRED_TYPE_LITERAL*/[]);
-  new F0<int>(/*info:INFERRED_TYPE_LITERAL*/[3]);
-  new F0<int>(/*info:INFERRED_TYPE_LITERAL*/[/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/"hello"]);
-  new F0<int>(/*info:INFERRED_TYPE_LITERAL*/[/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/"hello",
+  new F0<int>([]);
+  new F0<int>([3]);
+  new F0<int>([/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/"hello"]);
+  new F0<int>([/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/"hello",
                                       3]);
 
-  new F1<int>(a: /*info:INFERRED_TYPE_LITERAL*/[]);
-  new F1<int>(a: /*info:INFERRED_TYPE_LITERAL*/[3]);
-  new F1<int>(a: /*info:INFERRED_TYPE_LITERAL*/[/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/"hello"]);
-  new F1<int>(a: /*info:INFERRED_TYPE_LITERAL*/[/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/"hello", 3]);
+  new F1<int>(a: []);
+  new F1<int>(a: [3]);
+  new F1<int>(a: [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/"hello"]);
+  new F1<int>(a: [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/"hello", 3]);
 
-  new F2<int>(/*info:INFERRED_TYPE_LITERAL*/[]);
-  new F2<int>(/*info:INFERRED_TYPE_LITERAL*/[3]);
-  new F2<int>(/*info:INFERRED_TYPE_LITERAL*/[/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/"hello"]);
-  new F2<int>(/*info:INFERRED_TYPE_LITERAL*/[/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/"hello", 3]);
+  new F2<int>([]);
+  new F2<int>([3]);
+  new F2<int>([/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/"hello"]);
+  new F2<int>([/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/"hello", 3]);
 
-  new F3<int>(/*info:INFERRED_TYPE_LITERAL*/[]);
-  new F3<int>(/*info:INFERRED_TYPE_LITERAL*/[/*info:INFERRED_TYPE_LITERAL*/[3]]);
-  new F3<int>(/*info:INFERRED_TYPE_LITERAL*/[/*info:INFERRED_TYPE_LITERAL*/[/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/"hello"]]);
-  new F3<int>(/*info:INFERRED_TYPE_LITERAL*/[/*info:INFERRED_TYPE_LITERAL*/[/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/"hello"],
-                   /*info:INFERRED_TYPE_LITERAL*/[3]]);
+  new F3<int>([]);
+  new F3<int>([[3]]);
+  new F3<int>([[/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/"hello"]]);
+  new F3<int>([[/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/"hello"],
+                   [3]]);
 
-  new F4<int>(a: /*info:INFERRED_TYPE_LITERAL*/[]);
-  new F4<int>(a: /*info:INFERRED_TYPE_LITERAL*/[/*info:INFERRED_TYPE_LITERAL*/[3]]);
-  new F4<int>(a: /*info:INFERRED_TYPE_LITERAL*/[/*info:INFERRED_TYPE_LITERAL*/[/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/"hello"]]);
-  new F4<int>(a: /*info:INFERRED_TYPE_LITERAL*/[/*info:INFERRED_TYPE_LITERAL*/[/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/"hello"],
-                      /*info:INFERRED_TYPE_LITERAL*/[3]]);
+  new F4<int>(a: []);
+  new F4<int>(a: [[3]]);
+  new F4<int>(a: [[/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/"hello"]]);
+  new F4<int>(a: [[/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/"hello"],
+                      [3]]);
 
-  new F3(/*info:INFERRED_TYPE_LITERAL*/[]);
-  var f31 = /*info:INFERRED_TYPE_ALLOCATION*/new F3(/*info:INFERRED_TYPE_LITERAL*/[/*info:INFERRED_TYPE_LITERAL*/[3]]);
-  var f32 = /*info:INFERRED_TYPE_ALLOCATION*/new F3(/*info:INFERRED_TYPE_LITERAL*/[/*info:INFERRED_TYPE_LITERAL*/["hello"]]);
-  var f33 = /*info:INFERRED_TYPE_ALLOCATION*/new F3(/*info:INFERRED_TYPE_LITERAL*/[/*info:INFERRED_TYPE_LITERAL*/["hello"],
-                                        /*info:INFERRED_TYPE_LITERAL*/[3]]);
+  new F3([]);
+  var f31 = new F3([[3]]);
+  var f32 = new F3([["hello"]]);
+  var f33 = new F3([["hello"],
+                                        [3]]);
 
-  new F4(a: /*info:INFERRED_TYPE_LITERAL*/[]);
-  /*info:INFERRED_TYPE_ALLOCATION*/new F4(a: /*info:INFERRED_TYPE_LITERAL*/[/*info:INFERRED_TYPE_LITERAL*/[3]]);
-  /*info:INFERRED_TYPE_ALLOCATION*/new F4(a: /*info:INFERRED_TYPE_LITERAL*/[/*info:INFERRED_TYPE_LITERAL*/["hello"]]);
-  /*info:INFERRED_TYPE_ALLOCATION*/new F4(a: /*info:INFERRED_TYPE_LITERAL*/[/*info:INFERRED_TYPE_LITERAL*/["hello"],
-                                           /*info:INFERRED_TYPE_LITERAL*/[3]]);
+  new F4(a: []);
+  new F4(a: [[3]]);
+  new F4(a: [["hello"]]);
+  new F4(a: [["hello"],
+                                           [3]]);
   
-  /*info:INFERRED_TYPE_ALLOCATION*/new F5(/*info:INFERRED_TYPE_LITERAL*/[/*info:INFERRED_TYPE_LITERAL*/[
-                                           /*info:INFERRED_TYPE_LITERAL*/[3]]]);
+  new F5([[
+                                           [3]]]);
 }
 ''');
   }
@@ -1149,42 +1147,42 @@
   {
     String f<S>(int x) => null;
     var v = f;
-    v = /*info:INFERRED_TYPE_CLOSURE*/<T>(int x) => null;
-    v = /*info:INFERRED_TYPE_CLOSURE*/<T>(int x) => "hello";
-    v = /*info:INFERRED_TYPE_CLOSURE, error:INVALID_ASSIGNMENT*/<T>(String x) => "hello";
-    v = /*info:INFERRED_TYPE_CLOSURE*/<T>(int x) => /*error:RETURN_OF_INVALID_TYPE_FROM_CLOSURE*/3;
-    v = /*info:INFERRED_TYPE_CLOSURE*/<T>(int x) {return /*error:RETURN_OF_INVALID_TYPE_FROM_CLOSURE*/3;};
+    v = <T>(int x) => null;
+    v = <T>(int x) => "hello";
+    v = /*error:INVALID_ASSIGNMENT*/<T>(String x) => "hello";
+    v = <T>(int x) => /*error:RETURN_OF_INVALID_TYPE_FROM_CLOSURE*/3;
+    v = <T>(int x) {return /*error:RETURN_OF_INVALID_TYPE_FROM_CLOSURE*/3;};
   }
   {
     String f<S>(int x) => null;
     var v = f;
-    v = /*info:INFERRED_TYPE_CLOSURE, info:INFERRED_TYPE_CLOSURE*/<T>(x) => null;
-    v = /*info:INFERRED_TYPE_CLOSURE, info:INFERRED_TYPE_CLOSURE*/<T>(x) => "hello";
-    v = /*info:INFERRED_TYPE_CLOSURE, info:INFERRED_TYPE_CLOSURE*/<T>(x) => /*error:RETURN_OF_INVALID_TYPE_FROM_CLOSURE*/3;
-    v = /*info:INFERRED_TYPE_CLOSURE, info:INFERRED_TYPE_CLOSURE*/<T>(x) {return /*error:RETURN_OF_INVALID_TYPE_FROM_CLOSURE*/3;};
-    v = /*info:INFERRED_TYPE_CLOSURE, info:INFERRED_TYPE_CLOSURE*/<T>(x) {return /*error:RETURN_OF_INVALID_TYPE_FROM_CLOSURE*/x;};
+    v = <T>(x) => null;
+    v = <T>(x) => "hello";
+    v = <T>(x) => /*error:RETURN_OF_INVALID_TYPE_FROM_CLOSURE*/3;
+    v = <T>(x) {return /*error:RETURN_OF_INVALID_TYPE_FROM_CLOSURE*/3;};
+    v = <T>(x) {return /*error:RETURN_OF_INVALID_TYPE_FROM_CLOSURE*/x;};
   }
   {
     List<String> f<S>(int x) => null;
     var v = f;
-    v = /*info:INFERRED_TYPE_CLOSURE*/<T>(int x) => null;
-    v = /*info:INFERRED_TYPE_CLOSURE*/<T>(int x) => /*info:INFERRED_TYPE_LITERAL*/["hello"];
-    v = /*info:INFERRED_TYPE_CLOSURE, error:INVALID_ASSIGNMENT*/<T>(String x) => /*info:INFERRED_TYPE_LITERAL*/["hello"];
-    v = /*info:INFERRED_TYPE_CLOSURE*/<T>(int x) => /*info:INFERRED_TYPE_LITERAL*/[/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/3];
-    v = /*info:INFERRED_TYPE_CLOSURE*/<T>(int x) {return /*info:INFERRED_TYPE_LITERAL*/[/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/3];};
+    v = <T>(int x) => null;
+    v = <T>(int x) => ["hello"];
+    v = /*error:INVALID_ASSIGNMENT*/<T>(String x) => ["hello"];
+    v = <T>(int x) => [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/3];
+    v = <T>(int x) {return [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/3];};
   }
   {
     int int2int<S>(int x) => null;
     String int2String<T>(int x) => null;
     String string2String<T>(String x) => null;
     var x = int2int;
-    x = /*info:INFERRED_TYPE_CLOSURE, info:INFERRED_TYPE_CLOSURE*/<T>(x) => x;
-    x = /*info:INFERRED_TYPE_CLOSURE, info:INFERRED_TYPE_CLOSURE*/<T>(x) => x+1;
+    x = <T>(x) => x;
+    x = <T>(x) => x+1;
     var y = int2String;
-    y = /*info:INFERRED_TYPE_CLOSURE, info:INFERRED_TYPE_CLOSURE*/<T>(x) => /*error:RETURN_OF_INVALID_TYPE_FROM_CLOSURE*/x;
-    y = /*info:INFERRED_TYPE_CLOSURE, info:INFERRED_TYPE_CLOSURE*/<T>(x) => /*info:DYNAMIC_INVOKE*/x./*error:UNDEFINED_METHOD*/substring(3);
+    y = <T>(x) => /*error:RETURN_OF_INVALID_TYPE_FROM_CLOSURE*/x;
+    y = <T>(x) => /*info:DYNAMIC_INVOKE*/x./*error:UNDEFINED_METHOD*/substring(3);
     var z = string2String;
-    z = /*info:INFERRED_TYPE_CLOSURE, info:INFERRED_TYPE_CLOSURE*/<T>(x) => x.substring(3);
+    z = <T>(x) => x.substring(3);
   }
 }
 ''');
@@ -1225,80 +1223,80 @@
 
 void main() {
   {
-    A<int, String> a0 = /*info:INFERRED_TYPE_ALLOCATION*/new A(3, "hello");
-    A<int, String> a1 = /*info:INFERRED_TYPE_ALLOCATION*/new A.named(3, "hello");
+    A<int, String> a0 = new A(3, "hello");
+    A<int, String> a1 = new A.named(3, "hello");
     A<int, String> a2 = new A<int, String>(3, "hello");
     A<int, String> a3 = new A<int, String>.named(3, "hello");
     A<int, String> a4 = /*error:INVALID_CAST_NEW_EXPR*/new A<int, dynamic>(3, "hello");
     A<int, String> a5 = /*error:INVALID_CAST_NEW_EXPR*/new A<dynamic, dynamic>.named(3, "hello");
   }
   {
-    A<int, String> a0 = /*info:INFERRED_TYPE_ALLOCATION*/new A(
+    A<int, String> a0 = new A(
         /*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/"hello",
         /*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/3);
-    A<int, String> a1 = /*info:INFERRED_TYPE_ALLOCATION*/new A.named(
+    A<int, String> a1 = new A.named(
         /*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/"hello",
         /*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/3);
   }
   {
-    A<int, String> a0 = /*info:INFERRED_TYPE_ALLOCATION*/new B("hello", 3);
-    A<int, String> a1 = /*info:INFERRED_TYPE_ALLOCATION*/new B.named("hello", 3);
+    A<int, String> a0 = new B("hello", 3);
+    A<int, String> a1 = new B.named("hello", 3);
     A<int, String> a2 = new B<String, int>("hello", 3);
     A<int, String> a3 = new B<String, int>.named("hello", 3);
     A<int, String> a4 = /*error:INVALID_ASSIGNMENT*/new B<String, dynamic>("hello", 3);
     A<int, String> a5 = /*error:INVALID_ASSIGNMENT*/new B<dynamic, dynamic>.named("hello", 3);
   }
   {
-    A<int, String> a0 = /*info:INFERRED_TYPE_ALLOCATION*/new B(
+    A<int, String> a0 = new B(
         /*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/3,
         /*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/"hello");
-    A<int, String> a1 = /*info:INFERRED_TYPE_ALLOCATION*/new B.named(
+    A<int, String> a1 = new B.named(
         /*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/3,
         /*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/"hello");
   }
   {
-    A<int, int> a0 = /*info:INFERRED_TYPE_ALLOCATION*/new C(3);
-    A<int, int> a1 = /*info:INFERRED_TYPE_ALLOCATION*/new C.named(3);
+    A<int, int> a0 = new C(3);
+    A<int, int> a1 = new C.named(3);
     A<int, int> a2 = new C<int>(3);
     A<int, int> a3 = new C<int>.named(3);
     A<int, int> a4 = /*error:INVALID_ASSIGNMENT*/new C<dynamic>(3);
     A<int, int> a5 = /*error:INVALID_ASSIGNMENT*/new C<dynamic>.named(3);
   }
   {
-    A<int, int> a0 = /*info:INFERRED_TYPE_ALLOCATION*/new C(
+    A<int, int> a0 = new C(
         /*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/"hello");
-    A<int, int> a1 = /*info:INFERRED_TYPE_ALLOCATION*/new C.named(
+    A<int, int> a1 = new C.named(
         /*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/"hello");
   }
   {
-    A<int, String> a0 = /*info:INFERRED_TYPE_ALLOCATION*/new D("hello");
-    A<int, String> a1 = /*info:INFERRED_TYPE_ALLOCATION*/new D.named("hello");
+    A<int, String> a0 = new D("hello");
+    A<int, String> a1 = new D.named("hello");
     A<int, String> a2 = new D<int, String>("hello");
     A<int, String> a3 = new D<String, String>.named("hello");
     A<int, String> a4 = /*error:INVALID_ASSIGNMENT*/new D<num, dynamic>("hello");
     A<int, String> a5 = /*error:INVALID_ASSIGNMENT*/new D<dynamic, dynamic>.named("hello");
   }
   {
-    A<int, String> a0 = /*info:INFERRED_TYPE_ALLOCATION*/new D(
+    A<int, String> a0 = new D(
         /*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/3);
-    A<int, String> a1 = /*info:INFERRED_TYPE_ALLOCATION*/new D.named(
+    A<int, String> a1 = new D.named(
         /*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/3);
   }
   {
-    A<C<int>, String> a0 = /*info:INFERRED_TYPE_ALLOCATION*/new E("hello");
+    A<C<int>, String> a0 = new E("hello");
   }
   { // Check named and optional arguments
-    A<int, String> a0 = /*info:INFERRED_TYPE_ALLOCATION*/new F(3, "hello",
-        a: /*info:INFERRED_TYPE_LITERAL*/[3],
-        b: /*info:INFERRED_TYPE_LITERAL*/["hello"]);
-    A<int, String> a1 = /*info:INFERRED_TYPE_ALLOCATION*/new F(3, "hello",
-        a: /*info:INFERRED_TYPE_LITERAL*/[/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/"hello"],
-        b: /*info:INFERRED_TYPE_LITERAL*/[/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/3]);
-    A<int, String> a2 = /*info:INFERRED_TYPE_ALLOCATION*/new F.named(3, "hello", 3, "hello");
-    A<int, String> a3 = /*info:INFERRED_TYPE_ALLOCATION*/new F.named(3, "hello");
-    A<int, String> a4 = /*info:INFERRED_TYPE_ALLOCATION*/new F.named(3, "hello",
+    A<int, String> a0 = new F(3, "hello",
+        a: [3],
+        b: ["hello"]);
+    A<int, String> a1 = new F(3, "hello",
+        a: [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/"hello"],
+        b: [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/3]);
+    A<int, String> a2 = new F.named(3, "hello", 3, "hello");
+    A<int, String> a3 = new F.named(3, "hello");
+    A<int, String> a4 = new F.named(3, "hello",
         /*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/"hello", /*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/3);
-    A<int, String> a5 = /*info:INFERRED_TYPE_ALLOCATION*/new F.named(3, "hello",
+    A<int, String> a5 = new F.named(3, "hello",
         /*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/"hello");
   }
 }
@@ -1307,16 +1305,16 @@
 
   test_downwardsInferenceOnListLiterals_inferDownwards() async {
     await checkFileElement('''
-void foo([List<String> list1 = /*info:INFERRED_TYPE_LITERAL*/const [],
-          List<String> list2 = /*info:INFERRED_TYPE_LITERAL*/const [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/42]]) {
+void foo([List<String> list1 = const [],
+          List<String> list2 = const [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/42]]) {
 }
 
 void main() {
   {
-    List<int> l0 = /*info:INFERRED_TYPE_LITERAL*/[];
-    List<int> l1 = /*info:INFERRED_TYPE_LITERAL*/[3];
-    List<int> l2 = /*info:INFERRED_TYPE_LITERAL*/[/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/"hello"];
-    List<int> l3 = /*info:INFERRED_TYPE_LITERAL*/[/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/"hello", 3];
+    List<int> l0 = [];
+    List<int> l1 = [3];
+    List<int> l2 = [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/"hello"];
+    List<int> l3 = [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/"hello", 3];
   }
   {
     List<dynamic> l0 = [];
@@ -1331,16 +1329,16 @@
     List<int> l3 = /*error:INVALID_CAST_LITERAL_LIST*/<num>[/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/"hello", 3];
   }
   {
-    Iterable<int> i0 = /*info:INFERRED_TYPE_LITERAL*/[];
-    Iterable<int> i1 = /*info:INFERRED_TYPE_LITERAL*/[3];
-    Iterable<int> i2 = /*info:INFERRED_TYPE_LITERAL*/[/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/"hello"];
-    Iterable<int> i3 = /*info:INFERRED_TYPE_LITERAL*/[/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/"hello", 3];
+    Iterable<int> i0 = [];
+    Iterable<int> i1 = [3];
+    Iterable<int> i2 = [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/"hello"];
+    Iterable<int> i3 = [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/"hello", 3];
   }
   {
-    const List<int> c0 = /*info:INFERRED_TYPE_LITERAL*/const [];
-    const List<int> c1 = /*info:INFERRED_TYPE_LITERAL*/const [3];
-    const List<int> c2 = /*info:INFERRED_TYPE_LITERAL*/const [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/"hello"];
-    const List<int> c3 = /*info:INFERRED_TYPE_LITERAL*/const [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/"hello", 3];
+    const List<int> c0 = const [];
+    const List<int> c1 = const [3];
+    const List<int> c2 = const [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/"hello"];
+    const List<int> c3 = const [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/"hello", 3];
   }
 }
 ''');
@@ -1363,11 +1361,11 @@
   AsserterBuilder<List<Asserter<DartType>>, DartType> get assertDOf;
 
   method(AsserterBuilder<List<Asserter<DartType>>, DartType> assertEOf) {
-    assertAOf(/*info:INFERRED_TYPE_LITERAL*/[_isInt, _isString]);
-    assertBOf(/*info:INFERRED_TYPE_LITERAL*/[_isInt, _isString]);
-    assertCOf(/*info:INFERRED_TYPE_LITERAL*/[_isInt, _isString]);
-    assertDOf(/*info:INFERRED_TYPE_LITERAL*/[_isInt, _isString]);
-    assertEOf(/*info:INFERRED_TYPE_LITERAL*/[_isInt, _isString]);
+    assertAOf([_isInt, _isString]);
+    assertBOf([_isInt, _isString]);
+    assertCOf([_isInt, _isString]);
+    assertDOf([_isInt, _isString]);
+    assertEOf([_isInt, _isString]);
   }
   }
 
@@ -1376,10 +1374,10 @@
   AsserterBuilder<List<Asserter<DartType>>, DartType> get assertDOf;
 
   method(AsserterBuilder<List<Asserter<DartType>>, DartType> assertEOf) {
-    assertAOf(/*info:INFERRED_TYPE_LITERAL*/[_isInt, _isString]);
-    this.assertAOf(/*info:INFERRED_TYPE_LITERAL*/[_isInt, _isString]);
-    this.assertDOf(/*info:INFERRED_TYPE_LITERAL*/[_isInt, _isString]);
-    assertEOf(/*info:INFERRED_TYPE_LITERAL*/[_isInt, _isString]);
+    assertAOf([_isInt, _isString]);
+    this.assertAOf([_isInt, _isString]);
+    this.assertDOf([_isInt, _isString]);
+    assertEOf([_isInt, _isString]);
   }
 }
 
@@ -1388,27 +1386,27 @@
 
 main() {
   AsserterBuilder<List<Asserter<DartType>>, DartType> assertAOf;
-  assertAOf(/*info:INFERRED_TYPE_LITERAL*/[_isInt, _isString]);
-  assertBOf(/*info:INFERRED_TYPE_LITERAL*/[_isInt, _isString]);
-  assertCOf(/*info:INFERRED_TYPE_LITERAL*/[_isInt, _isString]);
-  C.assertBOf(/*info:INFERRED_TYPE_LITERAL*/[_isInt, _isString]);
-  C.assertCOf(/*info:INFERRED_TYPE_LITERAL*/[_isInt, _isString]);
+  assertAOf([_isInt, _isString]);
+  assertBOf([_isInt, _isString]);
+  assertCOf([_isInt, _isString]);
+  C.assertBOf([_isInt, _isString]);
+  C.assertCOf([_isInt, _isString]);
 
   C c;
-  c.assertAOf(/*info:INFERRED_TYPE_LITERAL*/[_isInt, _isString]);
-  c.assertDOf(/*info:INFERRED_TYPE_LITERAL*/[_isInt, _isString]);
+  c.assertAOf([_isInt, _isString]);
+  c.assertDOf([_isInt, _isString]);
 
   G<int> g;
-  g.assertAOf(/*info:INFERRED_TYPE_LITERAL*/[_isInt, _isString]);
-  g.assertDOf(/*info:INFERRED_TYPE_LITERAL*/[_isInt, _isString]);
+  g.assertAOf([_isInt, _isString]);
+  g.assertDOf([_isInt, _isString]);
 }
 ''');
   }
 
   test_downwardsInferenceOnMapLiterals() async {
     await checkFileElement('''
-void foo([Map<int, String> m1 = /*info:INFERRED_TYPE_LITERAL*/const {1: "hello"},
-    Map<int, String> m2 = /*info:INFERRED_TYPE_LITERAL*/const {
+void foo([Map<int, String> m1 = const {1: "hello"},
+    Map<int, String> m2 = const {
       // One error is from type checking and the other is from const evaluation.
       /*error:MAP_KEY_TYPE_NOT_ASSIGNABLE*/"hello":
           "world"
@@ -1416,47 +1414,47 @@
 }
 void main() {
   {
-    Map<int, String> l0 = /*info:INFERRED_TYPE_LITERAL*/{};
-    Map<int, String> l1 = /*info:INFERRED_TYPE_LITERAL*/{3: "hello"};
-    Map<int, String> l2 = /*info:INFERRED_TYPE_LITERAL*/{
+    Map<int, String> l0 = {};
+    Map<int, String> l1 = {3: "hello"};
+    Map<int, String> l2 = {
       /*error:MAP_KEY_TYPE_NOT_ASSIGNABLE*/"hello": "hello"
     };
-    Map<int, String> l3 = /*info:INFERRED_TYPE_LITERAL*/{
+    Map<int, String> l3 = {
       3: /*error:MAP_VALUE_TYPE_NOT_ASSIGNABLE*/3
     };
-    Map<int, String> l4 = /*info:INFERRED_TYPE_LITERAL*/{
+    Map<int, String> l4 = {
       3: "hello",
       /*error:MAP_KEY_TYPE_NOT_ASSIGNABLE*/"hello":
           /*error:MAP_VALUE_TYPE_NOT_ASSIGNABLE*/3
     };
   }
   {
-    Map<dynamic, dynamic> l0 = /*info:INFERRED_TYPE_LITERAL*/{};
-    Map<dynamic, dynamic> l1 = /*info:INFERRED_TYPE_LITERAL*/{3: "hello"};
-    Map<dynamic, dynamic> l2 = /*info:INFERRED_TYPE_LITERAL*/{"hello": "hello"};
-    Map<dynamic, dynamic> l3 = /*info:INFERRED_TYPE_LITERAL*/{3: 3};
-    Map<dynamic, dynamic> l4 = /*info:INFERRED_TYPE_LITERAL*/{3:"hello", "hello": 3};
+    Map<dynamic, dynamic> l0 = {};
+    Map<dynamic, dynamic> l1 = {3: "hello"};
+    Map<dynamic, dynamic> l2 = {"hello": "hello"};
+    Map<dynamic, dynamic> l3 = {3: 3};
+    Map<dynamic, dynamic> l4 = {3:"hello", "hello": 3};
   }
   {
-    Map<dynamic, String> l0 = /*info:INFERRED_TYPE_LITERAL*/{};
-    Map<dynamic, String> l1 = /*info:INFERRED_TYPE_LITERAL*/{3: "hello"};
-    Map<dynamic, String> l2 = /*info:INFERRED_TYPE_LITERAL*/{"hello": "hello"};
-    Map<dynamic, String> l3 = /*info:INFERRED_TYPE_LITERAL*/{
+    Map<dynamic, String> l0 = {};
+    Map<dynamic, String> l1 = {3: "hello"};
+    Map<dynamic, String> l2 = {"hello": "hello"};
+    Map<dynamic, String> l3 = {
       3: /*error:MAP_VALUE_TYPE_NOT_ASSIGNABLE*/3
     };
-    Map<dynamic, String> l4 = /*info:INFERRED_TYPE_LITERAL*/{
+    Map<dynamic, String> l4 = {
       3: "hello",
       "hello": /*error:MAP_VALUE_TYPE_NOT_ASSIGNABLE*/3
     };
   }
   {
-    Map<int, dynamic> l0 = /*info:INFERRED_TYPE_LITERAL*/{};
-    Map<int, dynamic> l1 = /*info:INFERRED_TYPE_LITERAL*/{3: "hello"};
-    Map<int, dynamic> l2 = /*info:INFERRED_TYPE_LITERAL*/{
+    Map<int, dynamic> l0 = {};
+    Map<int, dynamic> l1 = {3: "hello"};
+    Map<int, dynamic> l2 = {
       /*error:MAP_KEY_TYPE_NOT_ASSIGNABLE*/"hello": "hello"
     };
-    Map<int, dynamic> l3 = /*info:INFERRED_TYPE_LITERAL*/{3: 3};
-    Map<int, dynamic> l4 = /*info:INFERRED_TYPE_LITERAL*/{
+    Map<int, dynamic> l3 = {3: 3};
+    Map<int, dynamic> l4 = {
       3:"hello",
       /*error:MAP_KEY_TYPE_NOT_ASSIGNABLE*/"hello": 3
     };
@@ -1467,16 +1465,16 @@
     Map<int, String> l3 = /*error:INVALID_CAST_LITERAL_MAP*/<num, dynamic>{3: 3};
   }
   {
-    const Map<int, String> l0 = /*info:INFERRED_TYPE_LITERAL*/const {};
-    const Map<int, String> l1 = /*info:INFERRED_TYPE_LITERAL*/const {3: "hello"};
-    const Map<int, String> l2 = /*info:INFERRED_TYPE_LITERAL*/const {
+    const Map<int, String> l0 = const {};
+    const Map<int, String> l1 = const {3: "hello"};
+    const Map<int, String> l2 = const {
       /*error:MAP_KEY_TYPE_NOT_ASSIGNABLE*/"hello":
           "hello"
     };
-    const Map<int, String> l3 = /*info:INFERRED_TYPE_LITERAL*/const {
+    const Map<int, String> l3 = const {
       3: /*error:MAP_VALUE_TYPE_NOT_ASSIGNABLE*/3
     };
-    const Map<int, String> l4 = /*info:INFERRED_TYPE_LITERAL*/const {
+    const Map<int, String> l4 = const {
       3:"hello",
       /*error:MAP_KEY_TYPE_NOT_ASSIGNABLE*/"hello":
           /*error:MAP_VALUE_TYPE_NOT_ASSIGNABLE*/3
@@ -1495,17 +1493,17 @@
 }
 
 Stream<List<int>> foo() async* {
-  yield /*info:INFERRED_TYPE_LITERAL*/[];
+  yield [];
   yield /*error:YIELD_OF_INVALID_TYPE*/new MyStream();
   yield* /*error:YIELD_OF_INVALID_TYPE*/[];
-  yield* /*info:INFERRED_TYPE_ALLOCATION*/new MyStream();
+  yield* new MyStream();
 }
 
 Iterable<Map<int, int>> bar() sync* {
-  yield /*info:INFERRED_TYPE_LITERAL*/{};
+  yield {};
   yield /*error:YIELD_OF_INVALID_TYPE*/new List();
-  yield* /*info:INFERRED_TYPE_LITERAL*/{};
-  yield* /*info:INFERRED_TYPE_ALLOCATION*/new List();
+  yield* {};
+  yield* new List();
 }
 ''');
   }
@@ -1557,16 +1555,16 @@
 
 void main() {
   $declared f;
-  $downwards<int> t1 = f.then(/*info:INFERRED_TYPE_CLOSURE*/(_) async => await new $upwards<int>.value(1));
-  $downwards<int> t2 = f.then(/*info:INFERRED_TYPE_CLOSURE*/(_) async {
+  $downwards<int> t1 = f.then((_) async => await new $upwards<int>.value(1));
+  $downwards<int> t2 = f.then((_) async {
      return await new $upwards<int>.value(2);});
-  $downwards<int> t3 = f.then(/*info:INFERRED_TYPE_CLOSURE*/(_) async => 3);
-  $downwards<int> t4 = f.then(/*info:INFERRED_TYPE_CLOSURE*/(_) async {
+  $downwards<int> t3 = f.then((_) async => 3);
+  $downwards<int> t4 = f.then((_) async {
     return 4;});
-  $downwards<int> t5 = f.then(/*info:INFERRED_TYPE_CLOSURE*/(_) => new $upwards<int>.value(5));
-  $downwards<int> t6 = f.then(/*info:INFERRED_TYPE_CLOSURE*/(_) {return new $upwards<int>.value(6);});
-  $downwards<int> t7 = f.then(/*info:INFERRED_TYPE_CLOSURE*/(_) async => new $upwards<int>.value(7));
-  $downwards<int> t8 = f.then(/*info:INFERRED_TYPE_CLOSURE*/(_) async {
+  $downwards<int> t5 = f.then((_) => new $upwards<int>.value(5));
+  $downwards<int> t6 = f.then((_) {return new $upwards<int>.value(6);});
+  $downwards<int> t7 = f.then((_) async => new $upwards<int>.value(7));
+  $downwards<int> t8 = f.then((_) async {
     return new $upwards<int>.value(8);});
 }
 ''';
@@ -1597,13 +1595,13 @@
 
 void main() {
   $declared<bool> f;
-  $downwards<int> t1 = f.then(/*info:INFERRED_TYPE_CLOSURE, info:INFERRED_TYPE_CLOSURE*/
+  $downwards<int> t1 = f.then(
       (x) async => x ? 2 : await new $upwards<int>.value(3));
-  $downwards<int> t2 = f.then(/*info:INFERRED_TYPE_CLOSURE,info:INFERRED_TYPE_CLOSURE*/(x) async { // TODO(leafp): Why the duplicate here?
+  $downwards<int> t2 = f.then((x) async { // TODO(leafp): Why the duplicate here?
     return await x ? 2 : new $upwards<int>.value(3);});
-  $downwards<int> t5 = f.then(/*info:INFERRED_TYPE_CLOSURE*/
+  $downwards<int> t5 = f.then(
       (x) => x ? 2 : new $upwards<int>.value(3));
-  $downwards<int> t6 = f.then(/*info:INFERRED_TYPE_CLOSURE*/
+  $downwards<int> t6 = f.then(
       (x) {return x ? 2 : new $upwards<int>.value(3);});
 }
 ''';
@@ -1628,9 +1626,9 @@
 main() {
   Future<int> f;
   Future<List<int>> b = f
-      .then(/*info:INFERRED_TYPE_CLOSURE, info:INFERRED_TYPE_CLOSURE*/(x) => [])
-      .whenComplete(/*info:INFERRED_TYPE_CLOSURE*/() {});
-  b = f.then(/*info:INFERRED_TYPE_CLOSURE, info:INFERRED_TYPE_CLOSURE*/(x) => /*info:INFERRED_TYPE_LITERAL*/[]);
+      .then((x) => [])
+      .whenComplete(() {});
+  b = f.then((x) => []);
 }
   ''');
   }
@@ -1640,13 +1638,13 @@
 import "dart:async";
 m1() {
   Future<int> f;
-  var x = f.then<Future<List<int>>>(/*info:INFERRED_TYPE_CLOSURE*/
+  var x = f.then<Future<List<int>>>(
                                     (x) => /*error:RETURN_OF_INVALID_TYPE_FROM_CLOSURE*/[]);
   Future<List<int>> y = /*error:INVALID_ASSIGNMENT*/x;
 }
 m2() {
   Future<int> f;
-  var x = f.then<List<int>>(/*info:INFERRED_TYPE_CLOSURE, info:INFERRED_TYPE_CLOSURE*/(x) => /*info:INFERRED_TYPE_LITERAL*/[]);
+  var x = f.then<List<int>>((x) => []);
   Future<List<int>> y = x;
 }
   ''');
@@ -1664,13 +1662,13 @@
 }
 
 void main() {
-  var f = foo().then(/*info:INFERRED_TYPE_CLOSURE*/(_) => 2.3);
+  var f = foo().then((_) => 2.3);
   $downwards<int> f2 = /*error:INVALID_ASSIGNMENT*/f;
 
   // The unnecessary cast is to illustrate that we inferred <double> for
   // the generic type args, even though we had a return type context.
   $downwards<num> f3 = /*info:UNNECESSARY_CAST*/foo().then(
-      /*info:INFERRED_TYPE_CLOSURE*/(_) => 2.3) as $upwards<double>;
+      (_) => 2.3) as $upwards<double>;
 }
 $declared foo() => new $declared<int>.value(1);
     ''';
@@ -1688,8 +1686,8 @@
 import 'dart:async';
 main() {
   Future<int> base;
-  var f = base.then(/*info:INFERRED_TYPE_CLOSURE,info:INFERRED_TYPE_CLOSURE*/(x) { return x == 0; });
-  var g = base.then(/*info:INFERRED_TYPE_CLOSURE,info:INFERRED_TYPE_CLOSURE*/(x) => x == 0);
+  var f = base.then((x) { return x == 0; });
+  var g = base.then((x) => x == 0);
   Future<bool> b = f;
   b = g;
 }
@@ -1712,18 +1710,16 @@
 }
 
 $downwards<int> g1(bool x) async {
-  return x ? 42 : /*info:INFERRED_TYPE_ALLOCATION*/new $upwards.value(42); }
+  return x ? 42 : new $upwards.value(42); }
 $downwards<int> g2(bool x) async =>
-  x ? 42 : /*info:INFERRED_TYPE_ALLOCATION*/new $upwards.value(42);
+  x ? 42 : new $upwards.value(42);
 $downwards<int> g3(bool x) async {
   var y = x ? 42 : ${expectedInfo}new $upwards.value(42);
   return y;
 }
     ''';
-    await checkFileElement(build(
-        downwards: "Future",
-        upwards: "Future",
-        expectedInfo: '/*info:INFERRED_TYPE_ALLOCATION*/'));
+    await checkFileElement(
+        build(downwards: "Future", upwards: "Future", expectedInfo: ''));
     await checkFileElement(build(downwards: "Future", upwards: "MyFuture"));
   }
 
@@ -1744,15 +1740,15 @@
 
 $declared f;
 // Instantiates Future<int>
-$downwards<int> t1 = f.then(/*info:INFERRED_TYPE_CLOSURE*/(_) =>
-   /*info:INFERRED_TYPE_ALLOCATION*/new $upwards.value($expectedError'hi'));
+$downwards<int> t1 = f.then((_) =>
+   new $upwards.value($expectedError'hi'));
 
 // Instantiates List<int>
-$downwards<List<int>> t2 = f.then(/*info:INFERRED_TYPE_CLOSURE*/(_) => /*info:INFERRED_TYPE_LITERAL*/[3]);
-$downwards<List<int>> g2() async { return /*info:INFERRED_TYPE_LITERAL*/[3]; }
+$downwards<List<int>> t2 = f.then((_) => [3]);
+$downwards<List<int>> g2() async { return [3]; }
 $downwards<List<int>> g3() async {
-  return /*info:INFERRED_TYPE_ALLOCATION*/new $upwards.value(
-      /*info:INFERRED_TYPE_LITERAL*/[3]); }
+  return new $upwards.value(
+      [3]); }
 ''';
     }
 
@@ -1783,7 +1779,7 @@
 foo() async {
   Future<List<A>> f1 = null;
   Future<List<A>> f2 = null;
-  List<List<A>> merged = await Future.wait(/*info:INFERRED_TYPE_LITERAL*/[f1, f2]);
+  List<List<A>> merged = await Future.wait([f1, f2]);
 }
 
 class A {}
@@ -1812,9 +1808,9 @@
 main() async {
   var b = new Future<B>.value(new B());
   var c = new Future<C>.value(new C());
-  var lll = /*info:INFERRED_TYPE_LITERAL*/[b, c];
+  var lll = [b, c];
   var result = await Future.wait(lll);
-  var result2 = await Future.wait(/*info:INFERRED_TYPE_LITERAL*/[b, c]);
+  var result2 = await Future.wait([b, c]);
   List<A> list = result;
   list = result2;
 }
@@ -1916,8 +1912,8 @@
     await checkFileElement(r'''
 T f<T>(List<T> s) => null;
 main() {
-  String x = f(/*info:INFERRED_TYPE_LITERAL*/['hi']);
-  String y = f(/*info:INFERRED_TYPE_LITERAL*/[/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/42]);
+  String x = f(['hi']);
+  String y = f([/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/42]);
 }
 ''');
   }
@@ -1929,14 +1925,14 @@
     await checkFileElement(r'''
 void main() {
   List<int> o;
-  int y = o.fold(0, /*info:INFERRED_TYPE_CLOSURE*/(x, y) => x + y);
-  var z = o.fold(0, /*info:INFERRED_TYPE_CLOSURE, info:INFERRED_TYPE_CLOSURE*/(x, y) => /*info:DYNAMIC_INVOKE*/x + y);
+  int y = o.fold(0, (x, y) => x + y);
+  var z = o.fold(0, (x, y) => /*info:DYNAMIC_INVOKE*/x + y);
   y = z;
 }
 void functionExpressionInvocation() {
   List<int> o;
-  int y = (o.fold)(0, /*info:INFERRED_TYPE_CLOSURE*/(x, y) => x + y);
-  var z = (o.fold)(0, /*info:INFERRED_TYPE_CLOSURE, info:INFERRED_TYPE_CLOSURE*/(x, y) => /*info:DYNAMIC_INVOKE*/x + y);
+  int y = (o.fold)(0, (x, y) => x + y);
+  var z = (o.fold)(0, (x, y) => /*info:DYNAMIC_INVOKE*/x + y);
   y = z;
 }
 ''');
@@ -1964,7 +1960,7 @@
     await checkFileElement(r'''
 main() {
   List<String> y;
-  Iterable<String> x = y.map(/*info:INFERRED_TYPE_CLOSURE*/(String z) => /*error:RETURN_OF_INVALID_TYPE_FROM_CLOSURE*/1.0);
+  Iterable<String> x = y.map((String z) => /*error:RETURN_OF_INVALID_TYPE_FROM_CLOSURE*/1.0);
 }
   ''');
   }
@@ -2139,19 +2135,19 @@
     await checkFileElement('''
 import 'dart:async';
 
-Future<int> make(int x) => (/*info:INFERRED_TYPE_ALLOCATION*/new Future(/*info:INFERRED_TYPE_CLOSURE*/() => x));
+Future<int> make(int x) => (new Future(() => x));
 
 main() {
   Iterable<Future<int>> list = <int>[1, 2, 3].map(make);
   Future<List<int>> results = Future.wait(list);
-  Future<String> results2 = results.then(/*info:INFERRED_TYPE_CLOSURE*/(List<int> list)
-    => list.fold('', /*info:INFERRED_TYPE_CLOSURE*/(x, y) => /*info:DYNAMIC_INVOKE*/x /*error:UNDEFINED_OPERATOR*/+ y.toString()));
+  Future<String> results2 = results.then((List<int> list)
+    => list.fold('', (x, y) => /*info:DYNAMIC_INVOKE*/x /*error:UNDEFINED_OPERATOR*/+ y.toString()));
 
-  Future<String> results3 = results.then(/*info:INFERRED_TYPE_CLOSURE*/(List<int> list)
-    => list.fold('', /*info:INFERRED_TYPE_CLOSURE, info:INFERRED_TYPE_CLOSURE, error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/(String x, y) => x + y.toString()));
+  Future<String> results3 = results.then((List<int> list)
+    => list.fold('', /*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/(String x, y) => x + y.toString()));
 
-  Future<String> results4 = results.then(/*info:INFERRED_TYPE_CLOSURE*/(List<int> list)
-    => list.fold<String>('', /*info:INFERRED_TYPE_CLOSURE*/(x, y) => x + y.toString()));
+  Future<String> results4 = results.then((List<int> list)
+    => list.fold<String>('', (x, y) => x + y.toString()));
 }
 ''');
   }
@@ -2160,15 +2156,15 @@
     await checkFileElement(r'''
 import 'dart:math' as math;
 class Trace {
-  List<Frame> frames = /*info:INFERRED_TYPE_LITERAL*/[];
+  List<Frame> frames = [];
 }
 class Frame {
   String location = '';
 }
 main() {
-  List<Trace> traces = /*info:INFERRED_TYPE_LITERAL*/[];
-  var longest = traces.map(/*info:INFERRED_TYPE_CLOSURE,info:INFERRED_TYPE_CLOSURE*/(trace) {
-    return trace.frames.map(/*info:INFERRED_TYPE_CLOSURE, info:INFERRED_TYPE_CLOSURE*/(frame) => frame.location.length)
+  List<Trace> traces = [];
+  var longest = traces.map((trace) {
+    return trace.frames.map((frame) => frame.location.length)
         .fold(0, math.max);
   }).fold(0, math.max);
 }
@@ -2183,7 +2179,7 @@
 T generic<T>(a(T _), b(T _)) => null;
 
 main() {
-  var v = generic(/*info:INFERRED_TYPE_CLOSURE*/(F f) => null, /*info:INFERRED_TYPE_CLOSURE*/(G g) => null);
+  var v = generic((F f) => null, (G g) => null);
 }
 ''');
     var v = findLocalVariable(unit, 'v');
@@ -2197,7 +2193,7 @@
 
 T generic<T>(a(T _), b(T _)) => null;
 
-var v = generic(/*info:INFERRED_TYPE_CLOSURE*/(F f) => null, /*info:INFERRED_TYPE_CLOSURE*/(G g) => null);
+var v = generic((F f) => null, (G g) => null);
 ''');
     var v = mainUnit.topLevelVariables[0];
     expect(v.type.toString(), 'List<int> Function(num)');
@@ -2496,13 +2492,13 @@
   b = /*error:INVALID_ASSIGNMENT*/"hi";
   b = new B(3);
   c1 = [];
-  c1 = /*error:INVALID_ASSIGNMENT,info:INFERRED_TYPE_LITERAL*/{};
+  c1 = /*error:INVALID_ASSIGNMENT*/{};
   c2 = [];
-  c2 = /*error:INVALID_ASSIGNMENT,info:INFERRED_TYPE_LITERAL*/{};
-  d = /*info:INFERRED_TYPE_LITERAL*/{};
+  c2 = /*error:INVALID_ASSIGNMENT*/{};
+  d = {};
   d = /*error:INVALID_ASSIGNMENT*/3;
   e = new A();
-  e = /*error:INVALID_ASSIGNMENT,info:INFERRED_TYPE_LITERAL*/{};
+  e = /*error:INVALID_ASSIGNMENT*/{};
   f = 3;
   f = /*error:INVALID_ASSIGNMENT*/false;
   g = 1;
@@ -2681,17 +2677,17 @@
 main() {
   // List inside map
   var map = <String, List<Folder>>{
-    'pkgA': /*info:INFERRED_TYPE_LITERAL*/[getResource('/pkgA/lib/')],
-    'pkgB': /*info:INFERRED_TYPE_LITERAL*/[getResource('/pkgB/lib/')]
+    'pkgA': [getResource('/pkgA/lib/')],
+    'pkgB': [getResource('/pkgB/lib/')]
   };
   // Also try map inside list
   var list = <Map<String, Folder>>[
-    /*info:INFERRED_TYPE_LITERAL*/{ 'pkgA': getResource('/pkgA/lib/') },
-    /*info:INFERRED_TYPE_LITERAL*/{ 'pkgB': getResource('/pkgB/lib/') },
+    { 'pkgA': getResource('/pkgA/lib/') },
+    { 'pkgB': getResource('/pkgB/lib/') },
   ];
   // Instance creation too
   var foo = new Foo<List<Folder>>(
-    /*info:INFERRED_TYPE_LITERAL*/[getResource('/pkgA/lib/')]
+    [getResource('/pkgA/lib/')]
   );
 }
 ''');
@@ -2701,19 +2697,19 @@
     // Regression test for https://github.com/dart-lang/sdk/issues/26414
     var unit = await checkFile(r'''
 main() {
-  f0 /*info:INFERRED_TYPE_CLOSURE*/() => 42;
-  f1 /*info:INFERRED_TYPE_CLOSURE*/() async => 42;
+  f0 () => 42;
+  f1 () async => 42;
 
-  f2 /*info:INFERRED_TYPE_CLOSURE*/() { return 42; }
-  f3 /*info:INFERRED_TYPE_CLOSURE*/() async { return 42; }
-  f4 /*info:INFERRED_TYPE_CLOSURE*/() sync* { yield 42; }
-  f5 /*info:INFERRED_TYPE_CLOSURE*/() async* { yield 42; }
+  f2 () { return 42; }
+  f3 () async { return 42; }
+  f4 () sync* { yield 42; }
+  f5 () async* { yield 42; }
 
   num f6() => 42;
 
-  f7 /*info:INFERRED_TYPE_CLOSURE*/() => f7();
-  f8 /*info:INFERRED_TYPE_CLOSURE*/() => /*error:REFERENCED_BEFORE_DECLARATION*/f9();
-  f9 /*info:INFERRED_TYPE_CLOSURE*/() => f5();
+  f7 () => f7();
+  f8 () => /*error:REFERENCED_BEFORE_DECLARATION*/f9();
+  f9 () => f5();
 }
 ''');
     expect(findLocalFunction(unit, 'f0').type.toString(), 'int Function()');
@@ -2767,9 +2763,9 @@
     var mainUnit = await checkFileElement('''
 class C {
   static var x = 'x';
-  var y = /*info:INFERRED_TYPE_LITERAL*/{
-    'a': /*info:INFERRED_TYPE_LITERAL*/{'b': 'c'},
-    'd': /*info:INFERRED_TYPE_LITERAL*/{'e': x}
+  var y = {
+    'a': {'b': 'c'},
+    'd': {'e': x}
   };
 }
 ''');
@@ -2807,7 +2803,7 @@
   test_inferredType_blockClosure_noArgs_noReturn() async {
     var unit = await checkFile('''
 main() {
-  var f = /*info:INFERRED_TYPE_CLOSURE*/() {};
+  var f = () {};
 }
 ''');
     var f = findLocalVariable(unit, 'f');
@@ -3014,7 +3010,7 @@
     var mainUnit = await checkFileElement('''
 int f() => null;
 String g() => null;
-var v = /*info:INFERRED_TYPE_LITERAL*/[f, g];
+var v = [f, g];
 ''');
     var v = mainUnit.topLevelVariables[0];
     expect(v.type.toString(), 'List<Object Function()>');
@@ -3024,7 +3020,7 @@
     var mainUnit = await checkFileElement('''
 int f(int x(String y)) => null;
 String g(int x(String y)) => null;
-var v = /*info:INFERRED_TYPE_LITERAL*/[f, g];
+var v = [f, g];
 ''');
     var v = mainUnit.topLevelVariables[0];
     expect(v.type.toString(), 'List<Object Function(int Function(String))>');
@@ -3034,7 +3030,7 @@
     var mainUnit = await checkFileElement('''
 int f({int x}) => null;
 String g({int x}) => null;
-var v = /*info:INFERRED_TYPE_LITERAL*/[f, g];
+var v = [f, g];
 ''');
     var v = mainUnit.topLevelVariables[0];
     expect(v.type.toString(), 'List<Object Function({x: int})>');
@@ -3044,7 +3040,7 @@
     var mainUnit = await checkFileElement('''
 int f([int x]) => null;
 String g([int x]) => null;
-var v = /*info:INFERRED_TYPE_LITERAL*/[f, g];
+var v = [f, g];
 ''');
     var v = mainUnit.topLevelVariables[0];
     expect(v.type.toString(), 'List<Object Function([int])>');
@@ -3054,7 +3050,7 @@
     var mainUnit = await checkFileElement('''
 int f(int x) => null;
 String g(int x) => null;
-var v = /*info:INFERRED_TYPE_LITERAL*/[f, g];
+var v = [f, g];
 ''');
     var v = mainUnit.topLevelVariables[0];
     expect(v.type.toString(), 'List<Object Function(int)>');
@@ -3063,8 +3059,8 @@
   test_inferredType_viaClosure_multipleLevelsOfNesting() async {
     var mainUnit = await checkFileElement('''
 class C {
-  static final f = /*info:INFERRED_TYPE_CLOSURE*/(bool b) =>
-      /*info:INFERRED_TYPE_CLOSURE*/(int i) => /*info:INFERRED_TYPE_LITERAL*/{i: b};
+  static final f = (bool b) =>
+      (int i) => {i: b};
 }
 ''');
     var f = mainUnit.getType('C').fields[0];
@@ -3074,7 +3070,7 @@
   test_inferredType_viaClosure_typeDependsOnArgs() async {
     var mainUnit = await checkFileElement('''
 class C {
-  static final f = /*info:INFERRED_TYPE_CLOSURE*/(bool b) => b;
+  static final f = (bool b) => b;
 }
 ''');
     var f = mainUnit.getType('C').fields[0];
@@ -3084,7 +3080,7 @@
   test_inferredType_viaClosure_typeIndependentOfArgs_field() async {
     var mainUnit = await checkFileElement('''
 class C {
-  static final f = /*info:INFERRED_TYPE_CLOSURE*/(bool b) => 1;
+  static final f = (bool b) => 1;
 }
 ''');
     var f = mainUnit.getType('C').fields[0];
@@ -3093,7 +3089,7 @@
 
   test_inferredType_viaClosure_typeIndependentOfArgs_topLevel() async {
     var mainUnit = await checkFileElement('''
-final f = /*info:INFERRED_TYPE_CLOSURE*/(bool b) => 1;
+final f = (bool b) => 1;
 ''');
     var f = mainUnit.topLevelVariables[0];
     expect(f.type.toString(), 'int Function(bool)');
@@ -3103,7 +3099,7 @@
     // Regression test for https://github.com/dart-lang/sdk/issues/26139
     await checkFileElement(r'''
 List<String> strings() {
-  var stuff = [].expand(/*info:INFERRED_TYPE_CLOSURE*/(i) {
+  var stuff = [].expand((i) {
     return <String>[];
   });
   return stuff.toList();
@@ -3518,7 +3514,7 @@
   test_instantiateToBounds_invokeConstructor_noBound() async {
     var unit = await checkFileElement('''
 class C<T> {}
-var x = /*info:INFERRED_TYPE_ALLOCATION*/new C();
+var x = new C();
 ''');
     expect(unit.topLevelVariables[0].type.toString(), 'C<dynamic>');
   }
@@ -3666,7 +3662,7 @@
 
 void foo() {
   List myList = getListOfString();
-  myList.map(/*info:INFERRED_TYPE_CLOSURE*/(type) => 42);
+  myList.map((type) => 42);
 }
 
 void bar() {
@@ -3676,7 +3672,7 @@
   } catch (_) {
     return;
   }
-  /*info:DYNAMIC_INVOKE*/list.map(/*info:INFERRED_TYPE_CLOSURE*/(value) => '$value');
+  /*info:DYNAMIC_INVOKE*/list.map((value) => '$value');
 }
   ''');
   }
@@ -3684,14 +3680,14 @@
   test_listLiterals() async {
     await checkFileElement(r'''
 test1() {
-  var x = /*info:INFERRED_TYPE_LITERAL*/[1, 2, 3];
+  var x = [1, 2, 3];
   x.add(/*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/'hi');
   x.add(/*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/4.0);
   x.add(4);
   List<num> y = x;
 }
 test2() {
-  var x = /*info:INFERRED_TYPE_LITERAL*/[1, 2.0, 3];
+  var x = [1, 2.0, 3];
   x.add(/*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/'hi');
   x.add(4.0);
   List<int> y = x;
@@ -3701,14 +3697,14 @@
 
   test_listLiterals_topLevel() async {
     await checkFileElement(r'''
-var x1 = /*info:INFERRED_TYPE_LITERAL*/[1, 2, 3];
+var x1 = [1, 2, 3];
 test1() {
   x1.add(/*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/'hi');
   x1.add(/*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/4.0);
   x1.add(4);
   List<num> y = x1;
 }
-var x2 = /*info:INFERRED_TYPE_LITERAL*/[1, 2.0, 3];
+var x2 = [1, 2.0, 3];
 test2() {
   x2.add(/*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/'hi');
   x2.add(4.0);
@@ -3719,7 +3715,7 @@
 
   test_listLiteralsCanInferNull_topLevel() async {
     var unit = await checkFileElement(r'''
-var x = /*info:INFERRED_TYPE_LITERAL*/[null];
+var x = [null];
 ''');
     var x = unit.topLevelVariables[0];
     expect(x.type.toString(), 'List<Null>');
@@ -3731,7 +3727,7 @@
     }
     var unit = await checkFile(r'''
 test1() {
-  var x = /*info:INFERRED_TYPE_LITERAL*/[null];
+  var x = [null];
   x.add(/*error:INVALID_CAST_LITERAL*/42);
 }
 ''');
@@ -3742,7 +3738,7 @@
   test_mapLiterals() async {
     await checkFileElement(r'''
 test1() {
-  var x = /*info:INFERRED_TYPE_LITERAL*/{ 1: 'x', 2: 'y' };
+  var x = { 1: 'x', 2: 'y' };
   x[3] = 'z';
   x[/*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/'hi'] = 'w';
   x[/*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/4.0] = 'u';
@@ -3751,7 +3747,7 @@
 }
 
 test2() {
-  var x = /*info:INFERRED_TYPE_LITERAL*/{ 1: 'x', 2: 'y', 3.0: new RegExp('.') };
+  var x = { 1: 'x', 2: 'y', 3.0: new RegExp('.') };
   x[3] = 'z';
   x[/*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/'hi'] = 'w';
   x[4.0] = 'u';
@@ -3765,7 +3761,7 @@
 
   test_mapLiterals_topLevel() async {
     await checkFileElement(r'''
-var x1 = /*info:INFERRED_TYPE_LITERAL*/{ 1: 'x', 2: 'y' };
+var x1 = { 1: 'x', 2: 'y' };
 test1() {
   x1[3] = 'z';
   x1[/*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/'hi'] = 'w';
@@ -3774,7 +3770,7 @@
   Map<num, String> y = x1;
 }
 
-var x2 = /*info:INFERRED_TYPE_LITERAL*/{ 1: 'x', 2: 'y', 3.0: new RegExp('.') };
+var x2 = { 1: 'x', 2: 'y', 3.0: new RegExp('.') };
 test2() {
   x2[3] = 'z';
   x2[/*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/'hi'] = 'w';
@@ -3793,7 +3789,7 @@
     }
     var unit = await checkFile(r'''
 test1() {
-  var x = /*info:INFERRED_TYPE_LITERAL*/{ null: null };
+  var x = { null: null };
   x[/*error:INVALID_CAST_LITERAL*/3] = /*error:INVALID_CAST_LITERAL*/'z';
 }
 ''');
@@ -3803,7 +3799,7 @@
 
   test_mapLiteralsCanInferNull_topLevel() async {
     var unit = await checkFileElement(r'''
-var x = /*info:INFERRED_TYPE_LITERAL*/{ null: null };
+var x = { null: null };
 ''');
     var x = unit.topLevelVariables[0];
     expect(x.type.toString(), 'Map<Null, Null>');
@@ -3871,7 +3867,7 @@
     await checkFileElement(r'''
 main() {
   List<int> x;
-  var y = x ?? /*info:INFERRED_TYPE_LITERAL*/[];
+  var y = x ?? [];
   List<int> z = y;
 }
 ''');
@@ -3879,7 +3875,7 @@
     var unit = await checkFile(r'''
 main() {
   List<int> x;
-  List<num> y = x ?? /*info:INFERRED_TYPE_LITERAL*/[];
+  List<num> y = x ?? [];
 }
 ''');
     var y = findLocalVariable(unit, 'y');
@@ -3893,10 +3889,10 @@
 void foo(int f(Object _)) {}
 
 main() {
-  var f = /*info:INFERRED_TYPE_CLOSURE*/(Object x) => null;
+  var f = (Object x) => null;
   String y = f(42);
 
-  f = /*info:INFERRED_TYPE_CLOSURE*/(x) => /*error:INVALID_CAST_LITERAL*/'hello';
+  f = (x) => /*error:INVALID_CAST_LITERAL*/'hello';
 
   var g = null;
   g = 'hello';
@@ -3905,8 +3901,8 @@
   h = 'hello';
   (/*info:DYNAMIC_INVOKE*/h.foo());
 
-  foo(/*info:INFERRED_TYPE_CLOSURE, info:INFERRED_TYPE_CLOSURE*/(x) => null);
-  foo(/*info:INFERRED_TYPE_CLOSURE, info:INFERRED_TYPE_CLOSURE*/(x) => throw "not implemented");
+  foo((x) => null);
+  foo((x) => throw "not implemented");
 }
 ''');
   }
@@ -4064,7 +4060,7 @@
     // Regression test for https://github.com/dart-lang/sdk/issues/26962
     var unit = await checkFile('''
 main() {
-  var v = (/*info:INFERRED_TYPE_CLOSURE*/(x) => 1.0)(/*info:INFERRED_TYPE_CLOSURE*/() { return 1; });
+  var v = ((x) => 1.0)(() { return 1; });
 }
 ''');
     var v = findLocalVariable(unit, 'v');
@@ -4077,7 +4073,7 @@
 class C<T> {
   C(T x());
 }
-var v = new C<dynamic>(/*info:INFERRED_TYPE_CLOSURE*/() { return 1; });
+var v = new C<dynamic>(() { return 1; });
 ''');
     var v = mainUnit.topLevelVariables[0];
     expect(v.name, 'v');
@@ -4089,7 +4085,7 @@
 class C<T> {
   C(T x());
 }
-var v = new C<int>(/*info:INFERRED_TYPE_CLOSURE*/() { return 1; });
+var v = new C<int>(() { return 1; });
 ''');
     var v = mainUnit.topLevelVariables[0];
     expect(v.name, 'v');
@@ -4102,8 +4098,8 @@
   C(T x());
 }
 main() {
-  var v = /*info:INFERRED_TYPE_ALLOCATION*/new C(
-    /*info:INFERRED_TYPE_CLOSURE*/() {
+  var v = new C(
+    () {
       return 1;
     });
 }
@@ -4118,7 +4114,7 @@
 class C {
   C(x());
 }
-var v = new C(/*info:INFERRED_TYPE_CLOSURE*/() { return 1; });
+var v = new C(() { return 1; });
 ''');
     var v = mainUnit.topLevelVariables[0];
     expect(v.name, 'v');
@@ -4128,7 +4124,7 @@
   test_unsafeBlockClosureInference_functionCall_explicitDynamicParam() async {
     var mainUnit = await checkFileElement('''
 List<T> f<T>(T g()) => <T>[g()];
-var v = f<dynamic>(/*info:INFERRED_TYPE_CLOSURE*/() { return 1; });
+var v = f<dynamic>(() { return 1; });
 ''');
     var v = mainUnit.topLevelVariables[0];
     expect(v.name, 'v');
@@ -4140,7 +4136,7 @@
     // function type due to dartbug.com/25824.
     var mainUnit = await checkFileElement('''
 List<T> f<T>(T g()) => <T>[g()];
-var v = (f<dynamic>)(/*info:INFERRED_TYPE_CLOSURE*/() { return 1; });
+var v = (f<dynamic>)(() { return 1; });
 ''');
     var v = mainUnit.topLevelVariables[0];
     expect(v.name, 'v');
@@ -4150,7 +4146,7 @@
   test_unsafeBlockClosureInference_functionCall_explicitDynamicParam_viaExpr2() async {
     var mainUnit = await checkFileElement('''
 List<T> f<T>(T g()) => <T>[g()];
-var v = (f)<dynamic>(/*info:INFERRED_TYPE_CLOSURE*/() { return 1; });
+var v = (f)<dynamic>(() { return 1; });
 ''');
     var v = mainUnit.topLevelVariables[0];
     expect(v.name, 'v');
@@ -4160,7 +4156,7 @@
   test_unsafeBlockClosureInference_functionCall_explicitTypeParam() async {
     var mainUnit = await checkFileElement('''
 List<T> f<T>(T g()) => <T>[g()];
-var v = f<int>(/*info:INFERRED_TYPE_CLOSURE*/() { return 1; });
+var v = f<int>(() { return 1; });
 ''');
     var v = mainUnit.topLevelVariables[0];
     expect(v.name, 'v');
@@ -4172,7 +4168,7 @@
     // in an instantiated function type.
     var mainUnit = await checkFileElement('''
 List<T> f<T>(T g()) => <T>[g()];
-var v = (f<int>)(/*info:INFERRED_TYPE_CLOSURE*/() { return 1; });
+var v = (f<int>)(() { return 1; });
 ''');
     var v = mainUnit.topLevelVariables[0];
     expect(v.name, 'v');
@@ -4182,7 +4178,7 @@
   test_unsafeBlockClosureInference_functionCall_explicitTypeParam_viaExpr2() async {
     var mainUnit = await checkFileElement('''
 List<T> f<T>(T g()) => <T>[g()];
-var v = (f)<int>(/*info:INFERRED_TYPE_CLOSURE*/() { return 1; });
+var v = (f)<int>(() { return 1; });
 ''');
     var v = mainUnit.topLevelVariables[0];
     expect(v.name, 'v');
@@ -4193,7 +4189,7 @@
     var unit = await checkFile('''
 main() {
   var v = f(
-    /*info:INFERRED_TYPE_CLOSURE*/() {
+    () {
       return 1;
     });
 }
@@ -4207,7 +4203,7 @@
     var unit = await checkFile('''
 main() {
   var v = (f)(
-    /*info:INFERRED_TYPE_CLOSURE*/() {
+    () {
       return 1;
     });
 }
@@ -4220,7 +4216,7 @@
   test_unsafeBlockClosureInference_functionCall_noTypeParam() async {
     var unit = await checkFile('''
 main() {
-  var v = f(/*info:INFERRED_TYPE_CLOSURE*/() { return 1; });
+  var v = f(() { return 1; });
 }
 double f(x) => 1.0;
 ''');
@@ -4231,7 +4227,7 @@
   test_unsafeBlockClosureInference_functionCall_noTypeParam_viaExpr() async {
     var unit = await checkFile('''
 main() {
-  var v = (f)(/*info:INFERRED_TYPE_CLOSURE*/() { return 1; });
+  var v = (f)(() { return 1; });
 }
 double f(x) => 1.0;
 ''');
@@ -4242,7 +4238,7 @@
   test_unsafeBlockClosureInference_inList_dynamic() async {
     var unit = await checkFile('''
 main() {
-  var v = <dynamic>[/*info:INFERRED_TYPE_CLOSURE*/() { return 1; }];
+  var v = <dynamic>[() { return 1; }];
 }
 ''');
     var v = findLocalVariable(unit, 'v');
@@ -4253,7 +4249,7 @@
     var unit = await checkFile('''
 typedef int F();
 main() {
-  var v = <F>[/*info:INFERRED_TYPE_CLOSURE*/() { return 1; }];
+  var v = <F>[() { return 1; }];
 }
 ''');
     var v = findLocalVariable(unit, 'v');
@@ -4263,8 +4259,8 @@
   test_unsafeBlockClosureInference_inList_untyped() async {
     var unit = await checkFile('''
 main() {
-  var v = /*info:INFERRED_TYPE_LITERAL*/[
-    /*info:INFERRED_TYPE_CLOSURE*/() {
+  var v = [
+    () {
       return 1;
     }];
 }
@@ -4276,7 +4272,7 @@
   test_unsafeBlockClosureInference_inMap_dynamic() async {
     var unit = await checkFile('''
 main() {
-  var v = <int, dynamic>{1: /*info:INFERRED_TYPE_CLOSURE*/() { return 1; }};
+  var v = <int, dynamic>{1: () { return 1; }};
 }
 ''');
     var v = findLocalVariable(unit, 'v');
@@ -4287,7 +4283,7 @@
     var unit = await checkFile('''
 typedef int F();
 main() {
-  var v = <int, F>{1: /*info:INFERRED_TYPE_CLOSURE*/() { return 1; }};
+  var v = <int, F>{1: () { return 1; }};
 }
 ''');
     var v = findLocalVariable(unit, 'v');
@@ -4297,8 +4293,8 @@
   test_unsafeBlockClosureInference_inMap_untyped() async {
     var unit = await checkFile('''
 main() {
-  var v = /*info:INFERRED_TYPE_LITERAL*/{
-    1: /*info:INFERRED_TYPE_CLOSURE*/() {
+  var v = {
+    1: () {
       return 1;
     }};
 }
@@ -4313,7 +4309,7 @@
   List<T> f<T>(T g()) => <T>[g()];
 }
 main() {
-  var v = new C().f<dynamic>(/*info:INFERRED_TYPE_CLOSURE*/() { return 1; });
+  var v = new C().f<dynamic>(() { return 1; });
 }
 ''');
     var v = findLocalVariable(unit, 'v');
@@ -4326,7 +4322,7 @@
   List<T> f<T>(T g()) => <T>[g()];
 }
 main() {
-  var v = new C().f<int>(/*info:INFERRED_TYPE_CLOSURE*/() { return 1; });
+  var v = new C().f<int>(() { return 1; });
 }
 ''');
     var v = findLocalVariable(unit, 'v');
@@ -4340,7 +4336,7 @@
 }
 main() {
   var v = new C().f(
-    /*info:INFERRED_TYPE_CLOSURE*/() {
+    () {
       return 1;
     });
 }
@@ -4354,7 +4350,7 @@
 class C {
   double f(x) => 1.0;
 }
-var v = new C().f(/*info:INFERRED_TYPE_CLOSURE*/() { return 1; });
+var v = new C().f(() { return 1; });
 ''');
     var v = mainUnit.topLevelVariables[0];
     expect(v.name, 'v');
@@ -4449,17 +4445,17 @@
 }
 
 Stream<List<int>> foo() async* {
-  yield /*info:INFERRED_TYPE_LITERAL*/[];
+  yield [];
   yield /*error:YIELD_OF_INVALID_TYPE*/new MyStream();
   yield* /*error:YIELD_OF_INVALID_TYPE*/[];
-  yield* /*info:INFERRED_TYPE_ALLOCATION*/new MyStream();
+  yield* new MyStream();
 }
 
 Iterable<Map<int, int>> bar() sync* {
-  yield /*info:INFERRED_TYPE_LITERAL*/{};
+  yield {};
   yield /*error:YIELD_OF_INVALID_TYPE*/new List();
-  yield* /*info:INFERRED_TYPE_LITERAL*/{};
-  yield* /*info:INFERRED_TYPE_ALLOCATION*/new List();
+  yield* {};
+  yield* new List();
 }
 ''');
   }