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

Unified Diff: editor/tools/plugins/com.google.dart.engine/src/com/google/dart/engine/internal/verifier/ErrorVerifier.java

Issue 113143004: Constant evaluation support (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Clean-up Created 7 years 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: editor/tools/plugins/com.google.dart.engine/src/com/google/dart/engine/internal/verifier/ErrorVerifier.java
diff --git a/editor/tools/plugins/com.google.dart.engine/src/com/google/dart/engine/internal/verifier/ErrorVerifier.java b/editor/tools/plugins/com.google.dart.engine/src/com/google/dart/engine/internal/verifier/ErrorVerifier.java
index c53819103dfd19ac98e5d0cfa19e4d4bf944636b..de92afbe2c31b4b7e7c2c7aa213c153c62adec12 100644
--- a/editor/tools/plugins/com.google.dart.engine/src/com/google/dart/engine/internal/verifier/ErrorVerifier.java
+++ b/editor/tools/plugins/com.google.dart.engine/src/com/google/dart/engine/internal/verifier/ErrorVerifier.java
@@ -1426,7 +1426,7 @@ public class ErrorVerifier extends RecursiveASTVisitor<Void> {
ParameterElementImpl parameterElt = parameterElts.get(i);
EvaluationResultImpl result = parameterElt.getEvaluationResult();
// TODO (jwren) Ignore Object types, see Dart bug 11287
- if (result == null || result == ValidResult.RESULT_OBJECT) {
+ if (isUserDefinedObject(result)) {
continue;
}
String parameterName = parameterElt.getName();
@@ -1435,10 +1435,10 @@ public class ErrorVerifier extends RecursiveASTVisitor<Void> {
String overriddenParameterName = overriddenParameterElt.getName();
if (parameterName != null && parameterName.equals(overriddenParameterName)) {
EvaluationResultImpl overriddenResult = overriddenParameterElt.getEvaluationResult();
- if (overriddenResult == null || result == ValidResult.RESULT_OBJECT) {
+ if (isUserDefinedObject(overriddenResult)) {
break;
}
- if (!result.equalValues(overriddenResult)) {
+ if (!result.equalValues(typeProvider, overriddenResult)) {
errorReporter.reportError(
StaticWarningCode.INVALID_OVERRIDE_DIFFERENT_DEFAULT_VALUES_NAMED,
formalParameters.get(i),
@@ -1456,15 +1456,15 @@ public class ErrorVerifier extends RecursiveASTVisitor<Void> {
ParameterElementImpl parameterElt = parameterElts.get(i);
EvaluationResultImpl result = parameterElt.getEvaluationResult();
// TODO (jwren) Ignore Object types, see Dart bug 11287
- if (result == null || result == ValidResult.RESULT_OBJECT) {
+ if (isUserDefinedObject(result)) {
continue;
}
ParameterElementImpl overriddenParameterElt = overriddenParameterElts.get(i);
EvaluationResultImpl overriddenResult = overriddenParameterElt.getEvaluationResult();
- if (overriddenResult == null || result == ValidResult.RESULT_OBJECT) {
+ if (isUserDefinedObject(overriddenResult)) {
continue;
}
- if (!result.equalValues(overriddenResult)) {
+ if (!result.equalValues(typeProvider, overriddenResult)) {
errorReporter.reportError(
StaticWarningCode.INVALID_OVERRIDE_DIFFERENT_DEFAULT_VALUES_POSITIONAL,
formalParameters.get(i),
@@ -5353,6 +5353,11 @@ public class ErrorVerifier extends RecursiveASTVisitor<Void> {
return false;
}
+ private boolean isUserDefinedObject(EvaluationResultImpl result) {
+ return result == null
+ || (result instanceof ValidResult && ((ValidResult) result).isUserDefinedObject());
+ }
+
/**
* Return {@code true} iff the passed {@link ClassElement} has a concrete implementation of the
* passed accessor name in the superclass chain.

Powered by Google App Engine
This is Rietveld 408576698