| Index: sdk/lib/_internal/compiler/implementation/resolution/members.dart
|
| diff --git a/sdk/lib/_internal/compiler/implementation/resolution/members.dart b/sdk/lib/_internal/compiler/implementation/resolution/members.dart
|
| index fd3ab87101b0b30e7f1f1d1cc53359e0654c8927..4135d0cc3585607fda7a57ae98f58db2ebdae025 100644
|
| --- a/sdk/lib/_internal/compiler/implementation/resolution/members.dart
|
| +++ b/sdk/lib/_internal/compiler/implementation/resolution/members.dart
|
| @@ -1750,31 +1750,6 @@ abstract class MappingVisitor<T> extends CommonResolverVisitor<T> {
|
| }
|
| return type;
|
| }
|
| -
|
| - Element defineElement(Node node, Element element,
|
| - {bool doAddToScope: true}) {
|
| - compiler.ensure(element != null);
|
| - mapping[node] = element;
|
| - if (doAddToScope) {
|
| - Element existing = scope.add(element);
|
| - if (existing != element) {
|
| - reportDuplicateDefinition(node, element, existing);
|
| - }
|
| - }
|
| - return element;
|
| - }
|
| -
|
| - void reportDuplicateDefinition(/*Node|SourceString*/ name,
|
| - Spannable definition,
|
| - Spannable existing) {
|
| - compiler.reportError(
|
| - definition,
|
| - MessageKind.DUPLICATE_DEFINITION, {'name': name});
|
| - compiler.reportMessage(
|
| - compiler.spanFromSpannable(existing),
|
| - MessageKind.EXISTING_DEFINITION.error({'name': name}),
|
| - Diagnostic.INFO);
|
| - }
|
| }
|
|
|
| /**
|
| @@ -1967,6 +1942,24 @@ class ResolverVisitor extends MappingVisitor<Element> {
|
| return null;
|
| }
|
|
|
| + Element defineElement(Node node, Element element,
|
| + {bool doAddToScope: true}) {
|
| + compiler.ensure(element != null);
|
| + mapping[node] = element;
|
| + if (doAddToScope) {
|
| + Element existing = scope.add(element);
|
| + if (existing != element) {
|
| + compiler.reportError(
|
| + node, MessageKind.DUPLICATE_DEFINITION, {'name': node});
|
| + compiler.reportMessage(
|
| + compiler.spanFromSpannable(existing),
|
| + MessageKind.EXISTING_DEFINITION.error({'name': node}),
|
| + Diagnostic.INFO);
|
| + }
|
| + }
|
| + return element;
|
| + }
|
| +
|
| bool isNamedConstructor(Send node) => node.receiver != null;
|
|
|
| Selector getRedirectingThisOrSuperConstructorSelector(Send node) {
|
| @@ -2344,10 +2337,14 @@ class ResolverVisitor extends MappingVisitor<Element> {
|
| if (namedArgument != null) {
|
| SourceString source = namedArgument.name.source;
|
| if (seenNamedArguments.containsKey(source)) {
|
| - reportDuplicateDefinition(
|
| - source,
|
| + compiler.reportError(
|
| argument,
|
| - seenNamedArguments[source]);
|
| + MessageKind.DUPLICATE_DEFINITION,
|
| + {'name': source});
|
| + compiler.reportMessage(
|
| + compiler.spanFromSpannable(seenNamedArguments[source]),
|
| + MessageKind.EXISTING_DEFINITION.error({'name': source}),
|
| + Diagnostic.INFO);
|
| } else {
|
| seenNamedArguments[source] = namedArgument;
|
| }
|
| @@ -3359,17 +3356,12 @@ class TypedefResolverVisitor extends TypeDefinitionVisitor {
|
| scope = new TypeDeclarationScope(scope, element);
|
| resolveTypeVariableBounds(node.typeParameters);
|
|
|
| - FunctionSignature signature = SignatureResolver.analyze(
|
| + element.functionSignature = SignatureResolver.analyze(
|
| compiler, node.formals, node.returnType, element,
|
| defaultValuesAllowed: false);
|
| - element.functionSignature = signature;
|
| -
|
| - scope = new MethodScope(scope, element);
|
| - signature.forEachParameter((Element element) {
|
| - defineElement(element.parseNode(compiler), element);
|
| - });
|
|
|
| - element.alias = compiler.computeFunctionType(element, signature);
|
| + element.alias = compiler.computeFunctionType(
|
| + element, element.functionSignature);
|
|
|
| void checkCyclicReference() {
|
| var visitor = new TypedefCyclicVisitor(compiler, element);
|
|
|