Replace assertTypeLiteral() with textual expectations.

Change-Id: Ib0058fad5824eb7e11c5901056e7778fdbafa76f
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/293202
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
diff --git a/pkg/analyzer/test/src/dart/resolution/resolution.dart b/pkg/analyzer/test/src/dart/resolution/resolution.dart
index fa0aa1e..ccac0bd 100644
--- a/pkg/analyzer/test/src/dart/resolution/resolution.dart
+++ b/pkg/analyzer/test/src/dart/resolution/resolution.dart
@@ -546,14 +546,6 @@
     expect(actual, NullabilitySuffix.star);
   }
 
-  void assertTypeLiteral(
-      TypeLiteral node, Element? expectedElement, String expectedType,
-      {Element? expectedPrefix}) {
-    assertType(node, 'Type');
-    assertNamedType(node.type, expectedElement, expectedType,
-        expectedPrefix: expectedPrefix);
-  }
-
   void assertTypeNull(Expression node) {
     expect(node.staticType, isNull);
   }
diff --git a/pkg/analyzer/test/src/dart/resolution/type_literal_test.dart b/pkg/analyzer/test/src/dart/resolution/type_literal_test.dart
index 85e6d23..93cdeb6 100644
--- a/pkg/analyzer/test/src/dart/resolution/type_literal_test.dart
+++ b/pkg/analyzer/test/src/dart/resolution/type_literal_test.dart
@@ -23,8 +23,27 @@
 var t = C<int>;
 ''');
 
-    var typeLiteral = findNode.typeLiteral('C<int>;');
-    assertTypeLiteral(typeLiteral, findElement.class_('C'), 'C<int>');
+    final node = findNode.typeLiteral('C<int>;');
+    assertResolvedNodeText(node, r'''
+TypeLiteral
+  type: NamedType
+    name: SimpleIdentifier
+      token: C
+      staticElement: self::@class::C
+      staticType: C<int>
+    typeArguments: TypeArgumentList
+      leftBracket: <
+      arguments
+        NamedType
+          name: SimpleIdentifier
+            token: int
+            staticElement: dart:core::@class::int
+            staticType: null
+          type: int
+      rightBracket: >
+    type: C<int>
+  staticType: Type
+''');
   }
 
   test_class_importPrefix() async {
@@ -36,13 +55,35 @@
 var t = a.C<int>;
 ''');
 
-    var typeLiteral = findNode.typeLiteral('C<int>;');
-    assertTypeLiteral(
-      typeLiteral,
-      findElement.importFind('package:test/a.dart').class_('C'),
-      'C<int>',
-      expectedPrefix: findElement.import('package:test/a.dart').prefix?.element,
-    );
+    final node = findNode.typeLiteral('C<int>;');
+    assertResolvedNodeText(node, r'''
+TypeLiteral
+  type: NamedType
+    name: PrefixedIdentifier
+      prefix: SimpleIdentifier
+        token: a
+        staticElement: self::@prefix::a
+        staticType: null
+      period: .
+      identifier: SimpleIdentifier
+        token: C
+        staticElement: package:test/a.dart::@class::C
+        staticType: Type
+      staticElement: package:test/a.dart::@class::C
+      staticType: C<int>
+    typeArguments: TypeArgumentList
+      leftBracket: <
+      arguments
+        NamedType
+          name: SimpleIdentifier
+            token: int
+            staticElement: dart:core::@class::int
+            staticType: null
+          type: int
+      rightBracket: >
+    type: C<int>
+  staticType: Type
+''');
   }
 
   test_class_tooFewTypeArgs() async {
@@ -53,9 +94,27 @@
       error(CompileTimeErrorCode.WRONG_NUMBER_OF_TYPE_ARGUMENTS, 26, 5),
     ]);
 
