Index: analyzer/lib/src/generated/sdk_io.dart |
diff --git a/analyzer/lib/src/generated/sdk_io.dart b/analyzer/lib/src/generated/sdk_io.dart |
deleted file mode 100644 |
index bcdb33d8ed8f92d1c9b16adf1528f09febaa33ac..0000000000000000000000000000000000000000 |
--- a/analyzer/lib/src/generated/sdk_io.dart |
+++ /dev/null |
@@ -1,594 +0,0 @@ |
-// Copyright (c) 2014, 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. |
- |
-// This code was auto-generated, is not intended to be edited, and is subject to |
-// significant change. Please see the README file for more information. |
- |
-library engine.sdk.io; |
- |
-import 'dart:io'; |
- |
-import 'package:analyzer/src/context/context.dart' as newContext; |
-import 'package:analyzer/src/generated/java_engine.dart'; |
- |
-import 'ast.dart'; |
-import 'engine.dart'; |
-import 'error.dart'; |
-import 'java_core.dart'; |
-import 'java_engine_io.dart'; |
-import 'java_io.dart'; |
-import 'parser.dart'; |
-import 'scanner.dart'; |
-import 'sdk.dart'; |
-import 'source_io.dart'; |
- |
-/** |
- * A Dart SDK installed in a specified directory. Typical Dart SDK layout is |
- * something like... |
- * |
- * dart-sdk/ |
- * bin/ |
- * dart[.exe] <-- VM |
- * lib/ |
- * core/ |
- * core.dart |
- * ... other core library files ... |
- * ... other libraries ... |
- * util/ |
- * ... Dart utilities ... |
- * Chromium/ <-- Dartium typically exists in a sibling directory |
- */ |
-class DirectoryBasedDartSdk implements DartSdk { |
- /** |
- * The default SDK, or `null` if the default SDK either has not yet been |
- * created or cannot be created for some reason. |
- */ |
- static DirectoryBasedDartSdk _DEFAULT_SDK; |
- |
- /** |
- * The name of the directory within the SDK directory that contains |
- * executables. |
- */ |
- static String _BIN_DIRECTORY_NAME = "bin"; |
- |
- /** |
- * The name of the directory on non-Mac that contains dartium. |
- */ |
- static String _DARTIUM_DIRECTORY_NAME = "chromium"; |
- |
- /** |
- * The name of the dart2js executable on non-windows operating systems. |
- */ |
- static String _DART2JS_EXECUTABLE_NAME = "dart2js"; |
- |
- /** |
- * The name of the file containing the dart2js executable on Windows. |
- */ |
- static String _DART2JS_EXECUTABLE_NAME_WIN = "dart2js.bat"; |
- |
- /** |
- * The name of the file containing the Dartium executable on Linux. |
- */ |
- static String _DARTIUM_EXECUTABLE_NAME_LINUX = "chrome"; |
- |
- /** |
- * The name of the file containing the Dartium executable on Macintosh. |
- */ |
- static String _DARTIUM_EXECUTABLE_NAME_MAC = |
- "Chromium.app/Contents/MacOS/Chromium"; |
- |
- /** |
- * The name of the file containing the Dartium executable on Windows. |
- */ |
- static String _DARTIUM_EXECUTABLE_NAME_WIN = "Chrome.exe"; |
- |
- /** |
- * The name of the [System] property whose value is the path to the default |
- * Dart SDK directory. |
- */ |
- static String _DEFAULT_DIRECTORY_PROPERTY_NAME = "com.google.dart.sdk"; |
- |
- /** |
- * The name of the directory within the SDK directory that contains |
- * documentation for the libraries. |
- */ |
- static String _DOCS_DIRECTORY_NAME = "docs"; |
- |
- /** |
- * The suffix added to the name of a library to derive the name of the file |
- * containing the documentation for that library. |
- */ |
- static String _DOC_FILE_SUFFIX = "_api.json"; |
- |
- /** |
- * The name of the directory within the SDK directory that contains the |
- * sdk_library_metadata directory. |
- */ |
- static String _INTERNAL_DIR = "_internal"; |
- |
- /** |
- * The name of the sdk_library_metadata directory that contains the package |
- * holding the libraries.dart file. |
- */ |
- static String _SDK_LIBRARY_METADATA_DIR = "sdk_library_metadata"; |
- |
- /** |
- * The name of the directory within the sdk_library_metadata that contains |
- * libraries.dart. |
- */ |
- static String _SDK_LIBRARY_METADATA_LIB_DIR = "lib"; |
- |
- /** |
- * The name of the directory within the SDK directory that contains the |
- * libraries. |
- */ |
- static String _LIB_DIRECTORY_NAME = "lib"; |
- |
- /** |
- * The name of the libraries file. |
- */ |
- static String _LIBRARIES_FILE = "libraries.dart"; |
- |
- /** |
- * The name of the pub executable on windows. |
- */ |
- static String _PUB_EXECUTABLE_NAME_WIN = "pub.bat"; |
- |
- /** |
- * The name of the pub executable on non-windows operating systems. |
- */ |
- static String _PUB_EXECUTABLE_NAME = "pub"; |
- |
- /** |
- * The name of the file within the SDK directory that contains the version |
- * number of the SDK. |
- */ |
- static String _VERSION_FILE_NAME = "version"; |
- |
- /** |
- * The name of the file containing the VM executable on the Windows operating |
- * system. |
- */ |
- static String _VM_EXECUTABLE_NAME_WIN = "dart.exe"; |
- |
- /** |
- * The name of the file containing the VM executable on non-Windows operating |
- * systems. |
- */ |
- static String _VM_EXECUTABLE_NAME = "dart"; |
- |
- /** |
- * Return the default Dart SDK, or `null` if the directory containing the |
- * default SDK cannot be determined (or does not exist). |
- */ |
- static DirectoryBasedDartSdk get defaultSdk { |
- if (_DEFAULT_SDK == null) { |
- JavaFile sdkDirectory = defaultSdkDirectory; |
- if (sdkDirectory == null) { |
- return null; |
- } |
- _DEFAULT_SDK = new DirectoryBasedDartSdk(sdkDirectory); |
- } |
- return _DEFAULT_SDK; |
- } |
- |
- /** |
- * Return the default directory for the Dart SDK, or `null` if the directory |
- * cannot be determined (or does not exist). The default directory is provided |
- * by a system property named `com.google.dart.sdk`. |
- */ |
- static JavaFile get defaultSdkDirectory { |
- String sdkProperty = |
- JavaSystemIO.getProperty(_DEFAULT_DIRECTORY_PROPERTY_NAME); |
- if (sdkProperty == null) { |
- return null; |
- } |
- JavaFile sdkDirectory = new JavaFile(sdkProperty); |
- if (!sdkDirectory.exists()) { |
- return null; |
- } |
- return sdkDirectory; |
- } |
- |
- /** |
- * The [AnalysisContext] which is used for all of the sources in this sdk. |
- */ |
- InternalAnalysisContext _analysisContext; |
- |
- /** |
- * The directory containing the SDK. |
- */ |
- JavaFile _sdkDirectory; |
- |
- /** |
- * The revision number of this SDK, or `"0"` if the revision number cannot be |
- * discovered. |
- */ |
- String _sdkVersion; |
- |
- /** |
- * The file containing the dart2js executable. |
- */ |
- JavaFile _dart2jsExecutable; |
- |
- /** |
- * The file containing the Dartium executable. |
- */ |
- JavaFile _dartiumExecutable; |
- |
- /** |
- * The file containing the pub executable. |
- */ |
- JavaFile _pubExecutable; |
- |
- /** |
- * The file containing the VM executable. |
- */ |
- JavaFile _vmExecutable; |
- |
- /** |
- * A mapping from Dart library URI's to the library represented by that URI. |
- */ |
- LibraryMap _libraryMap; |
- |
- /** |
- * Initialize a newly created SDK to represent the Dart SDK installed in the |
- * [sdkDirectory]. The flag [useDart2jsPaths] is `true` if the dart2js path |
- * should be used when it is available |
- */ |
- DirectoryBasedDartSdk(JavaFile sdkDirectory, [bool useDart2jsPaths = false]) { |
- this._sdkDirectory = sdkDirectory.getAbsoluteFile(); |
- _libraryMap = initialLibraryMap(useDart2jsPaths); |
- } |
- |
- @override |
- AnalysisContext get context { |
- if (_analysisContext == null) { |
- if (AnalysisEngine.instance.useTaskModel) { |
- _analysisContext = new newContext.SdkAnalysisContext(); |
- } else { |
- _analysisContext = new SdkAnalysisContext(); |
- } |
- SourceFactory factory = new SourceFactory([new DartUriResolver(this)]); |
- _analysisContext.sourceFactory = factory; |
- List<String> uris = this.uris; |
- ChangeSet changeSet = new ChangeSet(); |
- for (String uri in uris) { |
- changeSet.addedSource(factory.forUri(uri)); |
- } |
- _analysisContext.applyChanges(changeSet); |
- } |
- return _analysisContext; |
- } |
- |
- /** |
- * Return the file containing the dart2js executable, or `null` if it does not |
- * exist. |
- */ |
- JavaFile get dart2JsExecutable { |
- if (_dart2jsExecutable == null) { |
- _dart2jsExecutable = _verifyExecutable(new JavaFile.relative( |
- new JavaFile.relative(_sdkDirectory, _BIN_DIRECTORY_NAME), |
- OSUtilities.isWindows() |
- ? _DART2JS_EXECUTABLE_NAME_WIN |
- : _DART2JS_EXECUTABLE_NAME)); |
- } |
- return _dart2jsExecutable; |
- } |
- |
- /** |
- * Return the name of the file containing the Dartium executable. |
- */ |
- String get dartiumBinaryName { |
- if (OSUtilities.isWindows()) { |
- return _DARTIUM_EXECUTABLE_NAME_WIN; |
- } else if (OSUtilities.isMac()) { |
- return _DARTIUM_EXECUTABLE_NAME_MAC; |
- } else { |
- return _DARTIUM_EXECUTABLE_NAME_LINUX; |
- } |
- } |
- |
- /** |
- * Return the file containing the Dartium executable, or `null` if it does not |
- * exist. |
- */ |
- JavaFile get dartiumExecutable { |
- if (_dartiumExecutable == null) { |
- _dartiumExecutable = _verifyExecutable( |
- new JavaFile.relative(dartiumWorkingDirectory, dartiumBinaryName)); |
- } |
- return _dartiumExecutable; |
- } |
- |
- /** |
- * Return the directory where dartium can be found (the directory that will be |
- * the working directory is Dartium is invoked without changing the default). |
- */ |
- JavaFile get dartiumWorkingDirectory => |
- getDartiumWorkingDirectory(_sdkDirectory.getParentFile()); |
- |
- /** |
- * Return the directory containing the SDK. |
- */ |
- JavaFile get directory => _sdkDirectory; |
- |
- /** |
- * Return the directory containing documentation for the SDK. |
- */ |
- JavaFile get docDirectory => |
- new JavaFile.relative(_sdkDirectory, _DOCS_DIRECTORY_NAME); |
- |
- /** |
- * Return `true` if this SDK includes documentation. |
- */ |
- bool get hasDocumentation => docDirectory.exists(); |
- |
- /** |
- * Return `true` if the Dartium binary is available. |
- */ |
- bool get isDartiumInstalled => dartiumExecutable != null; |
- |
- /** |
- * Return the directory within the SDK directory that contains the libraries. |
- */ |
- JavaFile get libraryDirectory => |
- new JavaFile.relative(_sdkDirectory, _LIB_DIRECTORY_NAME); |
- |
- /** |
- * Return the file containing the Pub executable, or `null` if it does not exist. |
- */ |
- JavaFile get pubExecutable { |
- if (_pubExecutable == null) { |
- _pubExecutable = _verifyExecutable(new JavaFile.relative( |
- new JavaFile.relative(_sdkDirectory, _BIN_DIRECTORY_NAME), OSUtilities |
- .isWindows() ? _PUB_EXECUTABLE_NAME_WIN : _PUB_EXECUTABLE_NAME)); |
- } |
- return _pubExecutable; |
- } |
- |
- @override |
- List<SdkLibrary> get sdkLibraries => _libraryMap.sdkLibraries; |
- |
- /** |
- * Return the revision number of this SDK, or `"0"` if the revision number |
- * cannot be discovered. |
- */ |
- @override |
- String get sdkVersion { |
- if (_sdkVersion == null) { |
- _sdkVersion = DartSdk.DEFAULT_VERSION; |
- JavaFile revisionFile = |
- new JavaFile.relative(_sdkDirectory, _VERSION_FILE_NAME); |
- try { |
- String revision = revisionFile.readAsStringSync(); |
- if (revision != null) { |
- _sdkVersion = revision.trim(); |
- } |
- } on FileSystemException { |
- // Fall through to return the default. |
- } |
- } |
- return _sdkVersion; |
- } |
- |
- @override |
- List<String> get uris => _libraryMap.uris; |
- |
- /** |
- * Return the name of the file containing the VM executable. |
- */ |
- String get vmBinaryName { |
- if (OSUtilities.isWindows()) { |
- return _VM_EXECUTABLE_NAME_WIN; |
- } else { |
- return _VM_EXECUTABLE_NAME; |
- } |
- } |
- |
- /** |
- * Return the file containing the VM executable, or `null` if it does not |
- * exist. |
- */ |
- JavaFile get vmExecutable { |
- if (_vmExecutable == null) { |
- _vmExecutable = _verifyExecutable(new JavaFile.relative( |
- new JavaFile.relative(_sdkDirectory, _BIN_DIRECTORY_NAME), |
- vmBinaryName)); |
- } |
- return _vmExecutable; |
- } |
- |
- @override |
- Source fromFileUri(Uri uri) { |
- JavaFile file = new JavaFile.fromUri(uri); |
- String filePath = file.getAbsolutePath(); |
- String libPath = libraryDirectory.getAbsolutePath(); |
- if (!filePath.startsWith("$libPath${JavaFile.separator}")) { |
- return null; |
- } |
- filePath = filePath.substring(libPath.length + 1); |
- for (SdkLibrary library in _libraryMap.sdkLibraries) { |
- String libraryPath = library.path; |
- if (filePath.replaceAll('\\', '/') == libraryPath) { |
- String path = library.shortName; |
- try { |
- return new FileBasedSource(file, parseUriWithException(path)); |
- } on URISyntaxException catch (exception, stackTrace) { |
- AnalysisEngine.instance.logger.logInformation( |
- "Failed to create URI: $path", |
- new CaughtException(exception, stackTrace)); |
- return null; |
- } |
- } |
- libraryPath = new JavaFile(libraryPath).getParent(); |
- if (filePath.startsWith("$libraryPath${JavaFile.separator}")) { |
- String path = |
- "${library.shortName}/${filePath.substring(libraryPath.length + 1)}"; |
- try { |
- return new FileBasedSource(file, parseUriWithException(path)); |
- } on URISyntaxException catch (exception, stackTrace) { |
- AnalysisEngine.instance.logger.logInformation( |
- "Failed to create URI: $path", |
- new CaughtException(exception, stackTrace)); |
- return null; |
- } |
- } |
- } |
- return null; |
- } |
- |
- /** |
- * Return the directory where dartium can be found (the directory that will be |
- * the working directory if Dartium is invoked without changing the default), |
- * assuming that the Editor was installed in the [installDir]. |
- */ |
- JavaFile getDartiumWorkingDirectory(JavaFile installDir) => |
- new JavaFile.relative(installDir, _DARTIUM_DIRECTORY_NAME); |
- |
- /** |
- * Return the auxiliary documentation file for the library with the given |
- * [libraryName], or `null` if no such file exists. |
- */ |
- JavaFile getDocFileFor(String libraryName) { |
- JavaFile dir = docDirectory; |
- if (!dir.exists()) { |
- return null; |
- } |
- JavaFile libDir = new JavaFile.relative(dir, libraryName); |
- JavaFile docFile = |
- new JavaFile.relative(libDir, "$libraryName$_DOC_FILE_SUFFIX"); |
- if (docFile.exists()) { |
- return docFile; |
- } |
- return null; |
- } |
- |
- @override |
- SdkLibrary getSdkLibrary(String dartUri) => _libraryMap.getLibrary(dartUri); |
- |
- /** |
- * Read all of the configuration files to initialize the library maps. The |
- * flag [useDart2jsPaths] is `true` if the dart2js path should be used when it |
- * is available. Return the initialized library map. |
- */ |
- LibraryMap initialLibraryMap(bool useDart2jsPaths) { |
- JavaFile librariesFile = new JavaFile.relative( |
- new JavaFile.relative( |
- new JavaFile.relative( |
- new JavaFile.relative(libraryDirectory, _INTERNAL_DIR), |
- _SDK_LIBRARY_METADATA_DIR), |
- _SDK_LIBRARY_METADATA_LIB_DIR), |
- _LIBRARIES_FILE); |
- try { |
- String contents = librariesFile.readAsStringSync(); |
- return new SdkLibrariesReader(useDart2jsPaths).readFromFile( |
- librariesFile, contents); |
- } catch (exception, stackTrace) { |
- AnalysisEngine.instance.logger.logError( |
- "Could not initialize the library map from ${librariesFile.getAbsolutePath()}", |
- new CaughtException(exception, stackTrace)); |
- return new LibraryMap(); |
- } |
- } |
- |
- @override |
- Source mapDartUri(String dartUri) { |
- String libraryName; |
- String relativePath; |
- int index = dartUri.indexOf('/'); |
- if (index >= 0) { |
- libraryName = dartUri.substring(0, index); |
- relativePath = dartUri.substring(index + 1); |
- } else { |
- libraryName = dartUri; |
- relativePath = ""; |
- } |
- SdkLibrary library = getSdkLibrary(libraryName); |
- if (library == null) { |
- return null; |
- } |
- try { |
- JavaFile file = new JavaFile.relative(libraryDirectory, library.path); |
- if (!relativePath.isEmpty) { |
- file = file.getParentFile(); |
- file = new JavaFile.relative(file, relativePath); |
- } |
- return new FileBasedSource(file, parseUriWithException(dartUri)); |
- } on URISyntaxException { |
- return null; |
- } |
- } |
- |
- /** |
- * Return the given [file] if it exists and is executable, or `null` if it |
- * does not exist or is not executable. |
- */ |
- JavaFile _verifyExecutable(JavaFile file) => |
- file.isExecutable() ? file : null; |
-} |
- |
-/** |
- * An object used to read and parse the libraries file |
- * (dart-sdk/lib/_internal/sdk_library_metadata/lib/libraries.dart) for information |
- * about the libraries in an SDK. The library information is represented as a |
- * Dart file containing a single top-level variable whose value is a const map. |
- * The keys of the map are the names of libraries defined in the SDK and the |
- * values in the map are info objects defining the library. For example, a |
- * subset of a typical SDK might have a libraries file that looks like the |
- * following: |
- * |
- * final Map<String, LibraryInfo> LIBRARIES = const <LibraryInfo> { |
- * // Used by VM applications |
- * "builtin" : const LibraryInfo( |
- * "builtin/builtin_runtime.dart", |
- * category: "Server", |
- * platforms: VM_PLATFORM), |
- * |
- * "compiler" : const LibraryInfo( |
- * "compiler/compiler.dart", |
- * category: "Tools", |
- * platforms: 0), |
- * }; |
- */ |
-class SdkLibrariesReader { |
- /** |
- * A flag indicating whether the dart2js path should be used when it is |
- * available. |
- */ |
- final bool _useDart2jsPaths; |
- |
- /** |
- * Initialize a newly created library reader to use the dart2js path if |
- * [_useDart2jsPaths] is `true`. |
- */ |
- SdkLibrariesReader(this._useDart2jsPaths); |
- |
- /** |
- * Return the library map read from the given [file], given that the content |
- * of the file is already known to be [libraryFileContents]. |
- */ |
- LibraryMap readFromFile(JavaFile file, String libraryFileContents) => |
- readFromSource(new FileBasedSource(file), libraryFileContents); |
- |
- /** |
- * Return the library map read from the given [source], given that the content |
- * of the file is already known to be [libraryFileContents]. |
- */ |
- LibraryMap readFromSource(Source source, String libraryFileContents) { |
- BooleanErrorListener errorListener = new BooleanErrorListener(); |
- Scanner scanner = new Scanner( |
- source, new CharSequenceReader(libraryFileContents), errorListener); |
- Parser parser = new Parser(source, errorListener); |
- CompilationUnit unit = parser.parseCompilationUnit(scanner.tokenize()); |
- SdkLibrariesReader_LibraryBuilder libraryBuilder = |
- new SdkLibrariesReader_LibraryBuilder(_useDart2jsPaths); |
- // If any syntactic errors were found then don't try to visit the AST |
- // structure. |
- if (!errorListener.errorReported) { |
- unit.accept(libraryBuilder); |
- } |
- return libraryBuilder.librariesMap; |
- } |
-} |