| Index: compiler/java/com/google/dart/compiler/resolver/MemberBuilder.java
|
| diff --git a/compiler/java/com/google/dart/compiler/resolver/MemberBuilder.java b/compiler/java/com/google/dart/compiler/resolver/MemberBuilder.java
|
| index caf651f3857365100bf36395a9d32d7eb4a5fc6f..5b23fc7b755cbec1327de6bfcb1ebed434cd71cc 100644
|
| --- a/compiler/java/com/google/dart/compiler/resolver/MemberBuilder.java
|
| +++ b/compiler/java/com/google/dart/compiler/resolver/MemberBuilder.java
|
| @@ -5,6 +5,7 @@
|
| package com.google.dart.compiler.resolver;
|
|
|
| import com.google.common.annotations.VisibleForTesting;
|
| +import com.google.common.base.Objects;
|
| import com.google.dart.compiler.DartCompilerContext;
|
| import com.google.dart.compiler.ErrorCode;
|
| import com.google.dart.compiler.ast.ASTVisitor;
|
| @@ -152,6 +153,7 @@ public class MemberBuilder {
|
| assertTopLevel(method);
|
| }
|
| if (element != null) {
|
| + checkTopLevelMainFunction(method);
|
| checkModifiers(element, method);
|
| recordElement(method, element);
|
| recordElement(method.getName(), element);
|
| @@ -448,6 +450,17 @@ public class MemberBuilder {
|
| return ElementKind.NONE;
|
| }
|
|
|
| + /**
|
| + * Checks that top-level "main()" has no parameters.
|
| + */
|
| + private void checkTopLevelMainFunction(DartMethodDefinition method) {
|
| + if (Objects.equal(method.getName().toSource(), "main")
|
| + && currentHolder instanceof LibraryElement
|
| + && !method.getFunction().getParameters().isEmpty()) {
|
| + resolutionError(method.getName(), ResolverErrorCode.MAIN_FUNCTION_PARAMETERS);
|
| + }
|
| + }
|
| +
|
| private void checkModifiers(MethodElement element, DartMethodDefinition method) {
|
| Modifiers modifiers = method.getModifiers();
|
| boolean isNonFactoryConstructor = Elements.isNonFactoryConstructor(element);
|
|
|