-    var typeLiteral = findNode.typeLiteral('C<int>;');
-    assertTypeLiteral(
-        typeLiteral, findElement.class_('C'), 'C<dynamic, dynamic>');
+    final node = findNode.typeLiteral('C<int>;');
+    assertResolvedNodeText(node, r'''
+TypeLiteral
+  type: NamedType
+    name: SimpleIdentifier
+      token: C
+      staticElement: self::@class::C
+      staticType: C<dynamic, dynamic>
+    typeArguments: TypeArgumentList
+      leftBracket: <
+      arguments
+        NamedType
+          name: SimpleIdentifier
+            token: int
+            staticElement: dart:core::@class::int
+            staticType: null
+          type: int
+      rightBracket: >
+    type: C<dynamic, dynamic>
+  staticType: Type
+''');
   }
 
   test_class_tooManyTypeArgs() async {
@@ -66,8 +125,33 @@
       error(CompileTimeErrorCode.WRONG_NUMBER_OF_TYPE_ARGUMENTS, 23, 10),
     ]);
 
-    var typeLiteral = findNode.typeLiteral('C<int, int>;');
-    assertTypeLiteral(typeLiteral, findElement.class_('C'), 'C<dynamic>');
+    final node = findNode.typeLiteral('C<int, int>;');
+    assertResolvedNodeText(node, r'''
+TypeLiteral
+  type: NamedType
+    name: SimpleIdentifier
+      token: C
+      staticElement: self::@class::C
+      staticType: C<dynamic>
+    typeArguments: TypeArgumentList
+      leftBracket: <
+      arguments
+        NamedType
+          name: SimpleIdentifier
+            token: int
+            staticElement: dart:core::@class::int
+            staticType: null
+          type: int
+        NamedType
+          name: SimpleIdentifier
+            token: int
+            staticElement: dart:core::@class::int
+            staticType: null
+          type: int
+      rightBracket: >
+    type: C<dynamic>
+  staticType: Type
+''');
   }
 
   test_class_typeArgumentDoesNotMatchBound() async {
@@ -79,8 +163,27 @@
           contextMessages: [message('/home/test/lib/test.dart', 34, 9)]),
     ]);
 
-    var typeLiteral = findNode.typeLiteral('C<String>;');
-    assertTypeLiteral(typeLiteral, findElement.class_('C'), 'C<String>');
+    final node = findNode.typeLiteral('C<String>;');
+    assertResolvedNodeText(node, r'''
+TypeLiteral
+  type: NamedType
+    name: SimpleIdentifier
+      token: C
+      staticElement: self::@class::C
+      staticType: C<String>
+    typeArguments: TypeArgumentList
+      leftBracket: <
+      arguments
+        NamedType
+          name: SimpleIdentifier
+            token: String
+            staticElement: dart:core::@class::String
+            staticType: null
+          type: String
+      rightBracket: >
+    type: C<String>
+  staticType: Type
+''');
   }
 
   test_classAlias() async {
@@ -90,8 +193,33 @@
 var t = CA<int>;
 ''');
 
-    var typeLiteral = findNode.typeLiteral('CA<int>;');
-    assertTypeLiteral(typeLiteral, findElement.typeAlias('CA'), 'C<int>');
+    final node = findNode.typeLiteral('CA<int>;');
+    assertResolvedNodeText(node, r'''
+TypeLiteral
+  type: NamedType
+    name: SimpleIdentifier
+      token: CA
+      staticElement: self::@typeAlias::CA
+      staticType: C<int>
+        alias: self::@typeAlias::CA
+          typeArguments
+            int
+    typeArguments: TypeArgumentList
+      leftBracket: <
+      arguments
+        NamedType
+          name: SimpleIdentifier
+            token: int
+            staticElement: dart:core::@class::int
+            staticType: null
+          type: int
+      rightBracket: >
+    type: C<int>
+      alias: self::@typeAlias::CA
+        typeArguments
+          int
+  staticType: Type
+''');
   }
 
   test_classAlias_differentTypeArgCount() async {
@@ -101,9 +229,33 @@
 var t = CA<String>;
 ''');
 
