| Index: sdk/lib/_internal/pub/lib/src/barback/transformer_id.dart
|
| diff --git a/sdk/lib/_internal/pub/lib/src/barback/transformer_id.dart b/sdk/lib/_internal/pub/lib/src/barback/transformer_id.dart
|
| index 71bdd9c8cd4aef917b353110c21e054d708d1086..e793ef3247b316e2c825189bb8b6b20433c8d4da 100644
|
| --- a/sdk/lib/_internal/pub/lib/src/barback/transformer_id.dart
|
| +++ b/sdk/lib/_internal/pub/lib/src/barback/transformer_id.dart
|
| @@ -8,6 +8,7 @@ import 'dart:async';
|
|
|
| import 'package:barback/barback.dart';
|
| import 'package:path/path.dart' as p;
|
| +import 'package:source_maps/source_maps.dart';
|
|
|
| import '../io.dart';
|
| import '../utils.dart';
|
| @@ -33,6 +34,9 @@ class TransformerId {
|
| /// otherwise.
|
| final String path;
|
|
|
| + /// The source span from which this id was parsed.
|
| + final Span span;
|
| +
|
| /// Whether this ID points to a built-in transformer exposed by pub.
|
| bool get isBuiltInTransformer => package.startsWith('\$');
|
|
|
| @@ -43,23 +47,24 @@ class TransformerId {
|
| /// it just has a package name, it expands to lib/transformer.dart if that
|
| /// exists, or lib/${package}.dart otherwise. Otherwise, it expands to
|
| /// lib/${path}.dart. In either case it's located in the given package.
|
| - factory TransformerId.parse(String identifier) {
|
| + factory TransformerId.parse(String identifier, Span span) {
|
| if (identifier.isEmpty) {
|
| throw new FormatException('Invalid library identifier: "".');
|
| }
|
|
|
| var parts = split1(identifier, "/");
|
| if (parts.length == 1) {
|
| - return new TransformerId(parts.single, null);
|
| + return new TransformerId(parts.single, null, span);
|
| }
|
|
|
| - return new TransformerId(parts.first, parts.last);
|
| + return new TransformerId(parts.first, parts.last, span);
|
| }
|
|
|
| - TransformerId(this.package, this.path) {
|
| + TransformerId(this.package, this.path, this.span) {
|
| if (!package.startsWith('\$')) return;
|
| if (_BUILT_IN_TRANSFORMERS.contains(package)) return;
|
| - throw new FormatException('Unsupported built-in transformer $package.');
|
| + throw new SpanFormatException('Unsupported built-in transformer $package.',
|
| + span);
|
| }
|
|
|
| bool operator==(other) =>
|
|
|