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

Unified Diff: compiler/java/com/google/dart/compiler/resolver/ResolveVisitor.java

Issue 8384012: Make some ErrorCode-s compile-time errors and some just type warnings (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Changes for comments Created 9 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
Index: compiler/java/com/google/dart/compiler/resolver/ResolveVisitor.java
diff --git a/compiler/java/com/google/dart/compiler/resolver/ResolveVisitor.java b/compiler/java/com/google/dart/compiler/resolver/ResolveVisitor.java
index 6932a6a0798e638da05119775206ce54494977a0..133fac6e4465660fdf5f7f91e24919a51b5a46b0 100644
--- a/compiler/java/com/google/dart/compiler/resolver/ResolveVisitor.java
+++ b/compiler/java/com/google/dart/compiler/resolver/ResolveVisitor.java
@@ -4,6 +4,8 @@
package com.google.dart.compiler.resolver;
+import com.google.dart.compiler.ErrorCode;
+import com.google.dart.compiler.ast.DartCatchBlock;
import com.google.dart.compiler.ast.DartFunction;
import com.google.dart.compiler.ast.DartNode;
import com.google.dart.compiler.ast.DartNodeTraverser;
@@ -41,7 +43,7 @@ abstract class ResolveVisitor extends DartNodeTraverser<Element> {
DartTypeNode boundNode = typeParameterNode.getBound();
Type bound;
if (boundNode != null) {
- bound = getContext().resolveType(boundNode, true);
+ bound = getContext().resolveType(boundNode, true, ResolverErrorCode.NO_SUCH_TYPE);
boundNode.setType(bound);
} else {
bound = typeProvider.getObjectType();
@@ -52,7 +54,11 @@ abstract class ResolveVisitor extends DartNodeTraverser<Element> {
for (DartParameter parameter : node.getParams()) {
Elements.addParameter(element, (VariableElement) parameter.accept(this));
}
- Type returnType = resolveType(node.getReturnTypeNode(), element.getModifiers().isStatic());
+ Type returnType =
+ resolveType(
+ node.getReturnTypeNode(),
+ element.getModifiers().isStatic(),
+ TypeErrorCode.NO_SUCH_TYPE);
ClassElement functionElement = typeProvider.getFunctionType().getElement();
FunctionType type = Types.makeFunctionType(getContext(), functionElement,
element.getParameters(), returnType,
@@ -65,7 +71,11 @@ abstract class ResolveVisitor extends DartNodeTraverser<Element> {
@Override
public Element visitParameter(DartParameter node) {
- Type type = resolveType(node.getTypeNode(), isStaticContext());
+ ErrorCode typeErrorCode =
+ node.getParent() instanceof DartCatchBlock
+ ? ResolverErrorCode.NO_SUCH_TYPE
+ : TypeErrorCode.NO_SUCH_TYPE;
+ Type type = resolveType(node.getTypeNode(), isStaticContext(), typeErrorCode);
VariableElement element = Elements.parameterElement(node, node.getParameterName(),
node.getModifiers());
List<DartParameter> functionParameters = node.getFunctionParameters();
@@ -82,12 +92,12 @@ abstract class ResolveVisitor extends DartNodeTraverser<Element> {
return recordElement(node, element);
}
- final Type resolveType(DartTypeNode node, boolean isStatic) {
+ final Type resolveType(DartTypeNode node, boolean isStatic, ErrorCode errorCode) {
if (node == null) {
return getTypeProvider().getDynamicType();
}
assert node.getType() == null || node.getType() instanceof DynamicType;
- Type type = getContext().resolveType(node, isStatic);
+ Type type = getContext().resolveType(node, isStatic, errorCode);
if (type == null) {
type = getTypeProvider().getDynamicType();
}

Powered by Google App Engine
This is Rietveld 408576698