X Tutup
Skip to content

Commit 8f91ff8

Browse files
author
Tim Blasi
committed
feat(dart/transform): Do not re-process generated files
In the `DeferredRewriter` phase, do not process files which were generated by the transformer, since these will never need to be rewritten.
1 parent 3f4628c commit 8f91ff8

File tree

2 files changed

+17
-1
lines changed

2 files changed

+17
-1
lines changed

modules_dart/transform/lib/src/transform/common/names.dart

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,20 @@ const ALL_EXTENSIONS = const [
3030
'.dart'
3131
];
3232

33+
/// Whether `uri` was created by a transform phase.
34+
///
35+
/// This may return false positives for problematic inputs.
36+
/// This just tests file extensions known to be created by the transformer, so
37+
/// any files named like transformer outputs will be reported as generated.
38+
bool isGenerated(String uri) {
39+
return const [
40+
DEPS_EXTENSION,
41+
NON_SHIMMED_STYLESHEET_EXTENSION,
42+
SHIMMED_STYLESHEET_EXTENSION,
43+
TEMPLATE_EXTENSION,
44+
].any((ext) => uri.endsWith(ext));
45+
}
46+
3347
/// Returns `uri` with its extension updated to [META_EXTENSION].
3448
String toMetaExtension(String uri) =>
3549
_toExtension(uri, ALL_EXTENSIONS, META_EXTENSION);

modules_dart/transform/lib/src/transform/deferred_rewriter/transformer.dart

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ class DeferredRewriter extends Transformer {
2121

2222
@override
2323
bool isPrimary(AssetId id) =>
24-
id.extension.endsWith('dart') && !id.path.endsWith(DEPS_EXTENSION);
24+
id.extension.endsWith('dart') && _isNotGenerated(id);
2525

2626
@override
2727
Future apply(Transform transform) async {
@@ -36,6 +36,8 @@ class DeferredRewriter extends Transformer {
3636
}
3737
}
3838

39+
bool _isNotGenerated(AssetId id) => !isGenerated(id.path);
40+
3941
// Visible for testing
4042
Future<String> rewriteDeferredLibraries(AssetReader reader, AssetId id) async {
4143
var rewriter = new Rewriter(id, reader);

0 commit comments

Comments
 (0)
X Tutup