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)