From 6e27d2458ff43af439c3873c95b29cf91843ebff Mon Sep 17 00:00:00 2001 From: Konstantin Shcheglov Date: Wed, 8 Jun 2022 17:31:52 +0000 Subject: [PATCH] Change LibraryElementImpl.session to AnalysisSessionImpl, export LinkedElementFactory. Change-Id: I920659db7cbfd1e337e8fbb4c35b334aed8b404f Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/247600 Reviewed-by: Samuel Rawlins Reviewed-by: Brian Wilkerson Commit-Queue: Konstantin Shcheglov --- pkg/analyzer/lib/src/dart/analysis/session.dart | 5 +++++ pkg/analyzer/lib/src/dart/element/element.dart | 5 ++--- pkg/analyzer/lib/src/generated/error_verifier.dart | 3 +-- pkg/analyzer/lib/src/summary2/types_builder.dart | 4 +--- pkg/analyzer/test/src/dart/element/element_test.dart | 4 ++-- 5 files changed, 11 insertions(+), 10 deletions(-) diff --git a/pkg/analyzer/lib/src/dart/analysis/session.dart b/pkg/analyzer/lib/src/dart/analysis/session.dart index 350bba537f7..91f7c6fc859 100644 --- a/pkg/analyzer/lib/src/dart/analysis/session.dart +++ b/pkg/analyzer/lib/src/dart/analysis/session.dart @@ -16,6 +16,7 @@ import 'package:analyzer/src/dart/element/inheritance_manager3.dart'; import 'package:analyzer/src/dart/element/type_provider.dart'; import 'package:analyzer/src/dart/element/type_system.dart'; import 'package:analyzer/src/generated/engine.dart' show AnalysisOptionsImpl; +import 'package:analyzer/src/summary2/linked_element_factory.dart'; /// A concrete implementation of an analysis session. class AnalysisSessionImpl implements AnalysisSession { @@ -37,6 +38,10 @@ class AnalysisSessionImpl implements AnalysisSession { @override DeclaredVariables get declaredVariables => _driver.declaredVariables; + LinkedElementFactory get elementFactory { + return _driver.libraryContext.elementFactory; + } + @override ResourceProvider get resourceProvider => _driver.resourceProvider; diff --git a/pkg/analyzer/lib/src/dart/element/element.dart b/pkg/analyzer/lib/src/dart/element/element.dart index 9991ec36161..765ffc5b7e8 100644 --- a/pkg/analyzer/lib/src/dart/element/element.dart +++ b/pkg/analyzer/lib/src/dart/element/element.dart @@ -97,8 +97,7 @@ abstract class AbstractClassElementImpl extends _ExistingElementImpl @override List get allSupertypes { - var sessionImpl = library.session as AnalysisSessionImpl; - return sessionImpl.classHierarchy.implementedInterfaces(this); + return library.session.classHierarchy.implementedInterfaces(this); } @override @@ -3701,7 +3700,7 @@ class LibraryElementImpl extends LibraryOrAugmentationElementImpl final AnalysisContext context; @override - AnalysisSession session; + AnalysisSessionImpl session; /// The language version for the library. LibraryLanguageVersion? _languageVersion; diff --git a/pkg/analyzer/lib/src/generated/error_verifier.dart b/pkg/analyzer/lib/src/generated/error_verifier.dart index b49eeb8cadc..0018bf72b6e 100644 --- a/pkg/analyzer/lib/src/generated/error_verifier.dart +++ b/pkg/analyzer/lib/src/generated/error_verifier.dart @@ -17,7 +17,6 @@ import 'package:analyzer/dart/element/type_provider.dart'; import 'package:analyzer/diagnostic/diagnostic.dart'; import 'package:analyzer/error/error.dart'; import 'package:analyzer/error/listener.dart'; -import 'package:analyzer/src/dart/analysis/session.dart'; import 'package:analyzer/src/dart/ast/ast.dart'; import 'package:analyzer/src/dart/ast/extensions.dart'; import 'package:analyzer/src/dart/element/class_hierarchy.dart'; @@ -1921,7 +1920,7 @@ class ErrorVerifier extends RecursiveAstVisitor void _checkForConflictingGenerics(NamedCompilationUnitMember node) { var element = node.declaredElement as ClassElement; - var analysisSession = _currentLibrary.session as AnalysisSessionImpl; + var analysisSession = _currentLibrary.session; var errors = analysisSession.classHierarchy.errors(element); for (var error in errors) { diff --git a/pkg/analyzer/lib/src/summary2/types_builder.dart b/pkg/analyzer/lib/src/summary2/types_builder.dart index f69284f0d79..1fd862578d0 100644 --- a/pkg/analyzer/lib/src/summary2/types_builder.dart +++ b/pkg/analyzer/lib/src/summary2/types_builder.dart @@ -7,7 +7,6 @@ import 'package:analyzer/dart/ast/ast.dart'; import 'package:analyzer/dart/element/element.dart'; import 'package:analyzer/dart/element/nullability_suffix.dart'; import 'package:analyzer/dart/element/type.dart'; -import 'package:analyzer/src/dart/analysis/session.dart'; import 'package:analyzer/src/dart/ast/ast.dart'; import 'package:analyzer/src/dart/ast/extensions.dart'; import 'package:analyzer/src/dart/element/class_hierarchy.dart'; @@ -573,8 +572,7 @@ class _MixinsInference { for (var declaration in declarations) { if (declaration is ClassOrMixinDeclaration) { var element = declaration.declaredElement as ClassElementImpl; - var sessionImpl = element.library.session as AnalysisSessionImpl; - sessionImpl.classHierarchy.remove(element); + element.library.session.classHierarchy.remove(element); } } } diff --git a/pkg/analyzer/test/src/dart/element/element_test.dart b/pkg/analyzer/test/src/dart/element/element_test.dart index 0f13ac70b81..5267086bec8 100644 --- a/pkg/analyzer/test/src/dart/element/element_test.dart +++ b/pkg/analyzer/test/src/dart/element/element_test.dart @@ -3,12 +3,12 @@ // BSD-style license that can be found in the LICENSE file. import 'package:analyzer/dart/analysis/features.dart'; -import 'package:analyzer/dart/analysis/session.dart'; import 'package:analyzer/dart/ast/ast.dart'; import 'package:analyzer/dart/constant/value.dart'; import 'package:analyzer/dart/element/element.dart'; import 'package:analyzer/dart/element/nullability_suffix.dart'; import 'package:analyzer/dart/element/type.dart'; +import 'package:analyzer/src/dart/analysis/session.dart'; import 'package:analyzer/src/dart/element/element.dart'; import 'package:analyzer/src/dart/element/type.dart'; import 'package:analyzer/src/generated/engine.dart' show AnalysisContext; @@ -1618,7 +1618,7 @@ class VoidTypeImplTest extends AbstractTypeSystemTest { } } -class _AnalysisSessionMock implements AnalysisSession { +class _AnalysisSessionMock implements AnalysisSessionImpl { @override noSuchMethod(Invocation invocation) => super.noSuchMethod(invocation); }