-    var typeLiteral = findNode.typeLiteral('CA<String>;');
-    assertTypeLiteral(
-        typeLiteral, findElement.typeAlias('CA'), 'C<String, int>');
+    final node = findNode.typeLiteral('CA<String>;');
+    assertResolvedNodeText(node, r'''
+TypeLiteral
+  type: NamedType
+    name: SimpleIdentifier
+      token: CA
+      staticElement: self::@typeAlias::CA
+      staticType: C<String, int>
+        alias: self::@typeAlias::CA
+          typeArguments
+            String
+    typeArguments: TypeArgumentList
+      leftBracket: <
+      arguments
+        NamedType
+          name: SimpleIdentifier
+            token: String
+            staticElement: dart:core::@class::String
+            staticType: null
+          type: String
+      rightBracket: >
+    type: C<String, int>
+      alias: self::@typeAlias::CA
+        typeArguments
+          String
+  staticType: Type
+''');
   }
 
   test_classAlias_functionTypeArg() async {
@@ -113,9 +265,43 @@
 var t = CA<void Function()>;
 ''');
 
-    var typeLiteral = findNode.typeLiteral('CA<void Function()>;');
-    assertTypeLiteral(
-        typeLiteral, findElement.typeAlias('CA'), 'C<void Function()>');
+    final node = findNode.typeLiteral('CA<void Function()>;');
+    assertResolvedNodeText(node, r'''
+TypeLiteral
+  type: NamedType
+    name: SimpleIdentifier
+      token: CA
+      staticElement: self::@typeAlias::CA
+      staticType: C<void Function()>
+        alias: self::@typeAlias::CA
+          typeArguments
+            void Function()
+    typeArguments: TypeArgumentList
+      leftBracket: <
+      arguments
+        GenericFunctionType
+          returnType: NamedType
+            name: SimpleIdentifier
+              token: void
+              staticElement: <null>
+              staticType: null
+            type: void
+          functionKeyword: Function
+          parameters: FormalParameterList
+            leftParenthesis: (
+            rightParenthesis: )
+          declaredElement: GenericFunctionTypeElement
+            parameters
+            returnType: void
+            type: void Function()
+          type: void Function()
+      rightBracket: >
+    type: C<void Function()>
+      alias: self::@typeAlias::CA
+        typeArguments
+          void Function()
+  staticType: Type
+''');
   }
 
   test_classAlias_importPrefix() async {
@@ -128,13 +314,41 @@
 var t = a.CA<int>;
 ''');
 
-    var typeLiteral = findNode.typeLiteral('CA<int>;');
-    assertTypeLiteral(
-      typeLiteral,
-      findElement.importFind('package:test/a.dart').typeAlias('CA'),
-      'C<int>',
-      expectedPrefix: findElement.import('package:test/a.dart').prefix?.element,
-    );
+    final node = findNode.typeLiteral('CA<int>;');
+    assertResolvedNodeText(node, r'''
+TypeLiteral
+  type: NamedType
+    name: PrefixedIdentifier
+      prefix: SimpleIdentifier
+        token: a
+        staticElement: self::@prefix::a
+        staticType: null
+      period: .
+      identifier: SimpleIdentifier
+        token: CA
+        staticElement: package:test/a.dart::@typeAlias::CA
+        staticType: Type
+      staticElement: package:test/a.dart::@typeAlias::CA
+      staticType: C<int>
+        alias: package:test/a.dart::@typeAlias::CA
+          typeArguments
+            int
+    typeArguments: TypeArgumentList
+      leftBracket: <
+      arguments
+        NamedType
+          name: SimpleIdentifier
+            token: int
+            staticElement: dart:core::@class::int
+            staticType: null
+          type: int
+      rightBracket: >
+    type: C<int>
+      alias: package:test/a.dart::@typeAlias::CA
+        typeArguments
+          int
+  staticType: Type
+''');
   }
 
   test_classAlias_typeArgumentDoesNotMatchBound() async {
@@ -147,8 +361,33 @@
           contextMessages: [message('/home/test/lib/test.dart', 56, 10)]),
     ]);
 
