| Index: dart/compiler/java/com/google/dart/compiler/DartCompilerMainContext.java
|
| diff --git a/dart/compiler/java/com/google/dart/compiler/DartCompilerMainContext.java b/dart/compiler/java/com/google/dart/compiler/DartCompilerMainContext.java
|
| deleted file mode 100644
|
| index ea3ea09122acfcaf925fccd36c20f1b6b8b042c4..0000000000000000000000000000000000000000
|
| --- a/dart/compiler/java/com/google/dart/compiler/DartCompilerMainContext.java
|
| +++ /dev/null
|
| @@ -1,232 +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.
|
| -
|
| -package com.google.dart.compiler;
|
| -
|
| -import com.google.common.collect.Lists;
|
| -import com.google.common.collect.Maps;
|
| -import com.google.common.collect.Sets;
|
| -import com.google.dart.compiler.ast.DartUnit;
|
| -import com.google.dart.compiler.ast.LibraryUnit;
|
| -import com.google.dart.compiler.metrics.CompilerMetrics;
|
| -import com.google.dart.compiler.parser.DartParser;
|
| -import com.google.dart.compiler.resolver.Elements;
|
| -import com.google.dart.compiler.resolver.ResolverErrorCode;
|
| -import com.google.dart.compiler.resolver.TypeErrorCode;
|
| -
|
| -import java.io.IOException;
|
| -import java.io.Reader;
|
| -import java.io.Writer;
|
| -import java.net.URI;
|
| -import java.util.Collections;
|
| -import java.util.List;
|
| -import java.util.Map;
|
| -import java.util.concurrent.atomic.AtomicBoolean;
|
| -import java.util.concurrent.atomic.AtomicInteger;
|
| -
|
| -/**
|
| - * An overall context for the Dart compiler providing an adapter and forwarding
|
| - * mechanism for to both {@link DartArtifactProvider} and
|
| - * {@link DartCompilerListener}. This is an internal compiler construct and as
|
| - * such should not be instantiated or subclassed by those outside the compiler
|
| - * itself.
|
| - */
|
| -final class DartCompilerMainContext implements DartCompilerListener, DartCompilerContext {
|
| -
|
| - private final LibrarySource lib;
|
| - private final DartArtifactProvider provider;
|
| - private final DartCompilerListener listener;
|
| - private final Map<Source, List<DartCompilationError>> errors = Maps.newHashMap();
|
| - private final AtomicInteger errorCount = new AtomicInteger(0);
|
| - private final AtomicInteger warningCount = new AtomicInteger(0);
|
| - private final AtomicInteger typeErrorCount = new AtomicInteger(0);
|
| - private final AtomicBoolean filesHaveChanged = new AtomicBoolean();
|
| - // declared volatile for thread-safety
|
| - private volatile LibraryUnit appLibraryUnit = null;
|
| -
|
| - private final CompilerConfiguration compilerConfiguration;
|
| -
|
| - DartCompilerMainContext(LibrarySource lib, DartArtifactProvider provider,
|
| - DartCompilerListener listener,
|
| - CompilerConfiguration compilerConfiguration) {
|
| - this.lib = lib;
|
| - this.provider = provider;
|
| - this.listener = listener;
|
| - this.compilerConfiguration = compilerConfiguration;
|
| - }
|
| -
|
| - @Override
|
| - public void onError(DartCompilationError event) {
|
| - // problems in dart:core are not interesting
|
| - // http://code.google.com/p/dart/issues/detail?id=7128
|
| - if (Elements.isCoreLibrarySource(event.getSource())) {
|
| - ErrorCode ec = event.getErrorCode();
|
| - if (ec == ResolverErrorCode.EXPECTED_CONSTANT_EXPRESSION_NUMBER
|
| - || ec == TypeErrorCode.ASSERT_BOOL
|
| - || ec == TypeErrorCode.TYPE_NOT_ASSIGNMENT_COMPATIBLE
|
| - || ec == TypeErrorCode.FOR_IN_WITH_INVALID_ITERATOR_RETURN_TYPE
|
| - || ec == TypeErrorCode.OPERATOR_EQUALS_BOOL_RETURN_TYPE
|
| - || ec == TypeErrorCode.CANNOT_OVERRIDE_TYPED_MEMBER
|
| - || ec == TypeErrorCode.CANNOT_OVERRIDE_METHOD_NOT_SUBTYPE
|
| - || ec == TypeErrorCode.OPERATOR_WRONG_OPERAND_TYPE) {
|
| - return;
|
| - }
|
| - }
|
| -
|
| - // Remember error.
|
| - {
|
| - Source source = event.getSource();
|
| - if (source != null) {
|
| - List<DartCompilationError> sourceErrors = errors.get(source);
|
| - if (sourceErrors == null) {
|
| - sourceErrors = Lists.newArrayList();
|
| - errors.put(source, sourceErrors);
|
| - }
|
| - sourceErrors.add(event);
|
| - }
|
| - }
|
| - // Increment counters.
|
| - if (event.getErrorCode().getSubSystem() == SubSystem.STATIC_TYPE) {
|
| - incrementTypeErrorCount();
|
| - }
|
| - if (event.getErrorCode().getErrorSeverity() == ErrorSeverity.ERROR) {
|
| - incrementErrorCount();
|
| - } else if (event.getErrorCode().getErrorSeverity() == ErrorSeverity.WARNING) {
|
| - incrementWarningCount();
|
| - }
|
| - // Notify listener.
|
| - listener.onError(event);
|
| - }
|
| -
|
| - @Override
|
| - public LibraryUnit getApplicationUnit() {
|
| - return getAppLibraryUnit();
|
| - }
|
| -
|
| - @Override
|
| - public LibraryUnit getAppLibraryUnit() {
|
| - // use double-checked looking pattern with use of volatile
|
| - if (appLibraryUnit == null) {
|
| - synchronized (this) {
|
| - if (appLibraryUnit == null) {
|
| - try {
|
| - appLibraryUnit = new DartParser(lib, DartParser.read(lib), false,
|
| - Sets.<String> newHashSet(), DartCompilerListener.EMPTY, null).preProcessLibraryDirectives(lib);
|
| - } catch (IOException e) {
|
| - onError(new DartCompilationError(lib, DartCompilerErrorCode.IO, e.getMessage()));
|
| - return null;
|
| - }
|
| - }
|
| - }
|
| - }
|
| - return appLibraryUnit;
|
| - }
|
| -
|
| - @Override
|
| - public Reader getArtifactReader(Source source, String part, String extension)
|
| - throws IOException {
|
| - return provider.getArtifactReader(source, part, extension);
|
| - }
|
| -
|
| - @Override
|
| - public URI getArtifactUri(DartSource source, String part, String extension) {
|
| - return provider.getArtifactUri(source, part, extension);
|
| - }
|
| -
|
| - @Override
|
| - public Writer getArtifactWriter(Source source, String part, String extension)
|
| - throws IOException {
|
| - return provider.getArtifactWriter(source, part, extension);
|
| - }
|
| -
|
| - /**
|
| - * @return the {@link DartCompilationError}s found in the given {@link Source}.
|
| - */
|
| - public List<DartCompilationError> getSourceErrors(Source source) {
|
| - List<DartCompilationError> sourceErrors = errors.get(source);
|
| - if (sourceErrors != null) {
|
| - return sourceErrors;
|
| - }
|
| - return Collections.emptyList();
|
| - }
|
| -
|
| - public int getErrorCount() {
|
| - return errorCount.get();
|
| - }
|
| -
|
| - public int getWarningCount() {
|
| - return warningCount.get();
|
| - }
|
| -
|
| - public int getTypeErrorCount() {
|
| - return typeErrorCount.get();
|
| - }
|
| -
|
| - @Override
|
| - public LibraryUnit getLibraryUnit(LibrarySource libSrc) {
|
| - if (libSrc == lib) {
|
| - return getApplicationUnit();
|
| - }
|
| - try {
|
| - return new DartParser(libSrc, DartParser.read(libSrc), false,
|
| - Sets.<String> newHashSet(), listener, null).preProcessLibraryDirectives(libSrc);
|
| - } catch (IOException e) {
|
| - onError(new DartCompilationError(libSrc, DartCompilerErrorCode.IO, e.getMessage()));
|
| - return null;
|
| - }
|
| - }
|
| -
|
| - @Override
|
| - public boolean isOutOfDate(Source source, Source base, String extension) {
|
| - return provider.isOutOfDate(source, base, extension);
|
| - }
|
| -
|
| - protected void incrementErrorCount() {
|
| - errorCount.incrementAndGet();
|
| - }
|
| -
|
| - protected void incrementWarningCount() {
|
| - warningCount.incrementAndGet();
|
| - }
|
| -
|
| - protected void incrementTypeErrorCount() {
|
| - typeErrorCount.incrementAndGet();
|
| - }
|
| -
|
| - @Override
|
| - public CompilerMetrics getCompilerMetrics() {
|
| - return compilerConfiguration.getCompilerMetrics();
|
| - }
|
| -
|
| - public void setFilesHaveChanged() {
|
| - filesHaveChanged.set(true);
|
| - }
|
| -
|
| - public boolean getFilesHaveChanged() {
|
| - return filesHaveChanged.get();
|
| - }
|
| -
|
| - @Override
|
| - public CompilerConfiguration getCompilerConfiguration() {
|
| - return compilerConfiguration;
|
| - }
|
| -
|
| - /**
|
| - * Return the system library corresponding to the specified "dart:<libname>" spec.
|
| - */
|
| - @Override
|
| - public LibrarySource getSystemLibraryFor(String importSpec) {
|
| - return compilerConfiguration.getSystemLibraryFor(importSpec);
|
| - }
|
| -
|
| - @Override
|
| - public void unitAboutToCompile(DartSource source, boolean diet) {
|
| - listener.unitAboutToCompile(source, diet);
|
| - }
|
| -
|
| - @Override
|
| - public void unitCompiled(DartUnit unit) {
|
| - listener.unitCompiled(unit);
|
| - }
|
| -}
|
|
|