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

Unified Diff: editor/tools/plugins/com.google.dart.engine/src/com/google/dart/engine/internal/resolver/ElementResolver.java

Issue 18690009: Report CTEC.ARGUMENT_TYPE_NOT_ASSIGNABLE and extra/not-enough arguments as errors. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 7 years, 5 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: editor/tools/plugins/com.google.dart.engine/src/com/google/dart/engine/internal/resolver/ElementResolver.java
diff --git a/editor/tools/plugins/com.google.dart.engine/src/com/google/dart/engine/internal/resolver/ElementResolver.java b/editor/tools/plugins/com.google.dart.engine/src/com/google/dart/engine/internal/resolver/ElementResolver.java
index 14af13e3b6f69e41b99c12dc82ab31278de5e7d4..7f504e56c45c2e375bed1a34f95e8609e9320040 100644
--- a/editor/tools/plugins/com.google.dart.engine/src/com/google/dart/engine/internal/resolver/ElementResolver.java
+++ b/editor/tools/plugins/com.google.dart.engine/src/com/google/dart/engine/internal/resolver/ElementResolver.java
@@ -1101,7 +1101,10 @@ public class ElementResolver extends SimpleASTVisitor<Void> {
node.setStaticElement(element);
node.setElement(element);
ArgumentList argumentList = node.getArgumentList();
- ParameterElement[] parameters = resolveArgumentsToParameters(false, argumentList, element);
+ ParameterElement[] parameters = resolveArgumentsToParameters(
+ isInConstConstructor(),
+ argumentList,
+ element);
if (parameters != null) {
argumentList.setCorrespondingStaticParameters(parameters);
}
@@ -1464,6 +1467,17 @@ public class ElementResolver extends SimpleASTVisitor<Void> {
}
/**
+ * @return {@code true} iff current enclosing function is constant constructor declaration.
+ */
+ private boolean isInConstConstructor() {
+ ExecutableElement function = resolver.getEnclosingFunction();
+ if (function instanceof ConstructorElement) {
+ return ((ConstructorElement) function).isConst();
+ }
+ return false;
+ }
+
+ /**
* Return {@code true} if the given element is a static element.
*
* @param element the element being tested

Powered by Google App Engine
This is Rietveld 408576698