-    var typeLiteral = findNode.typeLiteral('CA<String>;');
-    assertTypeLiteral(typeLiteral, findElement.typeAlias('CA'), 'C<String>');
+    final node = findNode.typeLiteral('CA<String>;');
+    assertResolvedNodeText(node, r'''
+TypeLiteral
+  type: NamedType
+    name: SimpleIdentifier
+      token: CA
+      staticElement: self::@typeAlias::CA
+      staticType: C<String>
+        alias: self::@typeAlias::CA
+          typeArguments
+            String
+    typeArguments: TypeArgumentList
+      leftBracket: <
+      arguments
+        NamedType
+          name: SimpleIdentifier
+            token: String
+            staticElement: dart:core::@class::String
+            staticType: null
+          type: String
+      rightBracket: >
+    type: C<String>
+      alias: self::@typeAlias::CA
+        typeArguments
+          String
+  staticType: Type
+''');
   }
 
   test_functionAlias() async {
@@ -157,9 +396,33 @@
 var t = Fn<int>;
 ''');
 
-    var typeLiteral = findNode.typeLiteral('Fn<int>;');
-    assertTypeLiteral(
-        typeLiteral, findElement.typeAlias('Fn'), 'void Function(int)');
+    final node = findNode.typeLiteral('Fn<int>;');
+    assertResolvedNodeText(node, r'''
+TypeLiteral
+  type: NamedType
+    name: SimpleIdentifier
+      token: Fn
+      staticElement: self::@typeAlias::Fn
+      staticType: void Function(int)
+        alias: self::@typeAlias::Fn
+          typeArguments
+            int
+    typeArguments: TypeArgumentList
+      leftBracket: <
+      arguments
+        NamedType
+          name: SimpleIdentifier
+            token: int
+            staticElement: dart:core::@class::int
+            staticType: null
+          type: int
+      rightBracket: >
+    type: void Function(int)
+      alias: self::@typeAlias::Fn
+        typeArguments
+          int
+  staticType: Type
+''');
   }
 
   test_functionAlias_importPrefix() async {
@@ -171,13 +434,41 @@
 var t = a.Fn<int>;
 ''');
 
-    var typeLiteral = findNode.typeLiteral('Fn<int>;');
-    assertTypeLiteral(
-      typeLiteral,
-      findElement.importFind('package:test/a.dart').typeAlias('Fn'),
-      'void Function(int)',
-      expectedPrefix: findElement.prefix('a'),
-    );
+    final node = findNode.typeLiteral('Fn<int>;');
+    assertResolvedNodeText(node, r'''
+TypeLiteral
+  type: NamedType
+    name: PrefixedIdentifier
+      prefix: SimpleIdentifier
+        token: a
+        staticElement: self::@prefix::a
+        staticType: null
+      period: .
+      identifier: SimpleIdentifier
+        token: Fn
+        staticElement: package:test/a.dart::@typeAlias::Fn
+        staticType: Type
+      staticElement: package:test/a.dart::@typeAlias::Fn
+      staticType: void Function(int)
+        alias: package:test/a.dart::@typeAlias::Fn
+          typeArguments
+            int
+    typeArguments: TypeArgumentList
+      leftBracket: <
+      arguments
+        NamedType
+          name: SimpleIdentifier
+            token: int
+            staticElement: dart:core::@class::int
+            staticType: null
+          type: int
+      rightBracket: >
+    type: void Function(int)
+      alias: package:test/a.dart::@typeAlias::Fn
+        typeArguments
+          int
+  staticType: Type
+''');
   }
 
   test_functionAlias_targetOfMethodCall() async {
@@ -195,12 +486,30 @@
       error(CompileTimeErrorCode.UNDEFINED_METHOD_ON_FUNCTION_TYPE, 58, 3),
     ]);
 
