diff --git a/example/pubspec.yaml b/example/pubspec.yaml index 96ef2a39..9f104745 100644 --- a/example/pubspec.yaml +++ b/example/pubspec.yaml @@ -6,8 +6,8 @@ environment: sdk: ^3.7.0 dependencies: - analyzer: '>=7.4.0 <9.0.0' - build: ^3.0.0 + analyzer: ^8.1.1 + build: '>=3.0.0 <5.0.0' source_gen: any dev_dependencies: diff --git a/source_gen/CHANGELOG.md b/source_gen/CHANGELOG.md index 2117ec4c..f187fa4e 100644 --- a/source_gen/CHANGELOG.md +++ b/source_gen/CHANGELOG.md @@ -1,3 +1,8 @@ +## 4.0.1 + +- Require `analyzer: '>=8.1.1 <9.0.0'`. +- Allow `build: '>=3.0.0 <5.0.0'`. + ## 4.0.0 - **Breaking Change**: remove `TypeChecker.fromRuntime`, use diff --git a/source_gen/pubspec.yaml b/source_gen/pubspec.yaml index 80610fa5..f08f1689 100644 --- a/source_gen/pubspec.yaml +++ b/source_gen/pubspec.yaml @@ -1,5 +1,5 @@ name: source_gen -version: 4.0.0 +version: 4.0.1 description: >- Source code generation builders and utilities for the Dart build system repository: https://github.com/dart-lang/source_gen/tree/master/source_gen @@ -9,9 +9,9 @@ environment: sdk: ^3.7.0 dependencies: - analyzer: '>=8.1.1 <9.0.0' + analyzer: ^8.1.1 async: ^2.10.0 - build: ^3.0.0 + build: '>=3.0.0 <5.0.0' dart_style: ^3.0.0 glob: ^2.0.0 path: ^1.9.0 diff --git a/source_gen/test/generator_for_annotation_test.dart b/source_gen/test/generator_for_annotation_test.dart index 4a831776..d4fac909 100644 --- a/source_gen/test/generator_for_annotation_test.dart +++ b/source_gen/test/generator_for_annotation_test.dart @@ -6,8 +6,6 @@ @Timeout.factor(3) library; -import 'package:analyzer/dart/analysis/utilities.dart'; -import 'package:analyzer/dart/ast/ast.dart'; import 'package:analyzer/dart/element/element.dart'; import 'package:build/build.dart'; import 'package:build_test/build_test.dart'; @@ -104,32 +102,36 @@ $dartFormatWidth final builder = LibraryBuilder( _StubGenerator('Deprecated', elementBehavior: (_) => null), ); - final input = AssetId('a', 'lib/a.dart'); - final assets = { - input: ''' + final result = await testBuilder(builder, { + 'a|lib/a.dart': ''' @Deprecated() @deprecated @override @pragma('') main() {}''', - }; - - final readerWriter = - TestReaderWriter()..testing.writeString(input, assets[input]!); + }); - final resolver = _TestingResolver(assets); + expect(result.readerWriter.testing.resolverEntrypointsTracked, isEmpty); + }); - await runBuilder( - builder, - [input], - readerWriter, - readerWriter, - _FixedResolvers(resolver), - ); + test( + 'Does resolve the library if there is an interesting top level annotation', + () async { + final builder = LibraryBuilder( + _StubGenerator('Deprecated', elementBehavior: (_) => null), + ); + final result = await testBuilder(builder, { + 'a|lib/a.dart': ''' +@override +@someInterestingAnnotation +main() {}''', + }); - expect(resolver.parsedUnits, {input}); - expect(resolver.resolvedLibs, isEmpty); - }); + expect(result.readerWriter.testing.resolverEntrypointsTracked, { + AssetId('a', 'lib/a.dart'), + }); + }, + ); test('applies to annotated libraries', () async { final builder = LibraryBuilder( @@ -308,54 +310,3 @@ const _inputMap = { final baz = 'baz'; ''', }; - -class _TestingResolver implements ReleasableResolver { - final Map assets; - final parsedUnits = {}; - final resolvedLibs = {}; - - _TestingResolver(this.assets); - - @override - Future compilationUnitFor( - AssetId assetId, { - bool allowSyntaxErrors = false, - }) async { - parsedUnits.add(assetId); - return parseString(content: assets[assetId]!).unit; - } - - @override - Future isLibrary(AssetId assetId) async { - final unit = await compilationUnitFor(assetId); - return unit.directives.every((d) => d is! PartOfDirective); - } - - @override - Future libraryFor( - AssetId assetId, { - bool allowSyntaxErrors = false, - }) async { - resolvedLibs.add(assetId); - throw StateError('This method intentionally throws'); - } - - @override - void release() {} - - @override - void noSuchMethod(_) => throw UnimplementedError(); -} - -class _FixedResolvers implements Resolvers { - final ReleasableResolver _resolver; - - _FixedResolvers(this._resolver); - - @override - Future get(BuildStep buildStep) => - Future.value(_resolver); - - @override - void reset() {} -}