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

Unified Diff: pkg/analyzer_experimental/lib/src/analyzer_impl.dart

Issue 45573002: Rename analyzer_experimental to analyzer. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Tweaks before publishing. Created 7 years, 2 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 | « pkg/analyzer_experimental/lib/options.dart ('k') | pkg/analyzer_experimental/lib/src/error.dart » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: pkg/analyzer_experimental/lib/src/analyzer_impl.dart
diff --git a/pkg/analyzer_experimental/lib/src/analyzer_impl.dart b/pkg/analyzer_experimental/lib/src/analyzer_impl.dart
deleted file mode 100644
index c7beef72ad41fd5a5b415b05dd0d889cf8f85b46..0000000000000000000000000000000000000000
--- a/pkg/analyzer_experimental/lib/src/analyzer_impl.dart
+++ /dev/null
@@ -1,188 +0,0 @@
-// Copyright (c) 2013, 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 analyzer_impl;
-
-import 'dart:io';
-
-import 'generated/java_io.dart';
-import 'generated/engine.dart';
-import 'generated/error.dart';
-import 'generated/source_io.dart';
-import 'generated/sdk.dart';
-import 'generated/sdk_io.dart';
-import 'generated/element.dart';
-import '../options.dart';
-
-
-DartSdk sdk;
-
-/// Analyzes single library [File].
-class AnalyzerImpl {
- final CommandLineOptions options;
-
- ContentCache contentCache = new ContentCache();
- SourceFactory sourceFactory;
- AnalysisContext context;
-
- /// All [Source]s references by the analyzed library.
- final Set<Source> sources = new Set<Source>();
-
- /// All [AnalysisErrorInfo]s in the analyzed library.
- final List<AnalysisErrorInfo> errorInfos = new List<AnalysisErrorInfo>();
-
- AnalyzerImpl(CommandLineOptions this.options) {
- if (sdk == null) {
- sdk = new DirectoryBasedDartSdk(new JavaFile(options.dartSdkPath));
- }
- }
-
- /**
- * Treats the [sourcePath] as the top level library and analyzes it.
- */
- void analyze(String sourcePath) {
- sources.clear();
- errorInfos.clear();
- if (sourcePath == null) {
- throw new ArgumentError("sourcePath cannot be null");
- }
- var sourceFile = new JavaFile(sourcePath);
- var uriKind = getUriKind(sourceFile);
- var librarySource = new FileBasedSource.con2(contentCache, sourceFile, uriKind);
- // resolve library
- prepareAnalysisContext(sourceFile);
- var libraryElement = context.computeLibraryElement(librarySource);
- // prepare source and errors
- prepareSources(libraryElement);
- prepareErrors();
- }
-
- /// Returns the maximal [ErrorSeverity] of the recorded errors.
- ErrorSeverity get maxErrorSeverity {
- var status = ErrorSeverity.NONE;
- for (AnalysisErrorInfo errorInfo in errorInfos) {
- for (AnalysisError error in errorInfo.errors) {
- var severity = error.errorCode.errorSeverity;
- status = status.max(severity);
- }
- }
- return status;
- }
-
- void prepareAnalysisContext(JavaFile sourceFile) {
- List<UriResolver> resolvers = [new DartUriResolver(sdk), new FileUriResolver()];
- // may be add package resolver
- {
- JavaFile packageDirectory;
- if (options.packageRootPath != null) {
- packageDirectory = new JavaFile(options.packageRootPath);
- } else {
- packageDirectory = getPackageDirectoryFor(sourceFile);
- }
- if (packageDirectory != null) {
- resolvers.add(new PackageUriResolver([packageDirectory]));
- }
- }
- sourceFactory = new SourceFactory.con1(contentCache, resolvers);
- context = AnalysisEngine.instance.createAnalysisContext();
- context.sourceFactory = sourceFactory;
-
- // set options for context
- AnalysisOptionsImpl contextOptions = new AnalysisOptionsImpl();
- contextOptions.cacheSize = 256;
- contextOptions.hint = !options.disableHints;
- context.analysisOptions = contextOptions;
- }
-
- /// Fills [sources].
- void prepareSources(LibraryElement library) {
- var units = new Set<CompilationUnitElement>();
- var libraries = new Set<LibraryElement>();
- addLibrarySources(library, libraries, units);
- }
-
- void addCompilationUnitSource(CompilationUnitElement unit, Set<LibraryElement> libraries,
- Set<CompilationUnitElement> units) {
- if (unit == null || units.contains(unit)) {
- return;
- }
- units.add(unit);
- sources.add(unit.source);
- }
-
- void addLibrarySources(LibraryElement library, Set<LibraryElement> libraries,
- Set<CompilationUnitElement> units) {
- if (library == null || libraries.contains(library)) {
- return;
- }
- libraries.add(library);
- // may be skip library
- {
- UriKind uriKind = library.source.uriKind;
- // Optionally skip package: libraries.
- if (!options.showPackageWarnings && uriKind == UriKind.PACKAGE_URI) {
- return;
- }
- // Optionally skip SDK libraries.
- if (!options.showSdkWarnings && uriKind == UriKind.DART_URI) {
- return;
- }
- }
- // add compilation units
- addCompilationUnitSource(library.definingCompilationUnit, libraries, units);
- for (CompilationUnitElement child in library.parts) {
- addCompilationUnitSource(child, libraries, units);
- }
- // add referenced libraries
- for (LibraryElement child in library.importedLibraries) {
- addLibrarySources(child, libraries, units);
- }
- for (LibraryElement child in library.exportedLibraries) {
- addLibrarySources(child, libraries, units);
- }
- }
-
- /// Fills [errorInfos].
- void prepareErrors() {
- for (Source source in sources) {
- context.computeErrors(source);
- var sourceErrors = context.getErrors(source);
- errorInfos.add(sourceErrors);
- }
- }
-
- static JavaFile getPackageDirectoryFor(JavaFile sourceFile) {
- // we are going to ask parent file, so get absolute path
- sourceFile = sourceFile.getAbsoluteFile();
- // look in the containing directories
- JavaFile dir = sourceFile.getParentFile();
- while (dir != null) {
- JavaFile packagesDir = new JavaFile.relative(dir, "packages");
- if (packagesDir.exists()) {
- return packagesDir;
- }
- dir = dir.getParentFile();
- }
- // not found
- return null;
- }
-
- /**
- * Returns the [UriKind] for the given input file. Usually {@link UriKind#FILE_URI}, but if
- * the given file is located in the "lib" directory of the [sdk], then returns
- * {@link UriKind#DART_URI}.
- */
- static UriKind getUriKind(JavaFile file) {
- // may be file in SDK
- if (sdk is DirectoryBasedDartSdk) {
- DirectoryBasedDartSdk directoryBasedSdk = sdk;
- String sdkLibPath = directoryBasedSdk.libraryDirectory.getPath() + JavaFile.separator;
- if (file.getPath().startsWith(sdkLibPath)) {
- return UriKind.DART_URI;
- }
- }
- // some generic file
- return UriKind.FILE_URI;
- }
-}
« no previous file with comments | « pkg/analyzer_experimental/lib/options.dart ('k') | pkg/analyzer_experimental/lib/src/error.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698