You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@groovy.apache.org by em...@apache.org on 2020/08/08 13:55:45 UTC
[groovy] branch master updated: GROOVY-9673: do not set method
target on call expr in case of overloads
This is an automated email from the ASF dual-hosted git repository.
emilles pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/groovy.git
The following commit(s) were added to refs/heads/master by this push:
new dd2aca6 GROOVY-9673: do not set method target on call expr in case of overloads
dd2aca6 is described below
commit dd2aca619f6bc6e2757e30bb075868202e635d0a
Author: Eric Milles <er...@thomsonreuters.com>
AuthorDate: Sat Aug 8 08:55:36 2020 -0500
GROOVY-9673: do not set method target on call expr in case of overloads
closes #1338
---
.../transform/trait/SuperCallTraitTransformer.java | 1 -
.../traitx/TraitASTTransformationTest.groovy | 43 +++++++++++++++++++++-
2 files changed, 42 insertions(+), 2 deletions(-)
diff --git a/src/main/java/org/codehaus/groovy/transform/trait/SuperCallTraitTransformer.java b/src/main/java/org/codehaus/groovy/transform/trait/SuperCallTraitTransformer.java
index ba57ecc..08fe8d2 100644
--- a/src/main/java/org/codehaus/groovy/transform/trait/SuperCallTraitTransformer.java
+++ b/src/main/java/org/codehaus/groovy/transform/trait/SuperCallTraitTransformer.java
@@ -107,7 +107,6 @@ class SuperCallTraitTransformer extends ClassCodeExpressionTransformer {
setterCall.getObjectExpression().setSourcePosition(leftExpression.getObjectExpression());
setterCall.getMethod().setSourcePosition(leftExpression.getProperty());
setterCall.setSpreadSafe(leftExpression.isSpreadSafe());
- setterCall.setMethodTarget(method);
setterCall.setImplicitThis(false);
return setterCall;
}
diff --git a/src/test/org/codehaus/groovy/transform/traitx/TraitASTTransformationTest.groovy b/src/test/org/codehaus/groovy/transform/traitx/TraitASTTransformationTest.groovy
index 5a57531..2d412a6 100644
--- a/src/test/org/codehaus/groovy/transform/traitx/TraitASTTransformationTest.groovy
+++ b/src/test/org/codehaus/groovy/transform/traitx/TraitASTTransformationTest.groovy
@@ -1108,8 +1108,49 @@ final class TraitASTTransformationTest {
'''
}
+ @Test // GROOVY-9673
+ void testTraitSuperPropertySetWithOverloads() {
+ assertScript '''
+ trait T {
+ def setX(Number n) {
+ 'Number'
+ }
+ def setX(String s) {
+ 'String'
+ }
+ }
+
+ class C implements T {
+ def test() {
+ T.super.x = 42
+ }
+ }
+
+ assert new C().test() == 'Number'
+ '''
+
+ assertScript '''
+ trait T {
+ def setX(Number n) {
+ 'Number'
+ }
+ def setX(String s) {
+ 'String'
+ }
+ }
+
+ class C implements T {
+ def test() {
+ T.super.x = 'x'
+ }
+ }
+
+ assert new C().test() == 'String'
+ '''
+ }
+
@Test
- void testSuperCallInTraitExtendingAnotherTrait() {
+ void testTraitSuperCallWhenExtendingAnotherTrait() {
assertScript '''
trait Foo {
int foo() { 1 }