-    var typeLiteral = findNode.typeLiteral('Fn<int>');
-    assertTypeLiteral(
-      typeLiteral,
-      findElement.typeAlias('Fn'),
-      'void Function(int)',
-    );
+    final node = findNode.typeLiteral('Fn<int>');
+    assertResolvedNodeText(node, r'''
+TypeLiteral
+  type: NamedType
+    name: SimpleIdentifier
+      token: Fn
+      staticElement: self::@typeAlias::Fn
+      staticType: void Function(T)
+    typeArguments: TypeArgumentList
+      leftBracket: <
+      arguments
+        NamedType
+          name: SimpleIdentifier
+            token: int
+            staticElement: dart:core::@class::int
+            staticType: null
+          type: int
+      rightBracket: >
+    type: void Function(int)
+      alias: self::@typeAlias::Fn
+        typeArguments
+          int
+  staticType: Type
+''');
   }
 
   test_functionAlias_targetOfMethodCall_importPrefix() async {
@@ -221,13 +530,38 @@
       error(CompileTimeErrorCode.UNDEFINED_METHOD_ON_FUNCTION_TYPE, 48, 3),
     ]);
 
-    var typeLiteral = findNode.typeLiteral('Fn<int>');
-    assertTypeLiteral(
-      typeLiteral,
-      findElement.importFind('package:test/a.dart').typeAlias('Fn'),
-      'void Function(int)',
-      expectedPrefix: findElement.prefix('a'),
-    );
+    final node = findNode.typeLiteral('Fn<int>');
+    assertResolvedNodeText(node, r'''
+TypeLiteral
+  type: NamedType
+    name: PrefixedIdentifier
+      prefix: SimpleIdentifier
+        token: a
+        staticElement: self::@prefix::a
+        staticType: null
+      period: .
+      identifier: SimpleIdentifier
+        token: Fn
+        staticElement: package:test/a.dart::@typeAlias::Fn
+        staticType: null
+      staticElement: package:test/a.dart::@typeAlias::Fn
+      staticType: void Function(T)
+    typeArguments: TypeArgumentList
+      leftBracket: <
+      arguments
+        NamedType
+          name: SimpleIdentifier
+            token: int
+            staticElement: dart:core::@class::int
+            staticType: null
+          type: int
+      rightBracket: >
+    type: void Function(int)
+      alias: package:test/a.dart::@typeAlias::Fn
+        typeArguments
+          int
+  staticType: Type
+''');
   }
 
   test_functionAlias_targetOfMethodCall_parenthesized() async {
@@ -243,12 +577,33 @@
 }
 ''');
 
-    var typeLiteral = findNode.typeLiteral('Fn<int>');
-    assertTypeLiteral(
-      typeLiteral,
-      findElement.typeAlias('Fn'),
-      'void Function(int)',
-    );
+    final node = findNode.typeLiteral('Fn<int>');
+    assertResolvedNodeText(node, r'''
+TypeLiteral
+  type: NamedType
+    name: SimpleIdentifier
+      token: Fn
+      staticElement: self::@typeAlias::Fn
+      staticType: void Function(int)
+        alias: self::@typeAlias::Fn
+          typeArguments
+            int
+    typeArguments: TypeArgumentList
+      leftBracket: <
+      arguments
+        NamedType
+          name: SimpleIdentifier
+            token: int
+            staticElement: dart:core::@class::int
+            staticType: null
+          type: int
+      rightBracket: >
+    type: void Function(int)
+      alias: self::@typeAlias::Fn
+        typeArguments
+          int
+  staticType: Type
+''');
   }
 
   test_functionAlias_targetOfPropertyAccess_getter() async {
@@ -266,12 +621,33 @@
       error(CompileTimeErrorCode.UNDEFINED_GETTER_ON_FUNCTION_TYPE, 58, 3),
     ]);
 
-    var typeLiteral = findNode.typeLiteral('Fn<int>');
-    assertTypeLiteral(
-      typeLiteral,
-      findElement.typeAlias('Fn'),
-      'void Function(int)',
-    );
+    final node = findNode.typeLiteral('Fn<int>');
+    assertResolvedNodeText(node, r'''
+TypeLiteral
+  type: NamedType
+    name: SimpleIdentifier
+      token: Fn
+      staticElement: self::@typeAlias::Fn
+      staticType: void Function(int)
+        alias: self::@typeAlias::Fn
+          typeArguments
+            int
+    typeArguments: TypeArgumentList
+      leftBracket: <
+      arguments
+        NamedType
+          name: SimpleIdentifier
+            token: int
+            staticElement: dart:core::@class::int
+            staticType: null
+          type: int
+      rightBracket: >
+    type: void Function(int)
+      alias: self::@typeAlias::Fn
+        typeArguments
+          int
+  staticType: Type
+''');
   }
 
   test_functionAlias_targetOfPropertyAccess_getter_parenthesized() async {
@@ -287,12 +663,33 @@
 }
 ''');
 
