From 79274687c3fb957d15a187a01491b0c7b620f370 Mon Sep 17 00:00:00 2001 From: "johnniwinther@google.com" Date: Wed, 7 Aug 2013 06:35:47 +0000 Subject: [PATCH] Remove support for getters with parameters. BUG= R=ahe@google.com Review URL: https://codereview.chromium.org//21013004 git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@25857 260f80e4-7a28-3924-810f-c04153c831b5 --- .../implementation/resolution/members.dart | 16 ++--------- .../dart2js/deprecated_features_test.dart | 3 +- .../simple_inferrer_postfix_prefix_test.dart | 2 +- tests/language/getter_parameters_test.dart | 28 +++++++++++++++++++ 4 files changed, 33 insertions(+), 16 deletions(-) create mode 100644 tests/language/getter_parameters_test.dart diff --git a/sdk/lib/_internal/compiler/implementation/resolution/members.dart b/sdk/lib/_internal/compiler/implementation/resolution/members.dart index 607bc6e9d35..1dfc84ca20c 100644 --- a/sdk/lib/_internal/compiler/implementation/resolution/members.dart +++ b/sdk/lib/_internal/compiler/implementation/resolution/members.dart @@ -1515,7 +1515,7 @@ class TypeResolver { visitor, node, typdef.typeVariables, arguments); if (hasTypeArgumentMismatch) { type = new BadTypedefType(typdef, - new TypedefType.forUserProvidedBadType(typdef, + new TypedefType.forUserProvidedBadType(typdef, arguments.toLink())); } else { if (arguments.isEmpty) { @@ -3854,14 +3854,8 @@ class SignatureResolver extends CommonResolverVisitor { if (!identical(formalParameters.getEndToken().next.stringValue, // TODO(ahe): Remove the check for native keyword. 'native')) { - if (compiler.rejectDeprecatedFeatures && - // TODO(ahe): Remove isPlatformLibrary check. - !element.getLibrary().isPlatformLibrary) { - compiler.reportError(formalParameters, - MessageKind.EXTRA_FORMALS); - } else { - compiler.onDeprecatedFeature(formalParameters, 'getter parameters'); - } + compiler.reportError(formalParameters, + MessageKind.EXTRA_FORMALS); } } LinkBuilder parametersBuilder = @@ -3890,10 +3884,6 @@ class SignatureResolver extends CommonResolverVisitor { MessageKind.ILLEGAL_SETTER_FORMALS); } } - if (element.isGetter() && (requiredParameterCount != 0 - || visitor.optionalParameterCount != 0)) { - compiler.reportError(formalParameters, MessageKind.EXTRA_FORMALS); - } return new FunctionSignatureX(parameters, visitor.optionalParameters, requiredParameterCount, diff --git a/tests/compiler/dart2js/deprecated_features_test.dart b/tests/compiler/dart2js/deprecated_features_test.dart index 59d9b126390..9e39e7b9816 100644 --- a/tests/compiler/dart2js/deprecated_features_test.dart +++ b/tests/compiler/dart2js/deprecated_features_test.dart @@ -54,7 +54,7 @@ main() { // "message" is the expected message as a [String]. This is a // short-term solution and should eventually changed to include // a symbolic reference to a MessageKind. - "19<()>::${deprecatedMessage('getter parameters')}\n", + "", messages.toString()); } @@ -67,7 +67,6 @@ deprecatedMessage(feature) { const Map TEST_SOURCE = const { '': """ class Foo { - get x() => null; } main() { diff --git a/tests/compiler/dart2js/simple_inferrer_postfix_prefix_test.dart b/tests/compiler/dart2js/simple_inferrer_postfix_prefix_test.dart index e346b111a9e..6ae31748c12 100644 --- a/tests/compiler/dart2js/simple_inferrer_postfix_prefix_test.dart +++ b/tests/compiler/dart2js/simple_inferrer_postfix_prefix_test.dart @@ -28,7 +28,7 @@ class A { } class B extends A { - get foo() => 42; + get foo => 42; operator[](index) => 42; returnString1() => super.foo--; diff --git a/tests/language/getter_parameters_test.dart b/tests/language/getter_parameters_test.dart new file mode 100644 index 00000000000..491a82b86a4 --- /dev/null +++ b/tests/language/getter_parameters_test.dart @@ -0,0 +1,28 @@ +// Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file +// for details. All rights reserved. Use of this source code is governed by a +// BSD-style license that can be found in the LICENSE file. +// +// Test that a getter has no parameters. + +get f1 => null; +get f2 +() /// 01: compile-time error +=> null; +get f3 +(arg) /// 02: compile-time error +=> null; +get f4 +([arg]) /// 03: compile-time error +=> null; +get f5 +({arg}) /// 04: compile-time error +=> null; + +main() { + f1; + f2; + f3; + f4; + f5; +} +