|
6 | 6 | @Timeout.factor(3)
|
7 | 7 | library;
|
8 | 8 |
|
9 |
| -import 'package:analyzer/dart/analysis/utilities.dart'; |
10 |
| -import 'package:analyzer/dart/ast/ast.dart'; |
11 | 9 | import 'package:analyzer/dart/element/element.dart';
|
12 | 10 | import 'package:build/build.dart';
|
13 | 11 | import 'package:build_test/build_test.dart';
|
@@ -104,32 +102,36 @@ $dartFormatWidth
|
104 | 102 | final builder = LibraryBuilder(
|
105 | 103 | _StubGenerator<Deprecated>('Deprecated', elementBehavior: (_) => null),
|
106 | 104 | );
|
107 |
| - final input = AssetId('a', 'lib/a.dart'); |
108 |
| - final assets = { |
109 |
| - input: ''' |
| 105 | + final result = await testBuilder(builder, { |
| 106 | + 'a|lib/a.dart': ''' |
110 | 107 | @Deprecated()
|
111 | 108 | @deprecated
|
112 | 109 | @override
|
113 | 110 | @pragma('')
|
114 | 111 | main() {}''',
|
115 |
| - }; |
116 |
| - |
117 |
| - final readerWriter = |
118 |
| - TestReaderWriter()..testing.writeString(input, assets[input]!); |
| 112 | + }); |
119 | 113 |
|
120 |
| - final resolver = _TestingResolver(assets); |
| 114 | + expect(result.readerWriter.testing.resolverEntrypointsTracked, isEmpty); |
| 115 | + }); |
121 | 116 |
|
122 |
| - await runBuilder( |
123 |
| - builder, |
124 |
| - [input], |
125 |
| - readerWriter, |
126 |
| - readerWriter, |
127 |
| - _FixedResolvers(resolver), |
128 |
| - ); |
| 117 | + test( |
| 118 | + 'Does resolve the library if there is an interesting top level annotation', |
| 119 | + () async { |
| 120 | + final builder = LibraryBuilder( |
| 121 | + _StubGenerator<Deprecated>('Deprecated', elementBehavior: (_) => null), |
| 122 | + ); |
| 123 | + final result = await testBuilder(builder, { |
| 124 | + 'a|lib/a.dart': ''' |
| 125 | +@override |
| 126 | +@someInterestingAnnotation |
| 127 | +main() {}''', |
| 128 | + }); |
129 | 129 |
|
130 |
| - expect(resolver.parsedUnits, {input}); |
131 |
| - expect(resolver.resolvedLibs, isEmpty); |
132 |
| - }); |
| 130 | + expect(result.readerWriter.testing.resolverEntrypointsTracked, { |
| 131 | + AssetId('a', 'lib/a.dart'), |
| 132 | + }); |
| 133 | + }, |
| 134 | + ); |
133 | 135 |
|
134 | 136 | test('applies to annotated libraries', () async {
|
135 | 137 | final builder = LibraryBuilder(
|
@@ -308,54 +310,3 @@ const _inputMap = {
|
308 | 310 | final baz = 'baz';
|
309 | 311 | ''',
|
310 | 312 | };
|
311 |
| - |
312 |
| -class _TestingResolver implements ReleasableResolver { |
313 |
| - final Map<AssetId, String> assets; |
314 |
| - final parsedUnits = <AssetId>{}; |
315 |
| - final resolvedLibs = <AssetId>{}; |
316 |
| - |
317 |
| - _TestingResolver(this.assets); |
318 |
| - |
319 |
| - @override |
320 |
| - Future<CompilationUnit> compilationUnitFor( |
321 |
| - AssetId assetId, { |
322 |
| - bool allowSyntaxErrors = false, |
323 |
| - }) async { |
324 |
| - parsedUnits.add(assetId); |
325 |
| - return parseString(content: assets[assetId]!).unit; |
326 |
| - } |
327 |
| - |
328 |
| - @override |
329 |
| - Future<bool> isLibrary(AssetId assetId) async { |
330 |
| - final unit = await compilationUnitFor(assetId); |
331 |
| - return unit.directives.every((d) => d is! PartOfDirective); |
332 |
| - } |
333 |
| - |
334 |
| - @override |
335 |
| - Future<LibraryElement> libraryFor( |
336 |
| - AssetId assetId, { |
337 |
| - bool allowSyntaxErrors = false, |
338 |
| - }) async { |
339 |
| - resolvedLibs.add(assetId); |
340 |
| - throw StateError('This method intentionally throws'); |
341 |
| - } |
342 |
| - |
343 |
| - @override |
344 |
| - void release() {} |
345 |
| - |
346 |
| - @override |
347 |
| - void noSuchMethod(_) => throw UnimplementedError(); |
348 |
| -} |
349 |
| - |
350 |
| -class _FixedResolvers implements Resolvers { |
351 |
| - final ReleasableResolver _resolver; |
352 |
| - |
353 |
| - _FixedResolvers(this._resolver); |
354 |
| - |
355 |
| - @override |
356 |
| - Future<ReleasableResolver> get(BuildStep buildStep) => |
357 |
| - Future.value(_resolver); |
358 |
| - |
359 |
| - @override |
360 |
| - void reset() {} |
361 |
| -} |
0 commit comments