-    var typeLiteral = findNode.typeLiteral('Fn<int>');
-    assertTypeLiteral(
-      typeLiteral,
-      findElement.typeAlias('Fn'),
-      'void Function(int)',
-    );
+    final node = findNode.typeLiteral('Fn<int>');
+    assertResolvedNodeText(node, r'''
+TypeLiteral
+  type: NamedType
+    name: SimpleIdentifier
+      token: Fn
+      staticElement: self::@typeAlias::Fn
+      staticType: void Function(int)
+        alias: self::@typeAlias::Fn
+          typeArguments
+            int
+    typeArguments: TypeArgumentList
+      leftBracket: <
+      arguments
+        NamedType
+          name: SimpleIdentifier
+            token: int
+            staticElement: dart:core::@class::int
+            staticType: null
+          type: int
+      rightBracket: >
+    type: void Function(int)
+      alias: self::@typeAlias::Fn
+        typeArguments
+          int
+  staticType: Type
+''');
   }
 
   test_functionAlias_targetOfPropertyAccess_setter() async {
@@ -310,12 +707,33 @@
       error(CompileTimeErrorCode.UNDEFINED_SETTER_ON_FUNCTION_TYPE, 58, 3),
     ]);
 
-    var typeLiteral = findNode.typeLiteral('Fn<int>');
-    assertTypeLiteral(
-      typeLiteral,
-      findElement.typeAlias('Fn'),
-      'void Function(int)',
-    );
+    final node = findNode.typeLiteral('Fn<int>');
+    assertResolvedNodeText(node, r'''
+TypeLiteral
+  type: NamedType
+    name: SimpleIdentifier
+      token: Fn
+      staticElement: self::@typeAlias::Fn
+      staticType: void Function(int)
+        alias: self::@typeAlias::Fn
+          typeArguments
+            int
+    typeArguments: TypeArgumentList
+      leftBracket: <
+      arguments
+        NamedType
+          name: SimpleIdentifier
+            token: int
+            staticElement: dart:core::@class::int
+            staticType: null
+          type: int
+      rightBracket: >
+    type: void Function(int)
+      alias: self::@typeAlias::Fn
+        typeArguments
+          int
+  staticType: Type
+''');
   }
 
   test_functionAlias_targetOfPropertyAccess_setter_parenthesized() async {
@@ -331,12 +749,33 @@
 }
 ''');
 
-    var typeLiteral = findNode.typeLiteral('Fn<int>');
-    assertTypeLiteral(
-      typeLiteral,
-      findElement.typeAlias('Fn'),
-      'void Function(int)',
-    );
+    final node = findNode.typeLiteral('Fn<int>');
+    assertResolvedNodeText(node, r'''
+TypeLiteral
+  type: NamedType
+    name: SimpleIdentifier
+      token: Fn
+      staticElement: self::@typeAlias::Fn
+      staticType: void Function(int)
+        alias: self::@typeAlias::Fn
+          typeArguments
+            int
+    typeArguments: TypeArgumentList
+      leftBracket: <
+      arguments
+        NamedType
+          name: SimpleIdentifier
+            token: int
+            staticElement: dart:core::@class::int
+            staticType: null
+          type: int
+      rightBracket: >
+    type: void Function(int)
+      alias: self::@typeAlias::Fn
+        typeArguments
+          int
+  staticType: Type
+''');
   }
 
   test_functionAlias_tooFewTypeArgs() async {
@@ -347,12 +786,35 @@
       error(CompileTimeErrorCode.WRONG_NUMBER_OF_TYPE_ARGUMENTS, 50, 5),
     ]);
 
-    var typeLiteral = findNode.typeLiteral('Fn<int>;');
-    assertTypeLiteral(
-      typeLiteral,
-      findElement.typeAlias('Fn'),
-      'void Function(dynamic, dynamic)',
-    );
+    final node = findNode.typeLiteral('Fn<int>;');
+    assertResolvedNodeText(node, r'''
+TypeLiteral
+  type: NamedType
+    name: SimpleIdentifier
+      token: Fn
+      staticElement: self::@typeAlias::Fn
+      staticType: void Function(dynamic, dynamic)
+        alias: self::@typeAlias::Fn
+          typeArguments
+            dynamic
+            dynamic
+    typeArguments: TypeArgumentList
+      leftBracket: <
+      arguments
+        NamedType
+          name: SimpleIdentifier
+            token: int
+            staticElement: dart:core::@class::int
+            staticType: null
+          type: int
+      rightBracket: >
+    type: void Function(dynamic, dynamic)
+      alias: self::@typeAlias::Fn
+        typeArguments
+          dynamic
+          dynamic
+  staticType: Type
+''');
   }
 
   test_functionAlias_tooManyTypeArgs() async {
@@ -363,12 +825,39 @@
       error(CompileTimeErrorCode.WRONG_NUMBER_OF_TYPE_ARGUMENTS, 44, 13),
     ]);
 
-    var typeLiteral = findNode.typeLiteral('Fn<int, String>;');
-    assertTypeLiteral(
-      typeLiteral,
-      findElement.typeAlias('Fn'),
-      'void Function(dynamic)',
-    );
+    final node = findNode.typeLiteral('Fn<int, String>;');
+    assertResolvedNodeText(node, r'''
+TypeLiteral
+  type: NamedType
+    name: SimpleIdentifier
+      token: Fn
+      staticElement: self::@typeAlias::Fn
+      staticType: void Function(dynamic)
+        alias: self::@typeAlias::Fn
+          typeArguments
+            dynamic
+    typeArguments: TypeArgumentList
+      leftBracket: <
+      arguments
+        NamedType
+          name: SimpleIdentifier
+            token: int
+            staticElement: dart:core::@class::int
+            staticType: null
+          type: int
+        NamedType
+          name: SimpleIdentifier
+            token: String
+            staticElement: dart:core::@class::String
+            staticType: null
+          type: String
+      rightBracket: >
+    type: void Function(dynamic)
+      alias: self::@typeAlias::Fn
+        typeArguments
+          dynamic
+  staticType: Type
+''');
   }
 
   test_functionAlias_typeArgumentDoesNotMatchBound() async {
@@ -380,12 +869,33 @@
           contextMessages: [message('/home/test/lib/test.dart', 54, 10)]),
     ]);
 
-    var typeLiteral = findNode.typeLiteral('Fn<String>;');
-    assertTypeLiteral(
-      typeLiteral,
-      findElement.typeAlias('Fn'),
-      'void Function(String)',
-    );
+    final node = findNode.typeLiteral('Fn<String>;');
+    assertResolvedNodeText(node, r'''
+TypeLiteral
+  type: NamedType
+    name: SimpleIdentifier
+      token: Fn
+      staticElement: self::@typeAlias::Fn
+      staticType: void Function(String)
+        alias: self::@typeAlias::Fn
+          typeArguments
+            String
+    typeArguments: TypeArgumentList
+      leftBracket: <
+      arguments
+        NamedType
+          name: SimpleIdentifier
+            token: String
+            staticElement: dart:core::@class::String
+            staticType: null
+          type: String
+      rightBracket: >
+    type: void Function(String)
+      alias: self::@typeAlias::Fn
+        typeArguments
+          String
+  staticType: Type
+''');
   }
 
   test_mixin() async {
@@ -394,8 +904,27 @@
 var t = M<int>;
 ''');
 
