From 84f08309c876c703676feb1e122cf0055ef28a90 Mon Sep 17 00:00:00 2001 From: Nate Bosch Date: Tue, 24 May 2022 22:24:43 +0000 Subject: [PATCH 1/2] Remove tests that attempt to modify files Close #3202 Calling `MemoryResourceProvider.modifyFile` is not sufficient for the analyzer to respond to the changes, `AnalysisDriver.changeFile` is the important call, but we don't have access to that member from the tests. The real world behavior that would lead to this scenario requires more complex interactions we can do with `resolveSources`. Remove these tests entirely since they are not testing what they purport and are not useful as they stand. --- build_resolvers/test/resolver_test.dart | 76 ------------------------- 1 file changed, 76 deletions(-) diff --git a/build_resolvers/test/resolver_test.dart b/build_resolvers/test/resolver_test.dart index b512872ee..34323ca73 100644 --- a/build_resolvers/test/resolver_test.dart +++ b/build_resolvers/test/resolver_test.dart @@ -768,82 +768,6 @@ int? get x => 1; ); }, resolvers: AnalyzerResolvers()); }); - - test( - 'can get an unresolved AstNode for an old Element after resolving ' - 'additional assets', () async { - var resolvers = AnalyzerResolvers(); - await resolveSources({ - 'a|web/main.dart': 'int x;', - }, (resolver) async { - var lib = await resolver.libraryFor(entryPoint); - var x = lib.topLevelElements.firstWhere((x) => !x.isSynthetic); - expect(x.name, 'x'); - (x.library!.session.resourceProvider as MemoryResourceProvider) - .modifyFile('/a/web/main.dart', 'int x = 1;'); - - // Validate that direct session usage would throw - expect(() => lib.session.getParsedLibraryByElement(x.library!), - throwsA(isA()), - skip: 'https://github.com/dart-lang/build/issues/3202'); - - var astNode = await resolver.astNodeFor(x); - expect(astNode, isA()); - expect((astNode as VariableDeclaration).name.name, 'x'); - expect(astNode.declaredElement, isNull); - }, resolvers: resolvers); - }); - - test( - 'can get a resolved AstNode for an old Element after resolving ' - 'additional assets', () async { - var resolvers = AnalyzerResolvers(); - await resolveSources({ - 'a|web/main.dart': 'int x;', - }, (resolver) async { - var lib = await resolver.libraryFor(entryPoint); - var x = lib.topLevelElements.firstWhere((x) => !x.isSynthetic); - expect(x.name, 'x'); - (x.library!.session.resourceProvider as MemoryResourceProvider) - .modifyFile('/a/web/main.dart', 'int x = 1;'); - - // Validate that direct session usage would throw - expect(() => lib.session.getParsedLibraryByElement(x.library!), - throwsA(isA()), - skip: 'https://github.com/dart-lang/build/issues/3202'); - - var astNode = await resolver.astNodeFor(x, resolve: true); - expect(astNode, isA()); - expect((astNode as VariableDeclaration).name.name, 'x'); - expect(astNode.declaredElement, isNotNull); - }, resolvers: resolvers); - }); - - test('library results can be used even if the session is invalidated', - () async { - var resolvers = AnalyzerResolvers(); - await resolveSources({ - 'a|web/main.dart': 'int x;', - }, (resolver) async { - var lib = await resolver.libraryFor(entryPoint); - var x = lib.topLevelElements.firstWhere((x) => !x.isSynthetic); - expect(x.name, 'x'); - var originalResult = await lib.session - .getResolvedLibrary(lib.source.fullName) as ResolvedLibraryResult; - (x.library!.session.resourceProvider as MemoryResourceProvider) - .modifyFile('/a/web/main.dart', 'int x = 1;'); - - // Validate that direct session usage would throw - expect(() => lib.session.getResolvedLibrary(lib.source.fullName), - throwsA(isA()), - skip: 'https://github.com/dart-lang/build/issues/3202'); - - var astNode = originalResult.getElementDeclaration(x)!.node; - expect(astNode, isA()); - expect((astNode as VariableDeclaration).name.name, 'x'); - expect(astNode.declaredElement, isNotNull); - }, resolvers: resolvers); - }); }); } From 4abbe8fb0fafab242c841c67c744746c6db75473 Mon Sep 17 00:00:00 2001 From: Nate Bosch Date: Tue, 24 May 2022 22:38:30 +0000 Subject: [PATCH 2/2] Unused imports --- build_resolvers/test/resolver_test.dart | 2 -- 1 file changed, 2 deletions(-) diff --git a/build_resolvers/test/resolver_test.dart b/build_resolvers/test/resolver_test.dart index 34323ca73..f9f97d748 100644 --- a/build_resolvers/test/resolver_test.dart +++ b/build_resolvers/test/resolver_test.dart @@ -7,10 +7,8 @@ import 'dart:io' show Platform; import 'dart:isolate'; import 'package:analyzer/dart/analysis/results.dart'; -import 'package:analyzer/dart/analysis/session.dart'; import 'package:analyzer/dart/ast/ast.dart'; import 'package:analyzer/dart/element/element.dart'; -import 'package:analyzer/file_system/memory_file_system.dart'; import 'package:build/build.dart'; import 'package:build/experiments.dart'; import 'package:build_resolvers/src/analysis_driver.dart';