Rodolfo Yanke created GROOVY-11266:
--------------------------------------
Summary: Static Compilation fails when using generics (no such
property)
Key: GROOVY-11266
URL: https://issues.apache.org/jira/browse/GROOVY-11266
Project: Groovy
Issue Type: Bug
Components: Static compilation, Static Type Checker
Affects Versions: 3.0.20
Environment: Java 21, gradle 8.5, MacOS
Reporter: Rodolfo Yanke
Hi,
The code below works fine with 3.0.19 but after upgrading to 3.0.20 it doesn't
compile anymore:
{code:java}
import groovy.transform.CompileStatic
import org.springframework.data.domain.Pageable
import org.springframework.data.mongodb.repository.MongoRepository
@CompileStatic
class GalleryItem {
String someProperty
}
@CompileStatic
interface GalleryItemRepository extends MongoRepository<GalleryItem, String> {
}
@CompileStatic
static void main(String[] args) {
GalleryItemRepository repository = null //no implementation for the sake of
simplicity
def page = repository.findAll(Pageable.ofSize(1))
page.content.each {
it.someProperty //[Static type checking] - No such property:
someProperty for class: java.lang.Object
}
} {code}
My build.gradle
{code:java}
plugins {
id 'groovy'
}
group = 'org.example'
version = '1.0-SNAPSHOT'
repositories {
mavenCentral()
}
dependencies {
//works fine with 3.0.19
implementation 'org.codehaus.groovy:groovy-all:3.0.20'
implementation 'org.springframework.data:spring-data-mongodb:3.4.18'
}
compileJava {
sourceCompatibility = JavaVersion.VERSION_21
targetCompatibility = JavaVersion.VERSION_21
}
compileGroovy {
groovyOptions.optimizationOptions.indy = true
}{code}
A simple "gradle compileGroovy" should reproduce the issue:
{code:java}
/Projects/groovytest/src/main/groovy/Main.groovy: 20: [Static type checking] -
No such property: someProperty for class: java.lang.Object
@ line 20, column 9.
it.someProperty //[Static type checking] - No such property:
someProperty for class: java.lang.Object
^ {code}
--
This message was sent by Atlassian Jira
(v8.20.10#820010)