[
https://issues.apache.org/jira/browse/GROOVY-7439?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17462336#comment-17462336
]
Eric Milles edited comment on GROOVY-7439 at 12/19/21, 11:23 PM:
-----------------------------------------------------------------
Someone who is more familiar with traits may be able to suggest an alternative
that keeps the static field semantic and loads the category name from the trait
implementer.
was (Author: emilles):
Someone who is more familiar with traits may be able to suggest an alternative
that keeps the field semantic and loads the category name from the trait
implementer.
> Compilation errors using groovy trait and @CompileStatic and @Slf4j("LOG")
> --------------------------------------------------------------------------
>
> Key: GROOVY-7439
> URL: https://issues.apache.org/jira/browse/GROOVY-7439
> Project: Groovy
> Issue Type: Bug
> Components: Compiler
> Affects Versions: 2.4.3
> Environment: Windows 8.1
> Oracle JDK 8.u45
> Reporter: Allen Arakaki
> Assignee: Eric Milles
> Priority: Major
> Labels: traits
>
> Compilation errors using groovy trait and @CompileStatic and @Slf4j("LOG")
> Easy to reproduce:
> ------------------------------------------------
> {code}
> import org.slf4j.Logger
> import groovy.transform.CompileStatic
> import groovy.util.logging.Slf4j
> @Slf4j("LOG")
> @CompileStatic
> trait TTest {
> void test1() {
> LOG.debug("Logging test1 ...")
> }
> void test2() {
> //((Logger)LOG).debug("Logging test2 ...")
> }
> }
> {code}
> Results in the following:
> | Error Compilation error: startup failed:
> ..\src\groovy\TTest.groovy: 10: [Static type checking] - Cannot find matching
> method java.lang.Object#debug(java.lang.String). Please check if the declared
> type is right and if the method exists.
> @ line 10, column 5.
> LOG.debug("Logging test1 ...")
> ^
> {code}
> import org.slf4j.Logger
> import groovy.transform.CompileStatic
> import groovy.util.logging.Slf4j
> @Slf4j("LOG")
> @CompileStatic
> trait TTest {
> void test1() {
> //LOG.debug("Logging test1 ...")
> }
> void test2() {
> ((Logger)LOG).debug("Logging test2 ...")
> }
> }
> {code}
> Results in the following error:
> | Error Compilation error: startup failed:
> ..\src\groovy\TTest.groovy: -1: Access to TTest#LOG is forbidden @ line -1,
> column -1.
--
This message was sent by Atlassian Jira
(v8.20.1#820001)