You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@groovy.apache.org by "Eric Milles (Jira)" <ji...@apache.org> on 2022/04/15 18:06:00 UTC
[jira] [Resolved] (GROOVY-10521) Compiler complains about abstract method not implemented when implementing trait
[ https://issues.apache.org/jira/browse/GROOVY-10521?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Eric Milles resolved GROOVY-10521.
----------------------------------
Resolution: Cannot Reproduce
I tried setting {{groovyVersion}} to 4.0.0, 4.0.1 and 4.0.2-SNAPSHOT in {{gradle/build-logic/build-platform/build.gradle.kts}} and "org.codehaus.groovy" to "org.apache.groovy". I was unable to get 4.0.0 to compile but 4.0.1 and 4.0.2 compiled fine and {{model-core:test}} completed successfully.
> Compiler complains about abstract method not implemented when implementing trait
> --------------------------------------------------------------------------------
>
> Key: GROOVY-10521
> URL: https://issues.apache.org/jira/browse/GROOVY-10521
> Project: Groovy
> Issue Type: Bug
> Components: Compiler
> Affects Versions: 4.0.1
> Reporter: Lóránt Pintér
> Assignee: Eric Milles
> Priority: Major
> Labels: traits
>
> I have a trait called [ProviderAssertions|https://github.com/gradle/gradle/blob/c692f2a1d2baa03f975c443ddc746d885cf84ee2/subprojects/model-core/src/testFixtures/groovy/org/gradle/api/internal/provider/ProviderAssertions.groovy] that is successfully implemented by a number of {{spock.lang.Specification}} types. However, when compiling this class with Groovy 4.0.1-SNAPSHOT:
> It fails with the following error:
> {code}
> :model-core:compileTestGroovy FAILED
> Note: Some input files use or override a deprecated API.
> Note: Recompile with -Xlint:deprecation for details.
> Note: /Users/lptr/Workspace/gradle/gradle/subprojects/model-core/src/test/groovy/org/gradle/internal/instantiation/generator/AsmBackedClassGeneratorTest.java uses unchecked or unsafe operations.
> Note: Recompile with -Xlint:unchecked for details.
> startup failed:
> /Users/lptr/Workspace/gradle/gradle/subprojects/model-core/src/test/groovy/org/gradle/api/internal/provider/DefaultProviderFactoryTest.groovy: 27: Can't have an abstract method in a non-abstract class. The class 'org.gradle.api.internal.provider.DefaultProviderFactoryTest' must be declared abstract or the method 'void assertHasProducer(org.gradle.api.internal.provider.ProviderInternal, org.gradle.api.Task, org.gradle.api.Task[])' must be implemented.
> @ line 27, column 1.
> class DefaultProviderFactoryTest extends Specification implements ProviderAssertions {
> ^
> 1 error
> {code}
> https://github.com/gradle/gradle/blob/c692f2a1d2baa03f975c443ddc746d885cf84ee2/subprojects/model-core/src/test/groovy/org/gradle/api/internal/provider/DefaultProviderFactoryTest.groovy#L27
> https://ge.gradle.org/s/mz3m6drw3kzog/console-log?task=:model-core:compileTestGroovy
> The same code works with Groovy 3.0.9, and it even compiled with Groovy 4.0.0-beta-1.
--
This message was sent by Atlassian Jira
(v8.20.1#820001)