Chromium Code Reviews

Unified Diff: web_components/lib/build/html_import_annotation_recorder.dart

Issue 1400473008: Roll Observatory packages and add a roll script (Closed) Base URL: git@github.com:dart-lang/observatory_pub_packages.git@master
Patch Set: Created 5 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments.
Jump to:
View side-by-side diff with in-line comments
« no previous file with comments | « web_components/lib/build/common.dart ('k') | web_components/lib/build/import_crawler.dart » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: web_components/lib/build/html_import_annotation_recorder.dart
diff --git a/web_components/lib/build/html_import_annotation_recorder.dart b/web_components/lib/build/html_import_annotation_recorder.dart
deleted file mode 100644
index ba5d2abad5a99d35db6753f174c3bfba8e45399a..0000000000000000000000000000000000000000
--- a/web_components/lib/build/html_import_annotation_recorder.dart
+++ /dev/null
@@ -1,100 +0,0 @@
-// Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-library web_components.build.html_import_recorder_inliner;
-
-import 'package:analyzer/analyzer.dart';
-import 'package:analyzer/src/generated/ast.dart';
-import 'package:analyzer/src/generated/element.dart';
-import 'package:barback/barback.dart';
-import 'package:initialize/transformer.dart';
-import 'package:path/path.dart' as path;
-import '../src/normalize_path.dart';
-
-/// [InitializerPlugin] for @HtmlImport annotations. This records all paths
-/// seen, normalizes them relative to the entry point, and records the values in
-/// [importPaths].
-///
-/// Note: This does nothing with the paths on its own, a separate step needs to
-/// add the imports to the entry point document.
-class HtmlImportAnnotationRecorder implements InitializerPlugin {
- /// All the normalized import paths that were seen.
- final Set<String> importPaths = new Set<String>();
-
- TransformLogger _logger;
-
- HtmlImportAnnotationRecorder();
-
- /// Applies to anything named `HtmlImport` which annotates a library.
- bool shouldApply(InitializerPluginData pluginData) {
- var annotationElement = pluginData.initializer.annotationNode.element;
- var logger = pluginData.logger;
- DartType type;
- if (annotationElement is ConstructorElement) {
- type = annotationElement.returnType;
- } else if (annotationElement is PropertyAccessorElement) {
- type = annotationElement.variable.propagatedType;
- if (type == null) {
- type = pluginData.resolver.evaluateConstant(annotationElement.library,
- pluginData.initializer.annotationNode.name).value.type;
- }
- } else {
- logger.error('Unsupported annotation type. Only constructors and '
- 'properties are supported as initializers.');
- return false;
- }
- if (type.name != 'HtmlImport') return false;
- if (pluginData.initializer.targetElement is! LibraryElement) {
- logger.error('Invalid HtmlImport annotation on non-library element.');
- return false;
- }
- return true;
- }
-
- /// Records the normalized url and returns [null] so that no [InitEntry] will
- /// be created.
- String apply(InitializerPluginData pluginData) {
- var bootstrapId = pluginData.bootstrapId;
- var logger = pluginData.logger;
- var annotation = pluginData.initializer.annotationNode;
- var annotationElement = pluginData.initializer.annotationElement;
- var element = pluginData.initializer.targetElement as LibraryElement;
- var resolver = pluginData.resolver;
- var libraryDirective =
- pluginData.initializer.targetNode.parent.parent as LibraryDirective;
-
- var originalImportPath;
- if (annotationElement.element is PropertyAccessorElement) {
- originalImportPath = resolver.evaluateConstant(
- element.library, annotation.name).value.fields[
- 'filePath'].stringValue;
- } else {
- assert(annotationElement.element is ConstructorElement);
- originalImportPath = resolver.evaluateConstant(element.library,
- annotation.arguments.arguments.first).value.stringValue;
- }
-
- var libPath;
- var segments = element.source.uri.pathSegments;
- var package = segments[0];
- if (bootstrapId.package == package &&
- bootstrapId.path.startsWith('${segments[1]}/')) {
- package = null;
- libPath = path.url.relative(
- path.url.joinAll(segments.getRange(1, segments.length)),
- from: path.url.dirname(path.url.join(bootstrapId.path)));
- } else if (segments[1] == 'lib') {
- libPath = path.url.joinAll(segments.getRange(2, segments.length));
- } else {
- logger.error('Unable to import `${element.source.uri.path}` from '
- '${bootstrapId}.');
- return null;
- }
-
- importPaths
- .add(normalizeHtmlImportPath(originalImportPath, package, libPath));
-
- // Don't emit an InitEntry.
- return null;
- }
-}
« no previous file with comments | « web_components/lib/build/common.dart ('k') | web_components/lib/build/import_crawler.dart » ('j') | no next file with comments »

Powered by Google App Engine