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

Side by Side Diff: compiler/java/com/google/dart/compiler/DartCompilerMainContext.java

Issue 8395013: DartC User Warning Framework (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Use new ErrorCode enums in single onError() method. Created 9 years, 1 month 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file. 3 // BSD-style license that can be found in the LICENSE file.
4 4
5 package com.google.dart.compiler; 5 package com.google.dart.compiler;
6 6
7 import com.google.dart.compiler.ast.DartUnit; 7 import com.google.dart.compiler.ast.DartUnit;
8 import com.google.dart.compiler.ast.LibraryUnit; 8 import com.google.dart.compiler.ast.LibraryUnit;
9 import com.google.dart.compiler.metrics.CompilerMetrics; 9 import com.google.dart.compiler.metrics.CompilerMetrics;
10 import com.google.dart.compiler.parser.DartParser; 10 import com.google.dart.compiler.parser.DartParser;
11 import com.google.dart.compiler.resolver.ResolverErrorCode;
12 import com.google.dart.compiler.resolver.TypeErrorCode;
11 13
12 import java.io.IOException; 14 import java.io.IOException;
13 import java.io.Reader; 15 import java.io.Reader;
14 import java.io.Writer; 16 import java.io.Writer;
15 import java.net.URI; 17 import java.net.URI;
16 import java.util.concurrent.atomic.AtomicBoolean; 18 import java.util.concurrent.atomic.AtomicBoolean;
17 import java.util.concurrent.atomic.AtomicInteger; 19 import java.util.concurrent.atomic.AtomicInteger;
18 20
19 /** 21 /**
20 * An overall context for the Dart compiler providing an adapter and forwarding 22 * An overall context for the Dart compiler providing an adapter and forwarding
(...skipping 20 matching lines...) Expand all
41 DartCompilerMainContext(LibrarySource lib, DartArtifactProvider provider, 43 DartCompilerMainContext(LibrarySource lib, DartArtifactProvider provider,
42 DartCompilerListener listener, 44 DartCompilerListener listener,
43 CompilerConfiguration compilerConfiguration) { 45 CompilerConfiguration compilerConfiguration) {
44 this.lib = lib; 46 this.lib = lib;
45 this.provider = provider; 47 this.provider = provider;
46 this.listener = listener; 48 this.listener = listener;
47 this.compilerConfiguration = compilerConfiguration; 49 this.compilerConfiguration = compilerConfiguration;
48 } 50 }
49 51
50 @Override 52 @Override
51 public void compilationError(DartCompilationError event) { 53 public void onError(DartCompilationError event) {
52 incrementErrorCount(); 54 if (event.getErrorCode().getSubSystem() == SubSystem.STATIC_TYPE
53 listener.compilationError(event); 55 && (!shouldWarnOnNoSuchType() || (
56 (event.getErrorCode() != TypeErrorCode.CANNOT_BE_RESOLVED) &&
57 (event.getErrorCode() != TypeErrorCode.NO_SUCH_TYPE) &&
58 (event.getErrorCode() != TypeErrorCode.INTERFACE_HAS_NO_METHOD_NAMED )))) {
59 incrementTypeErrorCount();
60 } else if (event.getErrorCode().getErrorSeverity() == ErrorSeverity.ERROR) {
61 incrementErrorCount();
62 } else if (event.getErrorCode().getErrorSeverity() == ErrorSeverity.WARNING) {
63 incrementWarningCount();
64 }
65 listener.onError(event);
54 } 66 }
55 67
56 @Override 68 @Override
57 public void compilationWarning(DartCompilationError event) {
58 incrementWarningCount();
59 listener.compilationWarning(event);
60 }
61
62 @Override
63 public void typeError(DartCompilationError event) {
64 if (!shouldWarnOnNoSuchType()
65 || ((event.getErrorCode() != DartCompilerErrorCode.CANNOT_BE_RESOLVED)
66 && (event.getErrorCode() != DartCompilerErrorCode.NO_SUCH_TYPE)
67 && (event.getErrorCode() != DartCompilerErrorCode.INTERFACE_HAS_NO_M ETHOD_NAMED))) {
68
69 incrementTypeErrorCount();
70 }
71 listener.typeError(event);
72 }
73
74 @Override
75 public LibraryUnit getApplicationUnit() { 69 public LibraryUnit getApplicationUnit() {
76 return getAppLibraryUnit(); 70 return getAppLibraryUnit();
77 } 71 }
78 72
79 @Override 73 @Override
80 public LibraryUnit getAppLibraryUnit() { 74 public LibraryUnit getAppLibraryUnit() {
81 // use double-checked looking pattern with use of volatile 75 // use double-checked looking pattern with use of volatile
82 if (appLibraryUnit == null) { 76 if (appLibraryUnit == null) {
83 synchronized (this) { 77 synchronized (this) {
84 if (appLibraryUnit == null) { 78 if (appLibraryUnit == null) {
85 try { 79 try {
86 appLibraryUnit = 80 appLibraryUnit =
87 DartParser.getSourceParser(lib, listener).preProcessLibraryDirec tives(lib); 81 DartParser.getSourceParser(lib, listener).preProcessLibraryDirec tives(lib);
88 } catch (IOException ex) { 82 } catch (IOException e) {
89 compilationError(new DartCompilationError(lib, ex)); 83 onError(new DartCompilationError(lib, DartCompilerErrorCode.IO, e.ge tMessage()));
90 return null; 84 return null;
91 } 85 }
92 } 86 }
93 } 87 }
94 } 88 }
95 return appLibraryUnit; 89 return appLibraryUnit;
96 } 90 }
97 91
98 @Override 92 @Override
99 public Reader getArtifactReader(Source source, String part, String extension) 93 public Reader getArtifactReader(Source source, String part, String extension)
(...skipping 24 matching lines...) Expand all
124 return typeErrorCount.get(); 118 return typeErrorCount.get();
125 } 119 }
126 120
127 @Override 121 @Override
128 public LibraryUnit getLibraryUnit(LibrarySource libSrc) { 122 public LibraryUnit getLibraryUnit(LibrarySource libSrc) {
129 if (libSrc == lib) { 123 if (libSrc == lib) {
130 return getApplicationUnit(); 124 return getApplicationUnit();
131 } 125 }
132 try { 126 try {
133 return DartParser.getSourceParser(libSrc, listener).preProcessLibraryDirec tives(libSrc); 127 return DartParser.getSourceParser(libSrc, listener).preProcessLibraryDirec tives(libSrc);
134 } catch (IOException ex) { 128 } catch (IOException e) {
135 compilationError(new DartCompilationError(libSrc, ex)); 129 onError(new DartCompilationError(libSrc, DartCompilerErrorCode.IO, e.getMe ssage()));
136 return null; 130 return null;
137 } 131 }
138 } 132 }
139 133
140 @Override 134 @Override
141 public boolean isOutOfDate(Source source, Source base, String extension) { 135 public boolean isOutOfDate(Source source, Source base, String extension) {
142 return provider.isOutOfDate(source, base, extension); 136 return provider.isOutOfDate(source, base, extension);
143 } 137 }
144 138
145 protected void incrementErrorCount() { 139 protected void incrementErrorCount() {
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
183 @Override 177 @Override
184 public LibrarySource getSystemLibraryFor(String importSpec) { 178 public LibrarySource getSystemLibraryFor(String importSpec) {
185 return compilerConfiguration.getSystemLibraryFor(importSpec); 179 return compilerConfiguration.getSystemLibraryFor(importSpec);
186 } 180 }
187 181
188 @Override 182 @Override
189 public void unitCompiled(DartUnit unit) { 183 public void unitCompiled(DartUnit unit) {
190 listener.unitCompiled(unit); 184 listener.unitCompiled(unit);
191 } 185 }
192 } 186 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698