diff --git a/pkg/compiler/lib/src/inferrer/type_graph_inferrer.dart b/pkg/compiler/lib/src/inferrer/type_graph_inferrer.dart index 2daea5b5b45..f530c3c05e6 100644 --- a/pkg/compiler/lib/src/inferrer/type_graph_inferrer.dart +++ b/pkg/compiler/lib/src/inferrer/type_graph_inferrer.dart @@ -2,8 +2,6 @@ // for details. All rights reserved. Use of this source code is governed by a // BSD-style license that can be found in the LICENSE file. -// @dart = 2.10 - library type_graph_inferrer; import 'package:kernel/ast.dart' as ir; @@ -13,8 +11,8 @@ import '../compiler_interfaces.dart'; import '../elements/entities.dart'; import '../js_backend/inferred_data.dart'; import '../js_model/elements.dart' show JClosureCallMethod; +import '../js_model/js_world.dart'; import '../js_model/locals.dart'; -import '../world.dart'; import 'abstract_value_domain.dart'; import 'engine.dart'; import 'engine.dart' as engine; @@ -22,8 +20,8 @@ import 'type_graph_nodes.dart'; import 'types.dart'; class TypeGraphInferrer implements TypesInferrer { - InferrerEngine inferrer; - final JClosedWorld closedWorld; + late InferrerEngine inferrer; + final JsClosedWorld closedWorld; final CompilerInferrerFacade _compiler; final GlobalLocalsMap _globalLocalsMap; @@ -61,7 +59,7 @@ class TypeGraphInferrer implements TypesInferrer { _inferredDataBuilder); } - Iterable /*?*/ getCallersOfForTesting(MemberEntity element) { + Iterable? getCallersOfForTesting(MemberEntity element) { return inferrer.getCallersOfForTesting(element); } @@ -74,12 +72,11 @@ class TypeGraphInferrer implements TypesInferrer { void createMemberResults( MemberEntity member, MemberTypeInformation typeInformation) { - GlobalTypeInferenceElementData data = - inferrer.dataOfMember(member).compress(); + final data = inferrer.dataOfMember(member).compress(); bool isJsInterop = closedWorld.nativeData.isJsInteropMember(member); - AbstractValue returnType; - AbstractValue type; + late AbstractValue returnType; + AbstractValue? type; if (isJsInterop) { returnType = type = abstractValueDomain.dynamicType; @@ -93,8 +90,7 @@ class TypeGraphInferrer implements TypesInferrer { bool throwsAlways = // Always throws if the return type was inferred to be non-null empty. - returnType != null && - abstractValueDomain.isEmpty(returnType).isDefinitelyTrue; + abstractValueDomain.isEmpty(returnType).isDefinitelyTrue; bool isCalledOnce = typeInformation.isCalledOnce(); @@ -108,8 +104,8 @@ class TypeGraphInferrer implements TypesInferrer { (MemberEntity member, MemberTypeInformation typeInformation) { createMemberResults(member, typeInformation); if (member is JClosureCallMethod) { - ClosureRepresentationInfo info = - closedWorld.closureDataLookup.getScopeInfo(member); + final info = closedWorld.closureDataLookup.getScopeInfo(member) + as ClosureRepresentationInfo; info.forEachFreeVariable(_globalLocalsMap.getLocalsMap(member), (Local from, FieldEntity to) { freeVariables.add(to); diff --git a/pkg/compiler/lib/src/inferrer_experimental/type_graph_inferrer.dart b/pkg/compiler/lib/src/inferrer_experimental/type_graph_inferrer.dart index 53f2d16691f..4adf28c418d 100644 --- a/pkg/compiler/lib/src/inferrer_experimental/type_graph_inferrer.dart +++ b/pkg/compiler/lib/src/inferrer_experimental/type_graph_inferrer.dart @@ -2,8 +2,6 @@ // for details. All rights reserved. Use of this source code is governed by a // BSD-style license that can be found in the LICENSE file. -// @dart = 2.10 - library type_graph_inferrer; import 'package:kernel/ast.dart' as ir; @@ -13,8 +11,8 @@ import '../compiler_interfaces.dart'; import '../elements/entities.dart'; import '../js_backend/inferred_data.dart'; import '../js_model/elements.dart' show JClosureCallMethod; +import '../js_model/js_world.dart'; import '../js_model/locals.dart'; -import '../world.dart'; import '../inferrer/abstract_value_domain.dart'; import 'engine.dart'; import 'engine.dart' as engine; @@ -22,8 +20,8 @@ import 'type_graph_nodes.dart'; import 'types.dart'; class TypeGraphInferrer implements TypesInferrer { - InferrerEngine inferrer; - final JClosedWorld closedWorld; + late InferrerEngine inferrer; + final JsClosedWorld closedWorld; final CompilerInferrerFacade _compiler; final GlobalLocalsMap _globalLocalsMap; @@ -61,7 +59,7 @@ class TypeGraphInferrer implements TypesInferrer { _inferredDataBuilder); } - Iterable /*?*/ getCallersOfForTesting(MemberEntity element) { + Iterable? getCallersOfForTesting(MemberEntity element) { return inferrer.getCallersOfForTesting(element); } @@ -74,12 +72,11 @@ class TypeGraphInferrer implements TypesInferrer { void createMemberResults( MemberEntity member, MemberTypeInformation typeInformation) { - GlobalTypeInferenceElementData data = - inferrer.dataOfMember(member).compress(); + final data = inferrer.dataOfMember(member).compress(); bool isJsInterop = closedWorld.nativeData.isJsInteropMember(member); - AbstractValue returnType; - AbstractValue type; + late AbstractValue returnType; + AbstractValue? type; if (isJsInterop) { returnType = type = abstractValueDomain.dynamicType; @@ -93,8 +90,7 @@ class TypeGraphInferrer implements TypesInferrer { bool throwsAlways = // Always throws if the return type was inferred to be non-null empty. - returnType != null && - abstractValueDomain.isEmpty(returnType).isDefinitelyTrue; + abstractValueDomain.isEmpty(returnType).isDefinitelyTrue; bool isCalledOnce = typeInformation.isCalledOnce(); @@ -108,8 +104,8 @@ class TypeGraphInferrer implements TypesInferrer { (MemberEntity member, MemberTypeInformation typeInformation) { createMemberResults(member, typeInformation); if (member is JClosureCallMethod) { - ClosureRepresentationInfo info = - closedWorld.closureDataLookup.getScopeInfo(member); + final info = closedWorld.closureDataLookup.getScopeInfo(member) + as ClosureRepresentationInfo; info.forEachFreeVariable(_globalLocalsMap.getLocalsMap(member), (Local from, FieldEntity to) { freeVariables.add(to);