From commits-return-14815-archive-asf-public=cust-asf.ponee.io@groovy.apache.org Wed Dec 23 23:50:45 2020 Return-Path: X-Original-To: archive-asf-public@cust-asf.ponee.io Delivered-To: archive-asf-public@cust-asf.ponee.io Received: from mxout1-ec2-va.apache.org (mxout1-ec2-va.apache.org [3.227.148.255]) by mx-eu-01.ponee.io (Postfix) with ESMTPS id 98F11180648 for ; Thu, 24 Dec 2020 00:50:45 +0100 (CET) Received: from mail.apache.org (mailroute1-lw-us.apache.org [207.244.88.153]) by mxout1-ec2-va.apache.org (ASF Mail Server at mxout1-ec2-va.apache.org) with SMTP id D59464311B for ; Wed, 23 Dec 2020 23:50:44 +0000 (UTC) Received: (qmail 26740 invoked by uid 500); 23 Dec 2020 23:50:44 -0000 Mailing-List: contact commits-help@groovy.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@groovy.apache.org Delivered-To: mailing list commits@groovy.apache.org Received: (qmail 26731 invoked by uid 99); 23 Dec 2020 23:50:44 -0000 Received: from ec2-52-202-80-70.compute-1.amazonaws.com (HELO gitbox.apache.org) (52.202.80.70) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 23 Dec 2020 23:50:44 +0000 Received: by gitbox.apache.org (ASF Mail Server at gitbox.apache.org, from userid 33) id 3113B817B6; Wed, 23 Dec 2020 23:50:44 +0000 (UTC) Date: Wed, 23 Dec 2020 23:50:43 +0000 To: "commits@groovy.apache.org" Subject: [groovy] branch master updated: GROOVY-9860: makeRawType should reduce generic placeholder to bound type MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit Message-ID: <160876744385.14118.5240598555299439564@gitbox.apache.org> From: sunlan@apache.org X-Git-Host: gitbox.apache.org X-Git-Repo: groovy X-Git-Refname: refs/heads/master X-Git-Reftype: branch X-Git-Oldrev: dabb40711af61d1ba2007e2a1de8af749da9584e X-Git-Newrev: 8805d8e6e5b69a3d010a7d6647edfcb9ced3934f X-Git-Rev: 8805d8e6e5b69a3d010a7d6647edfcb9ced3934f X-Git-NotificationType: ref_changed_plus_diff X-Git-Multimail-Version: 1.5.dev Auto-Submitted: auto-generated This is an automated email from the ASF dual-hosted git repository. sunlan 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 8805d8e GROOVY-9860: makeRawType should reduce generic placeholder to bound type 8805d8e is described below commit 8805d8e6e5b69a3d010a7d6647edfcb9ced3934f Author: Eric Milles AuthorDate: Sun Dec 20 22:16:04 2020 -0600 GROOVY-9860: makeRawType should reduce generic placeholder to bound type Tuple2 constructor parameters are placeholders and should reduce to Object for argument matching --- .../groovy/transform/stc/StaticTypeCheckingSupport.java | 2 +- src/test/groovy/transform/stc/GenericsSTCTest.groovy | 13 +++++++++++++ 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/src/main/java/org/codehaus/groovy/transform/stc/StaticTypeCheckingSupport.java b/src/main/java/org/codehaus/groovy/transform/stc/StaticTypeCheckingSupport.java index 16008b7..2b404d8 100644 --- a/src/main/java/org/codehaus/groovy/transform/stc/StaticTypeCheckingSupport.java +++ b/src/main/java/org/codehaus/groovy/transform/stc/StaticTypeCheckingSupport.java @@ -1127,7 +1127,7 @@ public abstract class StaticTypeCheckingSupport { String name = param.getType().getUnresolvedName(); Optional value = genericsPlaceholderAndTypeMap.entrySet().stream() .filter(e -> e.getKey().getName().equals(name)).findFirst().map(Map.Entry::getValue); - ClassNode type = value.map(GenericsType::getType).orElseGet(() -> makeRawType(param.getType())); + ClassNode type = value.map(gt -> !gt.isPlaceholder() ? gt.getType() : makeRawType(gt.getType())).orElseGet(() -> makeRawType(param.getType())); return new Parameter(type, param.getName()); }).toArray(Parameter[]::new); diff --git a/src/test/groovy/transform/stc/GenericsSTCTest.groovy b/src/test/groovy/transform/stc/GenericsSTCTest.groovy index 964e075..9f32908 100644 --- a/src/test/groovy/transform/stc/GenericsSTCTest.groovy +++ b/src/test/groovy/transform/stc/GenericsSTCTest.groovy @@ -427,6 +427,19 @@ class GenericsSTCTest extends StaticTypeCheckingTestCase { ''' } + // GROOVY-9860 + void testGenericTypeArgumentInCtorCall() { + assertScript ''' + def void test() { + def bind = { T a, T b -> + new Tuple2(a, b) + } + assert bind('foo', 'bar').toString() == '[foo, bar]' + } + test() + ''' + } + void testReturnAnntationClass() { assertScript ''' import java.lang.annotation.Documented