-    var typeLiteral = findNode.typeLiteral('M<int>;');
-    assertTypeLiteral(typeLiteral, findElement.mixin('M'), 'M<int>');
+    final node = findNode.typeLiteral('M<int>;');
+    assertResolvedNodeText(node, r'''
+TypeLiteral
+  type: NamedType
+    name: SimpleIdentifier
+      token: M
+      staticElement: self::@mixin::M
+      staticType: M<int>
+    typeArguments: TypeArgumentList
+      leftBracket: <
+      arguments
+        NamedType
+          name: SimpleIdentifier
+            token: int
+            staticElement: dart:core::@class::int
+            staticType: null
+          type: int
+      rightBracket: >
+    type: M<int>
+  staticType: Type
+''');
   }
 
   test_typeVariableTypeAlias() async {
@@ -404,8 +933,33 @@
 var t = T<int>;
 ''');
 
-    var typeLiteral = findNode.typeLiteral('T<int>;');
-    assertTypeLiteral(typeLiteral, findElement.typeAlias('T'), 'int');
+    final node = findNode.typeLiteral('T<int>;');
+    assertResolvedNodeText(node, r'''
+TypeLiteral
+  type: NamedType
+    name: SimpleIdentifier
+      token: T
+      staticElement: self::@typeAlias::T
+      staticType: int
+        alias: self::@typeAlias::T
+          typeArguments
+            int
+    typeArguments: TypeArgumentList
+      leftBracket: <
+      arguments
+        NamedType
+          name: SimpleIdentifier
+            token: int
+            staticElement: dart:core::@class::int
+            staticType: null
+          type: int
+      rightBracket: >
+    type: int
+      alias: self::@typeAlias::T
+        typeArguments
+          int
+  staticType: Type
+''');
   }
 
   test_typeVariableTypeAlias_functionTypeArgument() async {
@@ -414,9 +968,43 @@
 var t = T<void Function()>;
 ''');
 
-    var typeLiteral = findNode.typeLiteral('T<void Function()>;');
-    assertTypeLiteral(
-        typeLiteral, findElement.typeAlias('T'), 'void Function()');
+    final node = findNode.typeLiteral('T<void Function()>;');
+    assertResolvedNodeText(node, r'''
+TypeLiteral
+  type: NamedType
+    name: SimpleIdentifier
+      token: T
+      staticElement: self::@typeAlias::T
+      staticType: void Function()
+        alias: self::@typeAlias::T
+          typeArguments
+            void Function()
+    typeArguments: TypeArgumentList
+      leftBracket: <
+      arguments
+        GenericFunctionType
+          returnType: NamedType
+            name: SimpleIdentifier
+              token: void
+              staticElement: <null>
+              staticType: null
+            type: void
+          functionKeyword: Function
+          parameters: FormalParameterList
+            leftParenthesis: (
+            rightParenthesis: )
+          declaredElement: GenericFunctionTypeElement
+            parameters
+            returnType: void
+            type: void Function()
+          type: void Function()
+      rightBracket: >
+    type: void Function()
+      alias: self::@typeAlias::T
+        typeArguments
+          void Function()
+  staticType: Type
+''');
   }
 }