@@ -9,6 +9,7 @@ import 'package:analyzer/dart/element/type.dart';
99import 'package:analyzer/src/dart/element/element.dart' ;
1010import 'package:analyzer/src/dart/element/type.dart' ;
1111import 'package:analyzer/src/dart/element/type_algebra.dart' ;
12+ import 'package:analyzer/src/generated/type_system.dart' ;
1213import 'package:analyzer/src/summary2/lazy_ast.dart' ;
1314import 'package:analyzer/src/summary2/type_builder.dart' ;
1415import 'package:meta/meta.dart' ;
@@ -17,8 +18,8 @@ import 'package:meta/meta.dart';
1718class NamedTypeBuilder extends TypeBuilder {
1819 static DynamicTypeImpl get _dynamicType => DynamicTypeImpl .instance;
1920
20- /// Indicates whether the library is opted into NNBD .
21- final bool isNNBD ;
21+ /// The type system of the library with the type name .
22+ final TypeSystemImpl typeSystem ;
2223
2324 @override
2425 final Element element;
@@ -40,11 +41,11 @@ class NamedTypeBuilder extends TypeBuilder {
4041 DartType _type;
4142
4243 NamedTypeBuilder (
43- this .isNNBD , this .element, this .arguments, this .nullabilitySuffix,
44+ this .typeSystem , this .element, this .arguments, this .nullabilitySuffix,
4445 {this .node});
4546
4647 factory NamedTypeBuilder .of (
47- bool isNNBD ,
48+ TypeSystemImpl typeSystem ,
4849 TypeName node,
4950 Element element,
5051 NullabilitySuffix nullabilitySuffix,
@@ -57,7 +58,7 @@ class NamedTypeBuilder extends TypeBuilder {
5758 arguments = < DartType > [];
5859 }
5960
60- return NamedTypeBuilder (isNNBD , element, arguments, nullabilitySuffix,
61+ return NamedTypeBuilder (typeSystem , element, arguments, nullabilitySuffix,
6162 node: node);
6263 }
6364
@@ -71,25 +72,29 @@ class NamedTypeBuilder extends TypeBuilder {
7172 if (element is ClassElement ) {
7273 var parameters = element.typeParameters;
7374 var arguments = _buildArguments (parameters);
74- _type = element.instantiate (
75+ var type = element.instantiate (
7576 typeArguments: arguments,
7677 nullabilitySuffix: nullabilitySuffix,
7778 );
79+ type = typeSystem.toLegacyType (type);
80+ _type = type;
7881 } else if (element is GenericTypeAliasElement ) {
7982 var rawType = _getRawFunctionType (element);
8083 if (rawType is FunctionType ) {
8184 var parameters = element.typeParameters;
8285 var arguments = _buildArguments (parameters);
8386 var substitution = Substitution .fromPairs (parameters, arguments);
8487 var instantiated = substitution.substituteType (rawType) as FunctionType ;
85- _type = FunctionTypeImpl (
88+ var type = FunctionTypeImpl (
8689 typeFormals: instantiated.typeFormals,
8790 parameters: instantiated.parameters,
8891 returnType: instantiated.returnType,
8992 nullabilitySuffix: nullabilitySuffix,
9093 element: element,
9194 typeArguments: arguments,
9295 );
96+ type = typeSystem.toLegacyType (type);
97+ _type = type;
9398 } else {
9499 _type = _dynamicType;
95100 }
@@ -126,7 +131,7 @@ class NamedTypeBuilder extends TypeBuilder {
126131 return this ;
127132 }
128133
129- return NamedTypeBuilder (isNNBD , element, arguments, nullabilitySuffix,
134+ return NamedTypeBuilder (typeSystem , element, arguments, nullabilitySuffix,
130135 node: node);
131136 }
132137
@@ -224,7 +229,7 @@ class NamedTypeBuilder extends TypeBuilder {
224229 NullabilitySuffix _getNullabilitySuffix (bool hasQuestion) {
225230 if (hasQuestion) {
226231 return NullabilitySuffix .question;
227- } else if (isNNBD ) {
232+ } else if (typeSystem.isNonNullableByDefault ) {
228233 return NullabilitySuffix .none;
229234 } else {
230235 return NullabilitySuffix .star;
0 commit comments