From 84adebbef67a791ea2ffa922940253dc654cda65 Mon Sep 17 00:00:00 2001 From: Konstantin Shcheglov Date: Thu, 22 Jul 2021 20:05:25 +0000 Subject: [PATCH] Simplify ReferenceResolver creation. Change-Id: I1445b80d9453dc8d1df9f0a3bc850bda11e109f7 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/207781 Reviewed-by: Samuel Rawlins Commit-Queue: Konstantin Shcheglov --- .../src/summary2/function_type_builder.dart | 1 + .../lib/src/summary2/library_builder.dart | 20 ++----------------- .../lib/src/summary2/reference_resolver.dart | 10 ++-------- 3 files changed, 5 insertions(+), 26 deletions(-) diff --git a/pkg/analyzer/lib/src/summary2/function_type_builder.dart b/pkg/analyzer/lib/src/summary2/function_type_builder.dart index f59a117b5ff..9ac5a3f21d2 100644 --- a/pkg/analyzer/lib/src/summary2/function_type_builder.dart +++ b/pkg/analyzer/lib/src/summary2/function_type_builder.dart @@ -190,6 +190,7 @@ class FunctionTypeBuilder extends TypeBuilder { } else if (isNNBD) { nullabilitySuffix = NullabilitySuffix.none; } else { + // TODO(scheglov) legacy? nullabilitySuffix = NullabilitySuffix.question; } diff --git a/pkg/analyzer/lib/src/summary2/library_builder.dart b/pkg/analyzer/lib/src/summary2/library_builder.dart index e500aa1eb44..3cb1a0f990b 100644 --- a/pkg/analyzer/lib/src/summary2/library_builder.dart +++ b/pkg/analyzer/lib/src/summary2/library_builder.dart @@ -2,7 +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. -import 'package:analyzer/dart/analysis/features.dart'; import 'package:analyzer/dart/ast/ast.dart' as ast; import 'package:analyzer/dart/element/element.dart'; import 'package:analyzer/src/dart/ast/ast.dart' as ast; @@ -161,7 +160,7 @@ class LibraryBuilder { void resolveTypes(NodesToBuildType nodesToBuildType) { for (var linkingUnit in units) { - var resolver = _newTypeReferenceResolver(nodesToBuildType, linkingUnit); + var resolver = ReferenceResolver(linker, nodesToBuildType, element); linkingUnit.node.accept(resolver); } } @@ -212,7 +211,7 @@ class LibraryBuilder { { var nodesToBuildType = NodesToBuildType(); var resolver = - _newTypeReferenceResolver(nodesToBuildType, linkingUnit); + ReferenceResolver(linker, nodesToBuildType, element); for (var newMember in newMembers) { newMember.accept(resolver); } @@ -258,21 +257,6 @@ class LibraryBuilder { } } - ReferenceResolver _newTypeReferenceResolver( - NodesToBuildType nodesToBuildType, - LinkingUnit linkingUnit, - ) { - /// TODO(scheglov) Do we need all these parameters? - return ReferenceResolver( - linker, - nodesToBuildType, - linker.elementFactory, - element, - linkingUnit.reference, - linkingUnit.node.featureSet.isEnabled(Feature.non_nullable), - ); - } - static void build(Linker linker, LinkInputLibrary inputLibrary) { var elementFactory = linker.elementFactory; diff --git a/pkg/analyzer/lib/src/summary2/reference_resolver.dart b/pkg/analyzer/lib/src/summary2/reference_resolver.dart index ea3f216906d..9268b919255 100644 --- a/pkg/analyzer/lib/src/summary2/reference_resolver.dart +++ b/pkg/analyzer/lib/src/summary2/reference_resolver.dart @@ -14,10 +14,8 @@ import 'package:analyzer/src/dart/element/type.dart'; import 'package:analyzer/src/dart/element/type_system.dart'; import 'package:analyzer/src/summary2/function_type_builder.dart'; import 'package:analyzer/src/summary2/link.dart'; -import 'package:analyzer/src/summary2/linked_element_factory.dart'; import 'package:analyzer/src/summary2/linking_node_scope.dart'; import 'package:analyzer/src/summary2/named_type_builder.dart'; -import 'package:analyzer/src/summary2/reference.dart'; import 'package:analyzer/src/summary2/types_builder.dart'; /// Recursive visitor of [LinkedNode]s that resolves explicit type annotations @@ -33,8 +31,6 @@ class ReferenceResolver extends ThrowingAstVisitor { final Linker linker; final TypeSystemImpl _typeSystem; final NodesToBuildType nodesToBuildType; - final LinkedElementFactory elementFactory; - final Reference unitReference; /// Indicates whether the library is opted into NNBD. final bool isNNBD; @@ -44,12 +40,10 @@ class ReferenceResolver extends ThrowingAstVisitor { ReferenceResolver( this.linker, this.nodesToBuildType, - this.elementFactory, LibraryElementImpl libraryElement, - this.unitReference, - this.isNNBD, ) : _typeSystem = libraryElement.typeSystem, - scope = libraryElement.scope; + scope = libraryElement.scope, + isNNBD = libraryElement.isNonNullableByDefault; @override void visitBlockFunctionBody(BlockFunctionBody node) {}