[
https://issues.apache.org/jira/browse/GROOVY-12454?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=18130917#comment-18130917
]
ASF GitHub Bot commented on GROOVY-12454:
-----------------------------------------
testlens-app[bot] commented on PR #3013:
URL: https://github.com/apache/groovy/pull/3013#issuecomment-6365824251
## ✅ All tests passed ✅
🏷️ Commit: b1485762e5c26bc598c545113289193eacd33cd6
▶️ Tests: 121987 executed
⚪️ Checks: 32/32 completed
---
_Learn more about TestLens at
[testlens.app/docs](https://testlens.app/docs/features/pr-comment/)._
> "Target constructor for constructor call expression hasn't been set" when
> using map-constructor-call with method-returned map under static compilation
> ------------------------------------------------------------------------------------------------------------------------------------------------------
>
> Key: GROOVY-12454
> URL: https://issues.apache.org/jira/browse/GROOVY-12454
> Project: Groovy
> Issue Type: Bug
> Affects Versions: 2.5.23, 3.0.25, 5.0.3, 4.0.33, 5.1.3, 6.0.0
> Reporter: Björn Kautler
> Priority: Major
>
> Given the snippet
> {code:groovy}
> class Person2 {
> def name
> def age
> }
> def <T> T record(T value) {
> value
> }
> Map recordMap(Map value) {
> value
> }
> @groovy.transform.CompileStatic
> def foo() {
> [
> new Person2(record([name: 'fred', age: 25])),
> new Person2([name: 'fred', age: 25]),
> new Person2(recordMap([name: 'fred', age: 25]))
> ]
> }
> foo() {code}
>
> With the {{CompileStatic}} line commented out, all versions mentioned as
> affected compile fine and run fine, returning a list with three identical
> person instances with the properties set.
> With the snippet as given, none of the versions can compile the snippet due
> to the first and last constructor lines.
> Except of 3.0.25 all versions tell for both lines "Target constructor for
> constructor call expression hasn't been set".
> 3.0.25 shows the same for the first one, and "Cannot find matching method
> Person2#<init>(java.util.Map). Please check if the declared type is correct
> and if the method exists." for the last one.
> With {{TypeChecked}} instead of {{CompileStatic}} it also works fine in all
> versions except 3.0.25. 3.0.25 with only type-checke can compile the first
> line but still has the same error for the last line.z
>
> So it seems the SC does not properly use the "map-constructor-call" semantics
> if a normal or generic method call returned type {{{}Map{}}}, plus 3.0.25
> having some additional problem.
--
This message was sent by Atlassian Jira
(v10.3.26#10030026)