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

Unified Diff: utils/apidoc/html_diff.dart

Issue 1361163002: remove docgen remnants from repo, update CHANGELOG (Closed) Base URL: https://github.com/dart-lang/sdk.git@master
Patch Set: remove unused code Created 5 years, 3 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 | « utils/apidoc/docgen.gyp ('k') | utils/apidoc/lib/metadata.dart » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: utils/apidoc/html_diff.dart
diff --git a/utils/apidoc/html_diff.dart b/utils/apidoc/html_diff.dart
deleted file mode 100644
index 06adfcaf1dcdee16e54d1ba11d1b20d50bc7b986..0000000000000000000000000000000000000000
--- a/utils/apidoc/html_diff.dart
+++ /dev/null
@@ -1,231 +0,0 @@
-// Copyright (c) 2012, 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.
-
-/**
- * A script to assist in documenting the difference between the dart:html API
- * and the old DOM API.
- */
-library html_diff;
-
-import 'dart:async';
-
-import 'lib/metadata.dart';
-
-// TODO(rnystrom): Use "package:" URL (#4968).
-import '../../pkg/compiler/lib/src/mirrors/analyze.dart';
-import '../../pkg/compiler/lib/src/mirrors/source_mirrors.dart';
-import '../../pkg/compiler/lib/src/mirrors/mirrors_util.dart';
-import '../../pkg/compiler/lib/src/source_file_provider.dart';
-
-// TODO(amouravski): There is currently magic that looks at dart:* libraries
-// rather than the declared library names. This changed due to recent syntax
-// changes. We should only need to look at the library 'html'.
-final List<Uri> HTML_LIBRARY_URIS = [
- new Uri(scheme: 'dart', path: 'html'),
- new Uri(scheme: 'dart', path: 'indexed_db'),
- new Uri(scheme: 'dart', path: 'svg'),
- new Uri(scheme: 'dart', path: 'web_audio')];
-
-/**
- * A class for computing a many-to-many mapping between the types and
- * members in `dart:html` and the MDN DOM types. This mapping is
- * based on two indicators:
- *
- * 1. Auto-detected wrappers. Most `dart:html` types correspond
- * straightforwardly to a single `@DomName` type, and
- * have the same name. In addition, most `dart:html` methods
- * just call a single `@DomName` method. This class
- * detects these simple correspondences automatically.
- *
- * 2. Manual annotations. When it's not clear which
- * `@DomName` items a given `dart:html` item
- * corresponds to, the `dart:html` item can be annotated in the
- * documentation comments using the `@DomName` annotation.
- *
- * The `@DomName` annotations for types and members are of the form
- * `@DomName NAME(, NAME)*`, where the `NAME`s refer to the
- * `@DomName` types/members that correspond to the
- * annotated `dart:html` type/member. `NAME`s on member annotations
- * can refer to either fully-qualified member names (e.g.
- * `Document.createElement`) or unqualified member names
- * (e.g. `createElement`). Unqualified member names are assumed to
- * refer to members of one of the corresponding `@DomName`
- * types.
- */
-class HtmlDiff {
- /**
- * A map from `dart:html` members to the corresponding fully qualified
- * `@DomName` member(s).
- */
- final Map<String, Set<String>> htmlToDom;
-
- /** A map from `dart:html` types to corresponding `@DomName` types. */
- final Map<String, Set<String>> htmlTypesToDom;
-
- /** If true, then print warning messages. */
- final bool _printWarnings;
-
- static LibraryMirror dom;
-
- HtmlDiff({bool printWarnings: false}) :
- _printWarnings = printWarnings,
- htmlToDom = new Map<String, Set<String>>(),
- htmlTypesToDom = new Map<String, Set<String>>();
-
- void warn(String s) {
- if (_printWarnings) {
- print('Warning: $s');
- }
- }
-
- /**
- * Computes the `@DomName` to `dart:html` mapping, and
- * places it in [htmlToDom] and [htmlTypesToDom]. Before this is run, dart2js
- * should be initialized (via [parseOptions] and [initializeWorld]) and
- * [HtmlDiff.initialize] should be called.
- */
- Future run(Uri libraryRoot) {
- var result = new Completer();
- var provider = new CompilerSourceFileProvider();
- var handler = new FormattingDiagnosticHandler(provider);
- Future<MirrorSystem> analysis = analyze(
- HTML_LIBRARY_URIS, libraryRoot, null,
- provider.readStringFromUri,
- handler.diagnosticHandler);
- analysis.then((MirrorSystem mirrors) {
- for (var libraryUri in HTML_LIBRARY_URIS) {
- var library = mirrors.libraries[libraryUri];
- if (library == null) {
- warn('Could not find $libraryUri');
- result.complete(false);
- }
- for (ClassMirror type in classesOf(library.declarations)) {
- final domTypes = htmlToDomTypes(type);
- if (domTypes.isEmpty) continue;
-
- htmlTypesToDom.putIfAbsent(qualifiedNameOf(type),
- () => new Set()).addAll(domTypes);
-
- membersOf(type.declarations).forEach(
- (m) => _addMemberDiff(m, domTypes, nameOf(library)));
- }
- }
- result.complete(true);
- });
- return result.future;
- }
-
- /**
- * Records the `@DomName` to `dart:html` mapping for
- * [htmlMember] (from `dart:html`). [domTypes] are the
- * `@DomName` type values that correspond to [htmlMember]'s
- * defining type.
- */
- void _addMemberDiff(DeclarationMirror htmlMember, List<String> domTypes,
- String libraryName) {
- var domMembers = htmlToDomMembers(htmlMember, domTypes);
- if (htmlMember == null && !domMembers.isEmpty) {
- warn('$libraryName member '
- '${htmlMember.owner.simpleName}.'
- '${htmlMember.simpleName} has no corresponding '
- '$libraryName member.');
- }
-
- if (htmlMember == null) return;
- if (!domMembers.isEmpty) {
- htmlToDom[qualifiedNameOf(htmlMember)] = domMembers;
- }
- }
-
- /**
- * Returns the `@DomName` type values that correspond to
- * [htmlType] from `dart:html`. This can be the empty list if no
- * correspondence is found.
- */
- List<String> htmlToDomTypes(ClassMirror htmlType) {
- if (htmlType.simpleName == null) return <String>[];
-
- final domNameMetadata = findMetadata(htmlType.metadata, 'DomName');
- if (domNameMetadata != null) {
- var domNames = <String>[];
- var names = domNameMetadata.getField(symbolOf('name'));
- for (var s in names.reflectee.split(',')) {
- domNames.add(s.trim());
- }
-
- if (domNames.length == 1 && domNames[0] == 'none') return <String>[];
- return domNames;
- }
- return <String>[];
- }
-
- /**
- * Returns the `@DomName` member values that correspond to
- * [htmlMember] from `dart:html`. This can be the empty set if no
- * correspondence is found. [domTypes] are the
- * `@DomName` type values that correspond to [htmlMember]'s
- * defining type.
- */
- Set<String> htmlToDomMembers(DeclarationMirror htmlMember,
- List<String> domTypes) {
- if (htmlMember.isPrivate) return new Set();
-
- final domNameMetadata = findMetadata(htmlMember.metadata, 'DomName');
- if (domNameMetadata != null) {
- var domNames = <String>[];
- var names = domNameMetadata.getField(symbolOf('name'));
- for (var s in names.reflectee.split(',')) {
- domNames.add(s.trim());
- }
-
- if (domNames.length == 1 && domNames[0] == 'none') return new Set();
- final members = new Set();
- domNames.forEach((name) {
- var nameMembers = _membersFromName(name, domTypes);
- if (nameMembers.isEmpty) {
- if (name.contains('.')) {
- warn('no member $name');
- } else {
- final options = <String>[];
- for (var t in domTypes) {
- options.add('$t.$name');
- }
- options.join(' or ');
- warn('no member $options');
- }
- }
- members.addAll(nameMembers);
- });
- return members;
- }
-
- return new Set();
- }
-
- /**
- * Returns the `@DomName` strings that are indicated by
- * [name]. [name] can be either an unqualified member name
- * (e.g. `createElement`), in which case it's treated as the name of
- * a member of one of [defaultTypes], or a fully-qualified member
- * name (e.g. `Document.createElement`), in which case it's treated as a
- * member of the @DomName element (`Document` in this case).
- */
- Set<String> _membersFromName(String name, List<String> defaultTypes) {
- if (!name.contains('.', 0)) {
- if (defaultTypes.isEmpty) {
- warn('no default type for $name');
- return new Set();
- }
- final members = new Set<String>();
- defaultTypes.forEach((t) { members.add('$t.$name'); });
- return members;
- }
-
- if (name.split('.').length != 2) {
- warn('invalid member name ${name}');
- return new Set();
- }
- return new Set.from([name]);
- }
-}
« no previous file with comments | « utils/apidoc/docgen.gyp ('k') | utils/apidoc/lib/metadata.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698