mirror of
https://github.com/dart-lang/sdk
synced 2024-10-14 22:49:53 +00:00
[cfe] Remove LibraryBuilder.nullableBuilder et al.
Change-Id: I36b2a8c25568d4df90a6a1b039d15519d244be96 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/371123 Reviewed-by: Jens Johansen <jensj@google.com> Commit-Queue: Johnni Winther <johnniwinther@google.com>
This commit is contained in:
parent
b807dbd0cd
commit
289bba506e
|
@ -49,7 +49,7 @@ mixin DeclarationBuilderMixin implements IDeclarationBuilder {
|
||||||
{required bool hasExplicitTypeArguments}) {
|
{required bool hasExplicitTypeArguments}) {
|
||||||
return buildAliasedTypeWithBuiltArguments(
|
return buildAliasedTypeWithBuiltArguments(
|
||||||
library,
|
library,
|
||||||
nullabilityBuilder.build(library),
|
nullabilityBuilder.build(),
|
||||||
buildAliasedTypeArguments(library, arguments, hierarchy),
|
buildAliasedTypeArguments(library, arguments, hierarchy),
|
||||||
typeUse,
|
typeUse,
|
||||||
fileUri,
|
fileUri,
|
||||||
|
|
|
@ -26,7 +26,7 @@ abstract class BuiltinTypeDeclarationBuilder extends TypeDeclarationBuilderImpl
|
||||||
int charOffset,
|
int charOffset,
|
||||||
ClassHierarchyBase? hierarchy,
|
ClassHierarchyBase? hierarchy,
|
||||||
{required bool hasExplicitTypeArguments}) {
|
{required bool hasExplicitTypeArguments}) {
|
||||||
return type.withDeclaredNullability(nullabilityBuilder.build(library));
|
return type.withDeclaredNullability(nullabilityBuilder.build());
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
|
|
|
@ -379,7 +379,7 @@ abstract class ClassBuilderImpl extends DeclarationBuilderImpl
|
||||||
}
|
}
|
||||||
return buildAliasedTypeWithBuiltArguments(
|
return buildAliasedTypeWithBuiltArguments(
|
||||||
library,
|
library,
|
||||||
nullabilityBuilder.build(library),
|
nullabilityBuilder.build(),
|
||||||
buildAliasedTypeArguments(library, arguments, hierarchy),
|
buildAliasedTypeArguments(library, arguments, hierarchy),
|
||||||
typeUse,
|
typeUse,
|
||||||
fileUri,
|
fileUri,
|
||||||
|
|
|
@ -175,8 +175,8 @@ abstract class FunctionTypeBuilderImpl extends FunctionTypeBuilder {
|
||||||
t.bound?.build(library, TypeUse.typeParameterBound);
|
t.bound?.build(library, TypeUse.typeParameterBound);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return new FunctionType(positionalParameters, builtReturnType,
|
return new FunctionType(
|
||||||
nullabilityBuilder.build(library),
|
positionalParameters, builtReturnType, nullabilityBuilder.build(),
|
||||||
namedParameters: namedParameters ?? const <NamedType>[],
|
namedParameters: namedParameters ?? const <NamedType>[],
|
||||||
typeParameters: typeParameters ?? const <StructuralParameter>[],
|
typeParameters: typeParameters ?? const <StructuralParameter>[],
|
||||||
requiredParameterCount: requiredParameterCount);
|
requiredParameterCount: requiredParameterCount);
|
||||||
|
|
|
@ -33,7 +33,7 @@ class FutureOrTypeDeclarationBuilder extends BuiltinTypeDeclarationBuilder {
|
||||||
return new FutureOrType(
|
return new FutureOrType(
|
||||||
arguments!.single
|
arguments!.single
|
||||||
.buildAliased(library, TypeUse.typeArgument, hierarchy),
|
.buildAliased(library, TypeUse.typeArgument, hierarchy),
|
||||||
nullabilityBuilder.build(library));
|
nullabilityBuilder.build());
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
|
|
|
@ -5,17 +5,11 @@
|
||||||
library fasta.library_builder;
|
library fasta.library_builder;
|
||||||
|
|
||||||
import 'package:_fe_analyzer_shared/src/messages/severity.dart' show Severity;
|
import 'package:_fe_analyzer_shared/src/messages/severity.dart' show Severity;
|
||||||
|
import 'package:kernel/ast.dart' show Class, Library;
|
||||||
import 'package:kernel/ast.dart' show Class, Library, Nullability;
|
|
||||||
|
|
||||||
import '../combinator.dart' show CombinatorBuilder;
|
import '../combinator.dart' show CombinatorBuilder;
|
||||||
|
|
||||||
import '../problems.dart' show internalProblem;
|
|
||||||
|
|
||||||
import '../export.dart' show Export;
|
import '../export.dart' show Export;
|
||||||
|
|
||||||
import '../loader.dart' show Loader;
|
import '../loader.dart' show Loader;
|
||||||
|
|
||||||
import '../messages.dart'
|
import '../messages.dart'
|
||||||
show
|
show
|
||||||
FormattedMessage,
|
FormattedMessage,
|
||||||
|
@ -24,9 +18,8 @@ import '../messages.dart'
|
||||||
templateInternalProblemConstructorNotFound,
|
templateInternalProblemConstructorNotFound,
|
||||||
templateInternalProblemNotFoundIn,
|
templateInternalProblemNotFoundIn,
|
||||||
templateInternalProblemPrivateConstructorAccess;
|
templateInternalProblemPrivateConstructorAccess;
|
||||||
|
import '../problems.dart' show internalProblem;
|
||||||
import '../scope.dart';
|
import '../scope.dart';
|
||||||
|
|
||||||
import '../source/name_scheme.dart';
|
import '../source/name_scheme.dart';
|
||||||
import '../source/offset_map.dart';
|
import '../source/offset_map.dart';
|
||||||
import '../source/source_class_builder.dart';
|
import '../source/source_class_builder.dart';
|
||||||
|
@ -39,7 +32,6 @@ import 'inferable_type_builder.dart';
|
||||||
import 'member_builder.dart';
|
import 'member_builder.dart';
|
||||||
import 'modifier_builder.dart';
|
import 'modifier_builder.dart';
|
||||||
import 'name_iterator.dart';
|
import 'name_iterator.dart';
|
||||||
import 'nullability_builder.dart';
|
|
||||||
import 'prefix_builder.dart';
|
import 'prefix_builder.dart';
|
||||||
import 'type_builder.dart';
|
import 'type_builder.dart';
|
||||||
|
|
||||||
|
@ -268,17 +260,6 @@ abstract class LibraryBuilder implements Builder {
|
||||||
void recordAccess(
|
void recordAccess(
|
||||||
CompilationUnit accessor, int charOffset, int length, Uri fileUri);
|
CompilationUnit accessor, int charOffset, int length, Uri fileUri);
|
||||||
|
|
||||||
Nullability get nullable;
|
|
||||||
|
|
||||||
Nullability nullableIfTrue(bool isNullable);
|
|
||||||
|
|
||||||
NullabilityBuilder get nullableBuilder;
|
|
||||||
|
|
||||||
NullabilityBuilder get nonNullableBuilder;
|
|
||||||
|
|
||||||
/// Unused in interface; left in on purpose.
|
|
||||||
NullabilityBuilder nullableBuilderIfTrue(bool isNullable);
|
|
||||||
|
|
||||||
/// Returns `true` if [cls] is the 'Function' class defined in [coreLibrary].
|
/// Returns `true` if [cls] is the 'Function' class defined in [coreLibrary].
|
||||||
static bool isFunction(Class cls, LibraryBuilder coreLibrary) {
|
static bool isFunction(Class cls, LibraryBuilder coreLibrary) {
|
||||||
return cls.name == 'Function' && _isCoreClass(cls, coreLibrary);
|
return cls.name == 'Function' && _isCoreClass(cls, coreLibrary);
|
||||||
|
@ -474,33 +455,6 @@ abstract class LibraryBuilderImpl extends ModifierBuilderImpl
|
||||||
void recordAccess(
|
void recordAccess(
|
||||||
CompilationUnit accessor, int charOffset, int length, Uri fileUri) {}
|
CompilationUnit accessor, int charOffset, int length, Uri fileUri) {}
|
||||||
|
|
||||||
@override
|
|
||||||
Nullability get nullable {
|
|
||||||
return Nullability.nullable;
|
|
||||||
}
|
|
||||||
|
|
||||||
@override
|
|
||||||
Nullability nullableIfTrue(bool isNullable) {
|
|
||||||
return isNullable ? Nullability.nullable : Nullability.nonNullable;
|
|
||||||
}
|
|
||||||
|
|
||||||
@override
|
|
||||||
NullabilityBuilder get nullableBuilder {
|
|
||||||
return const NullabilityBuilder.nullable();
|
|
||||||
}
|
|
||||||
|
|
||||||
@override
|
|
||||||
NullabilityBuilder get nonNullableBuilder {
|
|
||||||
return const NullabilityBuilder.omitted();
|
|
||||||
}
|
|
||||||
|
|
||||||
@override
|
|
||||||
NullabilityBuilder nullableBuilderIfTrue(bool isNullable) {
|
|
||||||
return isNullable
|
|
||||||
? const NullabilityBuilder.nullable()
|
|
||||||
: const NullabilityBuilder.omitted();
|
|
||||||
}
|
|
||||||
|
|
||||||
@override
|
@override
|
||||||
StringBuffer printOn(StringBuffer buffer) {
|
StringBuffer printOn(StringBuffer buffer) {
|
||||||
return buffer..write(isPart || isAugmenting ? fileUri : importUri);
|
return buffer..write(isPart || isAugmenting ? fileUri : importUri);
|
||||||
|
|
|
@ -34,7 +34,7 @@ class NeverTypeDeclarationBuilder extends BuiltinTypeDeclarationBuilder {
|
||||||
int charOffset,
|
int charOffset,
|
||||||
ClassHierarchyBase? hierarchy,
|
ClassHierarchyBase? hierarchy,
|
||||||
{required bool hasExplicitTypeArguments}) {
|
{required bool hasExplicitTypeArguments}) {
|
||||||
return type.withDeclaredNullability(nullabilityBuilder.build(library));
|
return type.withDeclaredNullability(nullabilityBuilder.build());
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
|
|
|
@ -4,8 +4,6 @@
|
||||||
|
|
||||||
import 'package:kernel/ast.dart';
|
import 'package:kernel/ast.dart';
|
||||||
|
|
||||||
import 'library_builder.dart';
|
|
||||||
|
|
||||||
/// Represents the nullability modifiers encountered while parsing the types.
|
/// Represents the nullability modifiers encountered while parsing the types.
|
||||||
///
|
///
|
||||||
/// The syntactic nullability needs to be interpreted, that is, built, into the
|
/// The syntactic nullability needs to be interpreted, that is, built, into the
|
||||||
|
@ -48,7 +46,7 @@ class NullabilityBuilder {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Nullability build(LibraryBuilder libraryBuilder) {
|
Nullability build() {
|
||||||
switch (_syntacticNullability) {
|
switch (_syntacticNullability) {
|
||||||
case SyntacticNullability.nullable:
|
case SyntacticNullability.nullable:
|
||||||
return Nullability.nullable;
|
return Nullability.nullable;
|
||||||
|
|
|
@ -256,8 +256,8 @@ abstract class RecordTypeBuilderImpl extends RecordTypeBuilder {
|
||||||
|
|
||||||
// TODO(johnniwinther): Should we create an [InvalidType] if there is <= 1
|
// TODO(johnniwinther): Should we create an [InvalidType] if there is <= 1
|
||||||
// entries?
|
// entries?
|
||||||
return new RecordType(positionalEntries, namedEntries ?? [],
|
return new RecordType(
|
||||||
nullabilityBuilder.build(library));
|
positionalEntries, namedEntries ?? [], nullabilityBuilder.build());
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
|
|
|
@ -182,7 +182,7 @@ abstract class TypeAliasBuilderImpl extends TypeDeclarationBuilderImpl
|
||||||
DartType thisType = buildThisType();
|
DartType thisType = buildThisType();
|
||||||
if (thisType is InvalidType) return thisType;
|
if (thisType is InvalidType) return thisType;
|
||||||
|
|
||||||
Nullability nullability = nullabilityBuilder.build(library);
|
Nullability nullability = nullabilityBuilder.build();
|
||||||
return buildAliasedTypeWithBuiltArguments(
|
return buildAliasedTypeWithBuiltArguments(
|
||||||
library,
|
library,
|
||||||
nullability,
|
nullability,
|
||||||
|
@ -373,7 +373,7 @@ abstract class TypeAliasBuilderImpl extends TypeDeclarationBuilderImpl
|
||||||
if (typeVariables != null)
|
if (typeVariables != null)
|
||||||
for (NominalVariableBuilder typeVariable in typeVariables!)
|
for (NominalVariableBuilder typeVariable in typeVariables!)
|
||||||
new NamedTypeBuilderImpl.fromTypeDeclarationBuilder(
|
new NamedTypeBuilderImpl.fromTypeDeclarationBuilder(
|
||||||
typeVariable, libraryBuilder.nonNullableBuilder,
|
typeVariable, const NullabilityBuilder.omitted(),
|
||||||
arguments: const [],
|
arguments: const [],
|
||||||
fileUri: fileUri,
|
fileUri: fileUri,
|
||||||
charOffset: charOffset,
|
charOffset: charOffset,
|
||||||
|
|
|
@ -366,7 +366,7 @@ class NominalVariableBuilder extends TypeVariableBuilderBase {
|
||||||
nullability = nullabilityFromParameterBound;
|
nullability = nullabilityFromParameterBound;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
nullability = nullabilityBuilder.build(library);
|
nullability = nullabilityBuilder.build();
|
||||||
}
|
}
|
||||||
TypeParameterType type = buildAliasedTypeWithBuiltArguments(
|
TypeParameterType type = buildAliasedTypeWithBuiltArguments(
|
||||||
library, nullability, null, typeUse, fileUri, charOffset,
|
library, nullability, null, typeUse, fileUri, charOffset,
|
||||||
|
@ -403,7 +403,7 @@ class NominalVariableBuilder extends TypeVariableBuilderBase {
|
||||||
if (isAugmenting) return;
|
if (isAugmenting) return;
|
||||||
DartType objectType = object.buildAliasedType(
|
DartType objectType = object.buildAliasedType(
|
||||||
library,
|
library,
|
||||||
library.nullableBuilder,
|
const NullabilityBuilder.nullable(),
|
||||||
/* arguments = */ null,
|
/* arguments = */ null,
|
||||||
TypeUse.typeParameterBound,
|
TypeUse.typeParameterBound,
|
||||||
fileUri ?? missingUri,
|
fileUri ?? missingUri,
|
||||||
|
@ -705,7 +705,7 @@ class StructuralVariableBuilder extends TypeVariableBuilderBase {
|
||||||
StructuralParameterType.computeNullabilityFromBound(parameter);
|
StructuralParameterType.computeNullabilityFromBound(parameter);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
nullability = nullabilityBuilder.build(library);
|
nullability = nullabilityBuilder.build();
|
||||||
}
|
}
|
||||||
StructuralParameterType type = buildAliasedTypeWithBuiltArguments(
|
StructuralParameterType type = buildAliasedTypeWithBuiltArguments(
|
||||||
library, nullability, null, typeUse, fileUri, charOffset,
|
library, nullability, null, typeUse, fileUri, charOffset,
|
||||||
|
@ -753,7 +753,7 @@ class StructuralVariableBuilder extends TypeVariableBuilderBase {
|
||||||
if (isAugmenting) return;
|
if (isAugmenting) return;
|
||||||
DartType objectType = object.buildAliasedType(
|
DartType objectType = object.buildAliasedType(
|
||||||
library,
|
library,
|
||||||
library.nullableBuilder,
|
const NullabilityBuilder.nullable(),
|
||||||
/* arguments = */ null,
|
/* arguments = */ null,
|
||||||
TypeUse.typeParameterBound,
|
TypeUse.typeParameterBound,
|
||||||
fileUri ?? missingUri,
|
fileUri ?? missingUri,
|
||||||
|
|
|
@ -5052,7 +5052,9 @@ class BodyBuilder extends StackListenerImpl
|
||||||
if (prefix is ParserErrorGenerator) {
|
if (prefix is ParserErrorGenerator) {
|
||||||
// An error have already been issued.
|
// An error have already been issued.
|
||||||
push(prefix.buildTypeWithResolvedArgumentsDoNotAddProblem(
|
push(prefix.buildTypeWithResolvedArgumentsDoNotAddProblem(
|
||||||
libraryBuilder.nullableBuilderIfTrue(isMarkedAsNullable)));
|
isMarkedAsNullable
|
||||||
|
? const NullabilityBuilder.nullable()
|
||||||
|
: const NullabilityBuilder.omitted()));
|
||||||
return;
|
return;
|
||||||
} else if (prefix is Generator) {
|
} else if (prefix is Generator) {
|
||||||
name = prefix.qualifiedLookup(suffix);
|
name = prefix.qualifiedLookup(suffix);
|
||||||
|
@ -5065,7 +5067,9 @@ class BodyBuilder extends StackListenerImpl
|
||||||
message, offset, lengthOfSpan(beginToken, suffix), uri);
|
message, offset, lengthOfSpan(beginToken, suffix), uri);
|
||||||
push(new NamedTypeBuilderImpl.forInvalidType(
|
push(new NamedTypeBuilderImpl.forInvalidType(
|
||||||
name,
|
name,
|
||||||
libraryBuilder.nullableBuilderIfTrue(isMarkedAsNullable),
|
isMarkedAsNullable
|
||||||
|
? const NullabilityBuilder.nullable()
|
||||||
|
: const NullabilityBuilder.omitted(),
|
||||||
message.withLocation(
|
message.withLocation(
|
||||||
uri, offset, lengthOfSpan(beginToken, suffix))));
|
uri, offset, lengthOfSpan(beginToken, suffix))));
|
||||||
return;
|
return;
|
||||||
|
@ -5080,7 +5084,10 @@ class BodyBuilder extends StackListenerImpl
|
||||||
allowPotentiallyConstantType = inIsOrAsOperatorType;
|
allowPotentiallyConstantType = inIsOrAsOperatorType;
|
||||||
}
|
}
|
||||||
result = name.buildTypeWithResolvedArguments(
|
result = name.buildTypeWithResolvedArguments(
|
||||||
libraryBuilder.nullableBuilderIfTrue(isMarkedAsNullable), arguments,
|
isMarkedAsNullable
|
||||||
|
? const NullabilityBuilder.nullable()
|
||||||
|
: const NullabilityBuilder.omitted(),
|
||||||
|
arguments,
|
||||||
allowPotentiallyConstantType: allowPotentiallyConstantType,
|
allowPotentiallyConstantType: allowPotentiallyConstantType,
|
||||||
performTypeCanonicalization: constantContext != ConstantContext.none);
|
performTypeCanonicalization: constantContext != ConstantContext.none);
|
||||||
} else if (name is ProblemBuilder) {
|
} else if (name is ProblemBuilder) {
|
||||||
|
@ -5089,7 +5096,9 @@ class BodyBuilder extends StackListenerImpl
|
||||||
name.message, name.charOffset, name.name.length, name.fileUri);
|
name.message, name.charOffset, name.name.length, name.fileUri);
|
||||||
result = new NamedTypeBuilderImpl.forInvalidType(
|
result = new NamedTypeBuilderImpl.forInvalidType(
|
||||||
name.name,
|
name.name,
|
||||||
libraryBuilder.nullableBuilderIfTrue(isMarkedAsNullable),
|
isMarkedAsNullable
|
||||||
|
? const NullabilityBuilder.nullable()
|
||||||
|
: const NullabilityBuilder.omitted(),
|
||||||
name.message
|
name.message
|
||||||
.withLocation(name.fileUri, name.charOffset, name.name.length));
|
.withLocation(name.fileUri, name.charOffset, name.name.length));
|
||||||
} else {
|
} else {
|
||||||
|
@ -5178,8 +5187,8 @@ class BodyBuilder extends StackListenerImpl
|
||||||
positionalFields,
|
positionalFields,
|
||||||
namedFields,
|
namedFields,
|
||||||
questionMark != null
|
questionMark != null
|
||||||
? libraryBuilder.nullableBuilder
|
? const NullabilityBuilder.nullable()
|
||||||
: libraryBuilder.nonNullableBuilder,
|
: const NullabilityBuilder.omitted(),
|
||||||
uri,
|
uri,
|
||||||
leftBracket.charOffset,
|
leftBracket.charOffset,
|
||||||
));
|
));
|
||||||
|
@ -5235,7 +5244,9 @@ class BodyBuilder extends StackListenerImpl
|
||||||
pop() as List<StructuralVariableBuilder>?;
|
pop() as List<StructuralVariableBuilder>?;
|
||||||
TypeBuilder type = formals.toFunctionType(
|
TypeBuilder type = formals.toFunctionType(
|
||||||
returnType ?? const ImplicitTypeBuilder(),
|
returnType ?? const ImplicitTypeBuilder(),
|
||||||
libraryBuilder.nullableBuilderIfTrue(questionMark != null),
|
questionMark != null
|
||||||
|
? const NullabilityBuilder.nullable()
|
||||||
|
: const NullabilityBuilder.omitted(),
|
||||||
structuralVariableBuilders: typeVariables,
|
structuralVariableBuilders: typeVariables,
|
||||||
hasFunctionFormalParameterSyntax: false);
|
hasFunctionFormalParameterSyntax: false);
|
||||||
exitLocalScope();
|
exitLocalScope();
|
||||||
|
@ -5547,7 +5558,9 @@ class BodyBuilder extends StackListenerImpl
|
||||||
pop() as List<StructuralVariableBuilder>?;
|
pop() as List<StructuralVariableBuilder>?;
|
||||||
TypeBuilder type = formals.toFunctionType(
|
TypeBuilder type = formals.toFunctionType(
|
||||||
returnType ?? const ImplicitTypeBuilder(),
|
returnType ?? const ImplicitTypeBuilder(),
|
||||||
libraryBuilder.nullableBuilderIfTrue(question != null),
|
question != null
|
||||||
|
? const NullabilityBuilder.nullable()
|
||||||
|
: const NullabilityBuilder.omitted(),
|
||||||
structuralVariableBuilders: typeVariables,
|
structuralVariableBuilders: typeVariables,
|
||||||
hasFunctionFormalParameterSyntax: true);
|
hasFunctionFormalParameterSyntax: true);
|
||||||
exitLocalScope();
|
exitLocalScope();
|
||||||
|
@ -9297,7 +9310,7 @@ class BodyBuilder extends StackListenerImpl
|
||||||
expression = new Let(
|
expression = new Let(
|
||||||
new VariableDeclaration.forValue(argument,
|
new VariableDeclaration.forValue(argument,
|
||||||
isFinal: true,
|
isFinal: true,
|
||||||
type: coreTypes.objectRawType(libraryBuilder.nullable)),
|
type: coreTypes.objectRawType(Nullability.nullable)),
|
||||||
expression);
|
expression);
|
||||||
}
|
}
|
||||||
return expression;
|
return expression;
|
||||||
|
|
|
@ -3064,7 +3064,7 @@ class TypeUseGenerator extends AbstractReadOnlyAccessGenerator {
|
||||||
offsetForToken(token),
|
offsetForToken(token),
|
||||||
_helper.buildDartType(
|
_helper.buildDartType(
|
||||||
buildTypeWithResolvedArguments(
|
buildTypeWithResolvedArguments(
|
||||||
_helper.libraryBuilder.nonNullableBuilder, typeArguments,
|
const NullabilityBuilder.omitted(), typeArguments,
|
||||||
allowPotentiallyConstantType: true,
|
allowPotentiallyConstantType: true,
|
||||||
performTypeCanonicalization: true),
|
performTypeCanonicalization: true),
|
||||||
TypeUse.typeLiteral,
|
TypeUse.typeLiteral,
|
||||||
|
|
|
@ -118,7 +118,7 @@ class TypeBuilderIdentifier extends IdentifierImpl {
|
||||||
NullabilityBuilder nullabilityBuilder, List<DartType> typeArguments) {
|
NullabilityBuilder nullabilityBuilder, List<DartType> typeArguments) {
|
||||||
return typeBuilder.declaration!.buildAliasedTypeWithBuiltArguments(
|
return typeBuilder.declaration!.buildAliasedTypeWithBuiltArguments(
|
||||||
libraryBuilder,
|
libraryBuilder,
|
||||||
nullabilityBuilder.build(libraryBuilder),
|
nullabilityBuilder.build(),
|
||||||
typeArguments,
|
typeArguments,
|
||||||
TypeUse.macroTypeArgument,
|
TypeUse.macroTypeArgument,
|
||||||
// TODO(johnniwinther): How should handle malbounded types here? Should
|
// TODO(johnniwinther): How should handle malbounded types here? Should
|
||||||
|
@ -180,7 +180,7 @@ class TypeDeclarationBuilderIdentifier extends IdentifierImpl {
|
||||||
NullabilityBuilder nullabilityBuilder, List<DartType> typeArguments) {
|
NullabilityBuilder nullabilityBuilder, List<DartType> typeArguments) {
|
||||||
return typeDeclarationBuilder.buildAliasedTypeWithBuiltArguments(
|
return typeDeclarationBuilder.buildAliasedTypeWithBuiltArguments(
|
||||||
libraryBuilder,
|
libraryBuilder,
|
||||||
nullabilityBuilder.build(libraryBuilder),
|
nullabilityBuilder.build(),
|
||||||
// TODO(johnniwinther): How should handle malbounded types here? Should
|
// TODO(johnniwinther): How should handle malbounded types here? Should
|
||||||
// we report an error on the annotation?
|
// we report an error on the annotation?
|
||||||
typeArguments,
|
typeArguments,
|
||||||
|
|
|
@ -1327,8 +1327,7 @@ class OutlineBuilder extends StackListenerImpl {
|
||||||
|
|
||||||
String classNameForErrors = identifier.name;
|
String classNameForErrors = identifier.name;
|
||||||
if (supertype != null) {
|
if (supertype != null) {
|
||||||
if (supertype.nullabilityBuilder.build(libraryBuilder) ==
|
if (supertype.nullabilityBuilder.build() == Nullability.nullable) {
|
||||||
Nullability.nullable) {
|
|
||||||
libraryBuilder.addProblem(
|
libraryBuilder.addProblem(
|
||||||
templateNullableSuperclassError
|
templateNullableSuperclassError
|
||||||
.withArguments(supertype.fullNameForErrors),
|
.withArguments(supertype.fullNameForErrors),
|
||||||
|
@ -1340,8 +1339,7 @@ class OutlineBuilder extends StackListenerImpl {
|
||||||
if (mixinApplication != null) {
|
if (mixinApplication != null) {
|
||||||
List<TypeBuilder>? mixins = mixinApplication.mixins;
|
List<TypeBuilder>? mixins = mixinApplication.mixins;
|
||||||
for (TypeBuilder mixin in mixins) {
|
for (TypeBuilder mixin in mixins) {
|
||||||
if (mixin.nullabilityBuilder.build(libraryBuilder) ==
|
if (mixin.nullabilityBuilder.build() == Nullability.nullable) {
|
||||||
Nullability.nullable) {
|
|
||||||
libraryBuilder.addProblem(
|
libraryBuilder.addProblem(
|
||||||
templateNullableMixinError
|
templateNullableMixinError
|
||||||
.withArguments(mixin.fullNameForErrors),
|
.withArguments(mixin.fullNameForErrors),
|
||||||
|
@ -1353,8 +1351,7 @@ class OutlineBuilder extends StackListenerImpl {
|
||||||
}
|
}
|
||||||
if (interfaces != null) {
|
if (interfaces != null) {
|
||||||
for (TypeBuilder interface in interfaces) {
|
for (TypeBuilder interface in interfaces) {
|
||||||
if (interface.nullabilityBuilder.build(libraryBuilder) ==
|
if (interface.nullabilityBuilder.build() == Nullability.nullable) {
|
||||||
Nullability.nullable) {
|
|
||||||
libraryBuilder.addProblem(
|
libraryBuilder.addProblem(
|
||||||
templateNullableInterfaceError
|
templateNullableInterfaceError
|
||||||
.withArguments(interface.fullNameForErrors),
|
.withArguments(interface.fullNameForErrors),
|
||||||
|
@ -1437,8 +1434,7 @@ class OutlineBuilder extends StackListenerImpl {
|
||||||
String classNameForErrors = identifier.name;
|
String classNameForErrors = identifier.name;
|
||||||
if (supertypeConstraints != null) {
|
if (supertypeConstraints != null) {
|
||||||
for (TypeBuilder supertype in supertypeConstraints) {
|
for (TypeBuilder supertype in supertypeConstraints) {
|
||||||
if (supertype.nullabilityBuilder.build(libraryBuilder) ==
|
if (supertype.nullabilityBuilder.build() == Nullability.nullable) {
|
||||||
Nullability.nullable) {
|
|
||||||
libraryBuilder.addProblem(
|
libraryBuilder.addProblem(
|
||||||
templateNullableSuperclassError
|
templateNullableSuperclassError
|
||||||
.withArguments(supertype.fullNameForErrors),
|
.withArguments(supertype.fullNameForErrors),
|
||||||
|
@ -1450,8 +1446,7 @@ class OutlineBuilder extends StackListenerImpl {
|
||||||
}
|
}
|
||||||
if (interfaces != null) {
|
if (interfaces != null) {
|
||||||
for (TypeBuilder interface in interfaces) {
|
for (TypeBuilder interface in interfaces) {
|
||||||
if (interface.nullabilityBuilder.build(libraryBuilder) ==
|
if (interface.nullabilityBuilder.build() == Nullability.nullable) {
|
||||||
Nullability.nullable) {
|
|
||||||
libraryBuilder.addProblem(
|
libraryBuilder.addProblem(
|
||||||
templateNullableInterfaceError
|
templateNullableInterfaceError
|
||||||
.withArguments(interface.fullNameForErrors),
|
.withArguments(interface.fullNameForErrors),
|
||||||
|
@ -2515,8 +2510,7 @@ class OutlineBuilder extends StackListenerImpl {
|
||||||
mixinApplication as MixinApplicationBuilder;
|
mixinApplication as MixinApplicationBuilder;
|
||||||
List<TypeBuilder> mixins = mixinApplicationBuilder.mixins;
|
List<TypeBuilder> mixins = mixinApplicationBuilder.mixins;
|
||||||
if (supertype is TypeBuilder && supertype is! MixinApplicationBuilder) {
|
if (supertype is TypeBuilder && supertype is! MixinApplicationBuilder) {
|
||||||
if (supertype.nullabilityBuilder.build(libraryBuilder) ==
|
if (supertype.nullabilityBuilder.build() == Nullability.nullable) {
|
||||||
Nullability.nullable) {
|
|
||||||
libraryBuilder.addProblem(
|
libraryBuilder.addProblem(
|
||||||
templateNullableSuperclassError
|
templateNullableSuperclassError
|
||||||
.withArguments(supertype.fullNameForErrors),
|
.withArguments(supertype.fullNameForErrors),
|
||||||
|
@ -2526,8 +2520,7 @@ class OutlineBuilder extends StackListenerImpl {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
for (TypeBuilder mixin in mixins) {
|
for (TypeBuilder mixin in mixins) {
|
||||||
if (mixin.nullabilityBuilder.build(libraryBuilder) ==
|
if (mixin.nullabilityBuilder.build() == Nullability.nullable) {
|
||||||
Nullability.nullable) {
|
|
||||||
libraryBuilder.addProblem(
|
libraryBuilder.addProblem(
|
||||||
templateNullableMixinError.withArguments(mixin.fullNameForErrors),
|
templateNullableMixinError.withArguments(mixin.fullNameForErrors),
|
||||||
identifier.nameOffset,
|
identifier.nameOffset,
|
||||||
|
@ -2537,8 +2530,7 @@ class OutlineBuilder extends StackListenerImpl {
|
||||||
}
|
}
|
||||||
if (interfaces != null) {
|
if (interfaces != null) {
|
||||||
for (TypeBuilder interface in interfaces) {
|
for (TypeBuilder interface in interfaces) {
|
||||||
if (interface.nullabilityBuilder.build(libraryBuilder) ==
|
if (interface.nullabilityBuilder.build() == Nullability.nullable) {
|
||||||
Nullability.nullable) {
|
|
||||||
libraryBuilder.addProblem(
|
libraryBuilder.addProblem(
|
||||||
templateNullableInterfaceError
|
templateNullableInterfaceError
|
||||||
.withArguments(interface.fullNameForErrors),
|
.withArguments(interface.fullNameForErrors),
|
||||||
|
@ -2622,7 +2614,9 @@ class OutlineBuilder extends StackListenerImpl {
|
||||||
Identifier identifier = name as Identifier;
|
Identifier identifier = name as Identifier;
|
||||||
push(libraryBuilder.addNamedType(
|
push(libraryBuilder.addNamedType(
|
||||||
identifier.typeName,
|
identifier.typeName,
|
||||||
libraryBuilder.nullableBuilderIfTrue(isMarkedAsNullable),
|
isMarkedAsNullable
|
||||||
|
? const NullabilityBuilder.nullable()
|
||||||
|
: const NullabilityBuilder.omitted(),
|
||||||
arguments,
|
arguments,
|
||||||
identifier.qualifierOffset,
|
identifier.qualifierOffset,
|
||||||
instanceTypeVariableAccess:
|
instanceTypeVariableAccess:
|
||||||
|
@ -3059,8 +3053,7 @@ class OutlineBuilder extends StackListenerImpl {
|
||||||
}
|
}
|
||||||
if (interfaces != null) {
|
if (interfaces != null) {
|
||||||
for (TypeBuilder interface in interfaces) {
|
for (TypeBuilder interface in interfaces) {
|
||||||
if (interface.nullabilityBuilder.build(libraryBuilder) ==
|
if (interface.nullabilityBuilder.build() == Nullability.nullable) {
|
||||||
Nullability.nullable) {
|
|
||||||
libraryBuilder.addProblem(
|
libraryBuilder.addProblem(
|
||||||
templateNullableInterfaceError
|
templateNullableInterfaceError
|
||||||
.withArguments(interface.fullNameForErrors),
|
.withArguments(interface.fullNameForErrors),
|
||||||
|
@ -3150,8 +3143,8 @@ class OutlineBuilder extends StackListenerImpl {
|
||||||
positionalFields,
|
positionalFields,
|
||||||
namedFields,
|
namedFields,
|
||||||
questionMark != null
|
questionMark != null
|
||||||
? libraryBuilder.nullableBuilder
|
? const NullabilityBuilder.nullable()
|
||||||
: libraryBuilder.nonNullableBuilder,
|
: const NullabilityBuilder.omitted(),
|
||||||
uri,
|
uri,
|
||||||
leftBracket.charOffset,
|
leftBracket.charOffset,
|
||||||
));
|
));
|
||||||
|
@ -3208,7 +3201,9 @@ class OutlineBuilder extends StackListenerImpl {
|
||||||
returnType ?? const ImplicitTypeBuilder(),
|
returnType ?? const ImplicitTypeBuilder(),
|
||||||
typeVariables,
|
typeVariables,
|
||||||
formals,
|
formals,
|
||||||
libraryBuilder.nullableBuilderIfTrue(questionMark != null),
|
questionMark != null
|
||||||
|
? const NullabilityBuilder.nullable()
|
||||||
|
: const NullabilityBuilder.omitted(),
|
||||||
uri,
|
uri,
|
||||||
functionToken.charOffset,
|
functionToken.charOffset,
|
||||||
hasFunctionFormalParameterSyntax: false));
|
hasFunctionFormalParameterSyntax: false));
|
||||||
|
@ -3227,7 +3222,9 @@ class OutlineBuilder extends StackListenerImpl {
|
||||||
returnType ?? const ImplicitTypeBuilder(),
|
returnType ?? const ImplicitTypeBuilder(),
|
||||||
typeVariables,
|
typeVariables,
|
||||||
formals,
|
formals,
|
||||||
libraryBuilder.nullableBuilderIfTrue(question != null),
|
question != null
|
||||||
|
? const NullabilityBuilder.nullable()
|
||||||
|
: const NullabilityBuilder.omitted(),
|
||||||
uri,
|
uri,
|
||||||
formalsOffset,
|
formalsOffset,
|
||||||
hasFunctionFormalParameterSyntax: true));
|
hasFunctionFormalParameterSyntax: true));
|
||||||
|
@ -3311,8 +3308,7 @@ class OutlineBuilder extends StackListenerImpl {
|
||||||
identifier = name as Identifier;
|
identifier = name as Identifier;
|
||||||
if (type is FunctionTypeBuilder &&
|
if (type is FunctionTypeBuilder &&
|
||||||
!libraryFeatures.nonfunctionTypeAliases.isEnabled) {
|
!libraryFeatures.nonfunctionTypeAliases.isEnabled) {
|
||||||
if (type.nullabilityBuilder.build(libraryBuilder) ==
|
if (type.nullabilityBuilder.build() == Nullability.nullable) {
|
||||||
Nullability.nullable) {
|
|
||||||
// The error is reported when the non-nullable experiment is enabled.
|
// The error is reported when the non-nullable experiment is enabled.
|
||||||
// Otherwise, the attempt to use a nullable type will be reported
|
// Otherwise, the attempt to use a nullable type will be reported
|
||||||
// elsewhere.
|
// elsewhere.
|
||||||
|
|
|
@ -2194,7 +2194,9 @@ class InferenceVisitorImpl extends InferenceVisitorBase
|
||||||
element.expression,
|
element.expression,
|
||||||
new InterfaceType(
|
new InterfaceType(
|
||||||
coreTypes.iterableClass,
|
coreTypes.iterableClass,
|
||||||
libraryBuilder.nullableIfTrue(element.isNullAware),
|
element.isNullAware
|
||||||
|
? Nullability.nullable
|
||||||
|
: Nullability.nonNullable,
|
||||||
<DartType>[inferredTypeArgument]),
|
<DartType>[inferredTypeArgument]),
|
||||||
isVoidAllowed: true);
|
isVoidAllowed: true);
|
||||||
element.expression = spreadResult.expression..parent = element;
|
element.expression = spreadResult.expression..parent = element;
|
||||||
|
@ -2601,8 +2603,9 @@ class InferenceVisitorImpl extends InferenceVisitorBase
|
||||||
DartType? spreadType = inferredSpreadTypes[item.expression];
|
DartType? spreadType = inferredSpreadTypes[item.expression];
|
||||||
if (spreadType is DynamicType) {
|
if (spreadType is DynamicType) {
|
||||||
Expression expression = ensureAssignable(
|
Expression expression = ensureAssignable(
|
||||||
coreTypes.iterableRawType(
|
coreTypes.iterableRawType(item.isNullAware
|
||||||
libraryBuilder.nullableIfTrue(item.isNullAware)),
|
? Nullability.nullable
|
||||||
|
: Nullability.nonNullable),
|
||||||
spreadType,
|
spreadType,
|
||||||
item.expression);
|
item.expression);
|
||||||
item.expression = expression..parent = item;
|
item.expression = expression..parent = item;
|
||||||
|
@ -3032,7 +3035,7 @@ class InferenceVisitorImpl extends InferenceVisitorBase
|
||||||
temp = _createVariable(
|
temp = _createVariable(
|
||||||
value,
|
value,
|
||||||
typeSchemaEnvironment.iterableType(
|
typeSchemaEnvironment.iterableType(
|
||||||
elementType, libraryBuilder.nullable));
|
elementType, Nullability.nullable));
|
||||||
body.add(temp);
|
body.add(temp);
|
||||||
value = _createNullCheckedVariableGet(temp);
|
value = _createNullCheckedVariableGet(temp);
|
||||||
}
|
}
|
||||||
|
@ -3059,7 +3062,7 @@ class InferenceVisitorImpl extends InferenceVisitorBase
|
||||||
temp = _createVariable(
|
temp = _createVariable(
|
||||||
value,
|
value,
|
||||||
typeSchemaEnvironment.iterableType(
|
typeSchemaEnvironment.iterableType(
|
||||||
const DynamicType(), libraryBuilder.nullable));
|
const DynamicType(), Nullability.nullable));
|
||||||
body.add(temp);
|
body.add(temp);
|
||||||
value = _createNullCheckedVariableGet(temp);
|
value = _createNullCheckedVariableGet(temp);
|
||||||
}
|
}
|
||||||
|
@ -3382,7 +3385,7 @@ class InferenceVisitorImpl extends InferenceVisitorBase
|
||||||
temp = _createVariable(
|
temp = _createVariable(
|
||||||
value,
|
value,
|
||||||
typeSchemaEnvironment.mapType(
|
typeSchemaEnvironment.mapType(
|
||||||
keyType, valueType, libraryBuilder.nullable));
|
keyType, valueType, Nullability.nullable));
|
||||||
body.add(temp);
|
body.add(temp);
|
||||||
value = _createNullCheckedVariableGet(temp);
|
value = _createNullCheckedVariableGet(temp);
|
||||||
}
|
}
|
||||||
|
@ -3408,7 +3411,7 @@ class InferenceVisitorImpl extends InferenceVisitorBase
|
||||||
temp = _createVariable(
|
temp = _createVariable(
|
||||||
value,
|
value,
|
||||||
typeSchemaEnvironment.mapType(const DynamicType(),
|
typeSchemaEnvironment.mapType(const DynamicType(),
|
||||||
const DynamicType(), libraryBuilder.nullable));
|
const DynamicType(), Nullability.nullable));
|
||||||
body.add(temp);
|
body.add(temp);
|
||||||
value = _createNullCheckedVariableGet(temp);
|
value = _createNullCheckedVariableGet(temp);
|
||||||
}
|
}
|
||||||
|
@ -3510,7 +3513,7 @@ class InferenceVisitorImpl extends InferenceVisitorBase
|
||||||
VariableDeclaration temp = _createVariable(
|
VariableDeclaration temp = _createVariable(
|
||||||
spreadExpression,
|
spreadExpression,
|
||||||
typeSchemaEnvironment.iterableType(
|
typeSchemaEnvironment.iterableType(
|
||||||
elementType, libraryBuilder.nullable));
|
elementType, Nullability.nullable));
|
||||||
parts.add(_createNullAwareGuard(element.fileOffset, temp,
|
parts.add(_createNullAwareGuard(element.fileOffset, temp,
|
||||||
makeLiteral(element.fileOffset, []), iterableType));
|
makeLiteral(element.fileOffset, []), iterableType));
|
||||||
} else {
|
} else {
|
||||||
|
@ -3584,7 +3587,7 @@ class InferenceVisitorImpl extends InferenceVisitorBase
|
||||||
Expression spreadExpression = entry.expression;
|
Expression spreadExpression = entry.expression;
|
||||||
if (entry.isNullAware) {
|
if (entry.isNullAware) {
|
||||||
VariableDeclaration temp = _createVariable(spreadExpression,
|
VariableDeclaration temp = _createVariable(spreadExpression,
|
||||||
collectionType.withDeclaredNullability(libraryBuilder.nullable));
|
collectionType.withDeclaredNullability(Nullability.nullable));
|
||||||
parts.add(_createNullAwareGuard(entry.fileOffset, temp,
|
parts.add(_createNullAwareGuard(entry.fileOffset, temp,
|
||||||
makeLiteral(entry.fileOffset, []), collectionType));
|
makeLiteral(entry.fileOffset, []), collectionType));
|
||||||
} else {
|
} else {
|
||||||
|
@ -4045,11 +4048,11 @@ class InferenceVisitorImpl extends InferenceVisitorBase
|
||||||
|
|
||||||
bool isMap = typeSchemaEnvironment.isSubtypeOf(
|
bool isMap = typeSchemaEnvironment.isSubtypeOf(
|
||||||
spreadType,
|
spreadType,
|
||||||
coreTypes.mapRawType(libraryBuilder.nullable),
|
coreTypes.mapRawType(Nullability.nullable),
|
||||||
SubtypeCheckMode.withNullabilities);
|
SubtypeCheckMode.withNullabilities);
|
||||||
bool isIterable = typeSchemaEnvironment.isSubtypeOf(
|
bool isIterable = typeSchemaEnvironment.isSubtypeOf(
|
||||||
spreadType,
|
spreadType,
|
||||||
coreTypes.iterableRawType(libraryBuilder.nullable),
|
coreTypes.iterableRawType(Nullability.nullable),
|
||||||
SubtypeCheckMode.withNullabilities);
|
SubtypeCheckMode.withNullabilities);
|
||||||
if (isMap && !isIterable) {
|
if (isMap && !isIterable) {
|
||||||
offsets.mapSpreadOffset = entry.fileOffset;
|
offsets.mapSpreadOffset = entry.fileOffset;
|
||||||
|
@ -4530,8 +4533,9 @@ class InferenceVisitorImpl extends InferenceVisitorBase
|
||||||
DartType? spreadType = inferredSpreadTypes[entry.expression];
|
DartType? spreadType = inferredSpreadTypes[entry.expression];
|
||||||
if (spreadType is DynamicType) {
|
if (spreadType is DynamicType) {
|
||||||
Expression expression = ensureAssignable(
|
Expression expression = ensureAssignable(
|
||||||
coreTypes
|
coreTypes.mapRawType(entry.isNullAware
|
||||||
.mapRawType(libraryBuilder.nullableIfTrue(entry.isNullAware)),
|
? Nullability.nullable
|
||||||
|
: Nullability.nonNullable),
|
||||||
spreadType,
|
spreadType,
|
||||||
entry.expression);
|
entry.expression);
|
||||||
entry.expression = expression..parent = entry;
|
entry.expression = expression..parent = entry;
|
||||||
|
@ -6072,7 +6076,7 @@ class InferenceVisitorImpl extends InferenceVisitorBase
|
||||||
DartType rightType =
|
DartType rightType =
|
||||||
operations.getNullableType(equalsTarget.getBinaryOperandType(this));
|
operations.getNullableType(equalsTarget.getBinaryOperandType(this));
|
||||||
DartType contextType =
|
DartType contextType =
|
||||||
rightType.withDeclaredNullability(libraryBuilder.nullable);
|
rightType.withDeclaredNullability(Nullability.nullable);
|
||||||
rightResult = ensureAssignableResult(contextType, rightResult,
|
rightResult = ensureAssignableResult(contextType, rightResult,
|
||||||
errorTemplate: templateArgumentTypeNotAssignable,
|
errorTemplate: templateArgumentTypeNotAssignable,
|
||||||
nullabilityErrorTemplate: templateArgumentTypeNotAssignableNullability,
|
nullabilityErrorTemplate: templateArgumentTypeNotAssignableNullability,
|
||||||
|
@ -8986,7 +8990,7 @@ class InferenceVisitorImpl extends InferenceVisitorBase
|
||||||
CheckLibraryIsLoaded node, DartType typeContext) {
|
CheckLibraryIsLoaded node, DartType typeContext) {
|
||||||
// TODO(cstefantsova): Figure out the suitable nullability for that.
|
// TODO(cstefantsova): Figure out the suitable nullability for that.
|
||||||
return new ExpressionInferenceResult(
|
return new ExpressionInferenceResult(
|
||||||
coreTypes.objectRawType(libraryBuilder.nullable), node);
|
coreTypes.objectRawType(Nullability.nullable), node);
|
||||||
}
|
}
|
||||||
|
|
||||||
ExpressionInferenceResult visitEquals(
|
ExpressionInferenceResult visitEquals(
|
||||||
|
|
|
@ -2097,7 +2097,7 @@ abstract class InferenceVisitorBase implements InferenceVisitor {
|
||||||
formalTypesFromContext[i]!);
|
formalTypesFromContext[i]!);
|
||||||
if (typeSchemaEnvironment.isSubtypeOf(inferredType, const NullType(),
|
if (typeSchemaEnvironment.isSubtypeOf(inferredType, const NullType(),
|
||||||
SubtypeCheckMode.withNullabilities)) {
|
SubtypeCheckMode.withNullabilities)) {
|
||||||
inferredType = coreTypes.objectRawType(libraryBuilder.nullable);
|
inferredType = coreTypes.objectRawType(Nullability.nullable);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
inferredType = const DynamicType();
|
inferredType = const DynamicType();
|
||||||
|
@ -3381,7 +3381,7 @@ abstract class InferenceVisitorBase implements InferenceVisitor {
|
||||||
// operator == always allows nullable arguments.
|
// operator == always allows nullable arguments.
|
||||||
functionType = new FunctionType([
|
functionType = new FunctionType([
|
||||||
functionType.positionalParameters.single
|
functionType.positionalParameters.single
|
||||||
.withDeclaredNullability(libraryBuilder.nullable)
|
.withDeclaredNullability(Nullability.nullable)
|
||||||
], functionType.returnType, functionType.declaredNullability);
|
], functionType.returnType, functionType.declaredNullability);
|
||||||
}
|
}
|
||||||
InvocationInferenceResult result = inferInvocation(
|
InvocationInferenceResult result = inferInvocation(
|
||||||
|
|
|
@ -185,9 +185,9 @@ const Map<String, ({int hitCount, int missCount})> _expect = {
|
||||||
hitCount: 17,
|
hitCount: 17,
|
||||||
missCount: 3,
|
missCount: 3,
|
||||||
),
|
),
|
||||||
// 80.85106382978722%.
|
// 79.7752808988764%.
|
||||||
"package:front_end/src/fasta/builder/library_builder.dart": (
|
"package:front_end/src/fasta/builder/library_builder.dart": (
|
||||||
hitCount: 76,
|
hitCount: 71,
|
||||||
missCount: 18,
|
missCount: 18,
|
||||||
),
|
),
|
||||||
// 97.38562091503267%.
|
// 97.38562091503267%.
|
||||||
|
@ -250,9 +250,9 @@ const Map<String, ({int hitCount, int missCount})> _expect = {
|
||||||
hitCount: 151,
|
hitCount: 151,
|
||||||
missCount: 44,
|
missCount: 44,
|
||||||
),
|
),
|
||||||
// 78.99159663865547%.
|
// 78.8135593220339%.
|
||||||
"package:front_end/src/fasta/builder/type_alias_builder.dart": (
|
"package:front_end/src/fasta/builder/type_alias_builder.dart": (
|
||||||
hitCount: 188,
|
hitCount: 186,
|
||||||
missCount: 50,
|
missCount: 50,
|
||||||
),
|
),
|
||||||
// 77.77777777777779%.
|
// 77.77777777777779%.
|
||||||
|
@ -265,9 +265,9 @@ const Map<String, ({int hitCount, int missCount})> _expect = {
|
||||||
hitCount: 9,
|
hitCount: 9,
|
||||||
missCount: 1,
|
missCount: 1,
|
||||||
),
|
),
|
||||||
// 78.42227378190255%.
|
// 78.32167832167832%.
|
||||||
"package:front_end/src/fasta/builder/type_variable_builder.dart": (
|
"package:front_end/src/fasta/builder/type_variable_builder.dart": (
|
||||||
hitCount: 338,
|
hitCount: 336,
|
||||||
missCount: 93,
|
missCount: 93,
|
||||||
),
|
),
|
||||||
// 100.0%.
|
// 100.0%.
|
||||||
|
@ -421,9 +421,9 @@ const Map<String, ({int hitCount, int missCount})> _expect = {
|
||||||
hitCount: 0,
|
hitCount: 0,
|
||||||
missCount: 128,
|
missCount: 128,
|
||||||
),
|
),
|
||||||
// 91.26941617568292%.
|
// 91.24832214765101%.
|
||||||
"package:front_end/src/fasta/kernel/body_builder.dart": (
|
"package:front_end/src/fasta/kernel/body_builder.dart": (
|
||||||
hitCount: 6816,
|
hitCount: 6798,
|
||||||
missCount: 652,
|
missCount: 652,
|
||||||
),
|
),
|
||||||
// 70.40816326530613%.
|
// 70.40816326530613%.
|
||||||
|
@ -471,9 +471,9 @@ const Map<String, ({int hitCount, int missCount})> _expect = {
|
||||||
hitCount: 478,
|
hitCount: 478,
|
||||||
missCount: 163,
|
missCount: 163,
|
||||||
),
|
),
|
||||||
// 79.56411876184461%.
|
// 79.54473601011698%.
|
||||||
"package:front_end/src/fasta/kernel/expression_generator.dart": (
|
"package:front_end/src/fasta/kernel/expression_generator.dart": (
|
||||||
hitCount: 2519,
|
hitCount: 2516,
|
||||||
missCount: 647,
|
missCount: 647,
|
||||||
),
|
),
|
||||||
// 100.0%.
|
// 100.0%.
|
||||||
|
@ -589,7 +589,7 @@ const Map<String, ({int hitCount, int missCount})> _expect = {
|
||||||
// 0.0%.
|
// 0.0%.
|
||||||
"package:front_end/src/fasta/kernel/macro/identifiers.dart": (
|
"package:front_end/src/fasta/kernel/macro/identifiers.dart": (
|
||||||
hitCount: 0,
|
hitCount: 0,
|
||||||
missCount: 134,
|
missCount: 132,
|
||||||
),
|
),
|
||||||
// 0.0%.
|
// 0.0%.
|
||||||
"package:front_end/src/fasta/kernel/macro/introspectors.dart": (
|
"package:front_end/src/fasta/kernel/macro/introspectors.dart": (
|
||||||
|
@ -706,9 +706,9 @@ const Map<String, ({int hitCount, int missCount})> _expect = {
|
||||||
hitCount: 118,
|
hitCount: 118,
|
||||||
missCount: 6,
|
missCount: 6,
|
||||||
),
|
),
|
||||||
// 91.45299145299145%.
|
// 91.38284776364382%.
|
||||||
"package:front_end/src/fasta/source/outline_builder.dart": (
|
"package:front_end/src/fasta/source/outline_builder.dart": (
|
||||||
hitCount: 2247,
|
hitCount: 2227,
|
||||||
missCount: 210,
|
missCount: 210,
|
||||||
),
|
),
|
||||||
// 94.44444444444444%.
|
// 94.44444444444444%.
|
||||||
|
@ -827,14 +827,14 @@ const Map<String, ({int hitCount, int missCount})> _expect = {
|
||||||
hitCount: 166,
|
hitCount: 166,
|
||||||
missCount: 29,
|
missCount: 29,
|
||||||
),
|
),
|
||||||
// 90.25658807212206%.
|
// 90.25040575005796%.
|
||||||
"package:front_end/src/fasta/type_inference/inference_visitor.dart": (
|
"package:front_end/src/fasta/type_inference/inference_visitor.dart": (
|
||||||
hitCount: 7809,
|
hitCount: 7785,
|
||||||
missCount: 843,
|
missCount: 841,
|
||||||
),
|
),
|
||||||
// 84.56303724928367%.
|
// 84.54088952654233%.
|
||||||
"package:front_end/src/fasta/type_inference/inference_visitor_base.dart": (
|
"package:front_end/src/fasta/type_inference/inference_visitor_base.dart": (
|
||||||
hitCount: 2361,
|
hitCount: 2357,
|
||||||
missCount: 431,
|
missCount: 431,
|
||||||
),
|
),
|
||||||
// 80.26509572901325%.
|
// 80.26509572901325%.
|
||||||
|
|
Loading…
Reference in a new issue