From commits-return-6815-archive-asf-public=cust-asf.ponee.io@groovy.apache.org Sun May 27 22:41:54 2018 Return-Path: X-Original-To: archive-asf-public@cust-asf.ponee.io Delivered-To: archive-asf-public@cust-asf.ponee.io Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by mx-eu-01.ponee.io (Postfix) with SMTP id 739D5180663 for ; Sun, 27 May 2018 22:41:53 +0200 (CEST) Received: (qmail 30343 invoked by uid 500); 27 May 2018 20:41:52 -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 30334 invoked by uid 99); 27 May 2018 20:41:52 -0000 Received: from git1-us-west.apache.org (HELO git1-us-west.apache.org) (140.211.11.23) by apache.org (qpsmtpd/0.29) with ESMTP; Sun, 27 May 2018 20:41:52 +0000 Received: by git1-us-west.apache.org (ASF Mail Server at git1-us-west.apache.org, from userid 33) id 00617E0611; Sun, 27 May 2018 20:41:51 +0000 (UTC) Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: jwagenleitner@apache.org To: commits@groovy.apache.org Message-Id: X-Mailer: ASF-Git Admin Mailer Subject: groovy git commit: GROOVY-8610: STC NPE using DGM collect on Iterator (closes #729) Date: Sun, 27 May 2018 20:41:51 +0000 (UTC) Repository: groovy Updated Branches: refs/heads/GROOVY_2_6_X fcdc0e9e8 -> 4a327f2b1 GROOVY-8610: STC NPE using DGM collect on Iterator (closes #729) (cherry picked from commit 72e530db3bb87644cc989039c31381e7f6ab68dc) Project: http://git-wip-us.apache.org/repos/asf/groovy/repo Commit: http://git-wip-us.apache.org/repos/asf/groovy/commit/4a327f2b Tree: http://git-wip-us.apache.org/repos/asf/groovy/tree/4a327f2b Diff: http://git-wip-us.apache.org/repos/asf/groovy/diff/4a327f2b Branch: refs/heads/GROOVY_2_6_X Commit: 4a327f2b18ddd89b41ebd86583b46cec0be8750a Parents: fcdc0e9 Author: John Wagenleitner Authored: Sun May 27 12:10:59 2018 -0700 Committer: John Wagenleitner Committed: Sun May 27 13:40:44 2018 -0700 ---------------------------------------------------------------------- .../org/codehaus/groovy/runtime/DefaultGroovyMethods.java | 2 +- .../transform/stc/ClosureParamTypeInferenceSTCTest.groovy | 7 +++++++ 2 files changed, 8 insertions(+), 1 deletion(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/groovy/blob/4a327f2b/src/main/java/org/codehaus/groovy/runtime/DefaultGroovyMethods.java ---------------------------------------------------------------------- diff --git a/src/main/java/org/codehaus/groovy/runtime/DefaultGroovyMethods.java b/src/main/java/org/codehaus/groovy/runtime/DefaultGroovyMethods.java index 0e4150f..51062b5 100644 --- a/src/main/java/org/codehaus/groovy/runtime/DefaultGroovyMethods.java +++ b/src/main/java/org/codehaus/groovy/runtime/DefaultGroovyMethods.java @@ -3499,7 +3499,7 @@ public class DefaultGroovyMethods extends DefaultGroovyMethodsSupport { * @return a List of the transformed values * @since 2.5.0 */ - public static List collect(Iterator self, @ClosureParams(FirstParam.Component.class) Closure transform) { + public static List collect(Iterator self, @ClosureParams(FirstParam.FirstGenericType.class) Closure transform) { return (List) collect(self, new ArrayList(), transform); } http://git-wip-us.apache.org/repos/asf/groovy/blob/4a327f2b/src/test/groovy/transform/stc/ClosureParamTypeInferenceSTCTest.groovy ---------------------------------------------------------------------- diff --git a/src/test/groovy/transform/stc/ClosureParamTypeInferenceSTCTest.groovy b/src/test/groovy/transform/stc/ClosureParamTypeInferenceSTCTest.groovy index ab818af..53f614b 100644 --- a/src/test/groovy/transform/stc/ClosureParamTypeInferenceSTCTest.groovy +++ b/src/test/groovy/transform/stc/ClosureParamTypeInferenceSTCTest.groovy @@ -231,6 +231,13 @@ def items = [] ''' } + void testDGM_collectOnIterator() { + assertScript ''' + Iterator itr = ['foo', 'bar', 'baz'].iterator() + assert itr.collect { it.startsWith('ba') } == [false, true, true] + ''' + } + void testInferenceOnNonExtensionMethod() { assertScript '''import groovy.transform.stc.ClosureParams import groovy.transform.stc.FirstParam