Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(33)

Unified Diff: reflectable/lib/src/transformer_implementation.dart

Issue 1722653002: Enables globbing for entry points. (Closed) Base URL: https://github.com/dart-lang/reflectable.git@master
Patch Set: Created 4 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « coverage_reflectable/bin/unexecuted_lines ('k') | reflectable/lib/transformer.dart » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: reflectable/lib/src/transformer_implementation.dart
diff --git a/reflectable/lib/src/transformer_implementation.dart b/reflectable/lib/src/transformer_implementation.dart
index 2e6b57bd4ba29d7da8a4da5098c6dd7024267c63..deaeb57d306f116984ae071c54abfe97ece97c4d 100644
--- a/reflectable/lib/src/transformer_implementation.dart
+++ b/reflectable/lib/src/transformer_implementation.dart
@@ -13,6 +13,7 @@ import 'package:analyzer/src/generated/utilities_dart.dart';
import 'package:barback/barback.dart';
import 'package:code_transformers/resolver.dart';
import 'package:dart_style/dart_style.dart';
+import 'package:glob/glob.dart';
import 'package:path/path.dart' as path;
import 'element_capability.dart' as ec;
import 'encoding_constants.dart' as constants;
@@ -2869,19 +2870,11 @@ class _ImportCollector {
// debugging which is concerned with the generated code (but that would
// ideally be an infrequent occurrence).
-/// Keeps track of all entry points we have seen. Used to determine when the
+/// Keeps track of the number of entry points seen. Used to determine when the
/// transformation job is complete during `pub build..` or stand-alone
/// transformation, such that it is time to give control to the debugger.
/// Only in use when `const bool.fromEnvironment("reflectable.pause.at.exit")`.
-Set<String> _allEntryPoints = new Set<String>();
-
-/// Keeps track of all entry points we have completed processing (either by
-/// transforming it successfully, or by concluding that it should not be
-/// transformed). Used to determine when the transformation job is complete
-/// during `pub build..` or stand-alone transformation, such that it is time
-/// to give control to the debugger.
-/// Only in use when `const bool.fromEnvironment("reflectable.pause.at.exit")`.
-Set<String> _processedEntryPoints = new Set<String>();
+int _processedEntryPointCount = 0;
class TransformerImplementation {
TransformLogger _logger;
@@ -3750,21 +3743,17 @@ _initializeReflectable() {
Asset asset = await transform.primaryInput;
assert(asset != null); // Every transform has a primary asset.
- String currentEntryPoint; // Null means not found.
-
- if (const bool.fromEnvironment("reflectable.pause.at.exit")) {
- _allEntryPoints.addAll(entryPoints);
- }
+ AssetId currentEntryPoint; // Null means not found.
for (String entryPoint in entryPoints) {
- if (asset.id.path.endsWith(entryPoint)) {
- currentEntryPoint = entryPoint;
+ Glob glob = new Glob(entryPoint);
+ if (glob.matches(asset.id.path)) {
+ currentEntryPoint = asset.id;
break;
}
}
// If the given [asset] is not an entry point: skip.
if (currentEntryPoint == null) return;
- assert(asset.id.path.endsWith(currentEntryPoint));
// The [_resolver] provides all the static information.
_resolver = await _resolvers.get(transform);
@@ -3777,7 +3766,7 @@ _initializeReflectable() {
_logger.info("Ignoring entry point $currentEntryPoint that does not "
"include the library 'package:reflectable/reflectable.dart'");
if (const bool.fromEnvironment("reflectable.pause.at.exit")) {
- _processedEntryPoints.add(currentEntryPoint);
+ _processedEntryPointCount++;
}
return;
}
@@ -3792,7 +3781,7 @@ _initializeReflectable() {
if (world == null) {
// Errors have already been reported during `_computeWorld`.
if (const bool.fromEnvironment("reflectable.pause.at.exit")) {
- _processedEntryPoints.add(currentEntryPoint);
+ _processedEntryPointCount++;
}
return;
}
@@ -3808,7 +3797,7 @@ _initializeReflectable() {
_logger.info("Entry point: $currentEntryPoint has no member "
"called `main`. Skipping.");
if (const bool.fromEnvironment("reflectable.pause.at.exit")) {
- _processedEntryPoints.add(currentEntryPoint);
+ _processedEntryPointCount++;
}
return;
}
@@ -3820,12 +3809,13 @@ _initializeReflectable() {
_generateNewEntryPoint(world, asset.id, originalEntryPointFilename);
transform.addOutput(new Asset.fromString(asset.id, newEntryPoint));
if (const bool.fromEnvironment("reflectable.pause.at.exit")) {
- _processedEntryPoints.add(currentEntryPoint);
+ _processedEntryPointCount++;
}
_resolver.release();
if (const bool.fromEnvironment("reflectable.pause.at.exit")) {
- if (_processedEntryPoints.containsAll(_allEntryPoints)) {
+ if (_processedEntryPointCount ==
+ const int.fromEnvironment("reflectable.pause.at.exit.count")) {
print("Transformation complete, pausing at exit.");
developer.debugger();
}
« no previous file with comments | « coverage_reflectable/bin/unexecuted_lines ('k') | reflectable/lib/transformer.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698