[ 
https://issues.apache.org/jira/browse/GROOVY-11624?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17945028#comment-17945028
 ] 

Saravanan edited comment on GROOVY-11624 at 4/17/25 11:28 PM:
--------------------------------------------------------------

This standard Groovy also fails with a similar error (it seems to fail only 
when I do PART1 + PART2

  Expected 'com.org.interfaces.Blah$Inner.MYSTRING' to be an inline constant of 
type java.lang.String not a property expression in @java.lang.Deprecated
  Attribute 'since' should have type 'java.lang.String'; but found type 
'java.lang.Object' in @java.lang.Deprecated

{code:groovy}
class Blah {
    @Deprecated(since = Inner.MYSTRING)
    void myMethod() {
    }
    public static class Inner {
        public static final String PART1 = "my";
        public static final String PART2 = "string";
        public static final String MYSTRING = PART1 + PART2;
    }
}
{code}
 


was (Author: chavan77):
This also fails with a similar error (it seems to fail only when I do PART1 + 
PART2

  Expected 'com.org.interfaces.Blah$Inner.MYSTRING' to be an inline constant of 
type java.lang.String not a property expression in @java.lang.Deprecated
  Attribute 'since' should have type 'java.lang.String'; but found type 
'java.lang.Object' in @java.lang.Deprecated



 
{code:java}
class Blah {
    @Deprecated(since = Inner.MYSTRING)
    void myMethod() {
    }
    public static class Inner {
        public static final String PART1 = "my";
        public static final String PART2 = "string";
        public static final String MYSTRING = PART1 + PART2;
    }
}
{code}
 

> Unable to use statically imported const string in annotation
> ------------------------------------------------------------
>
>                 Key: GROOVY-11624
>                 URL: https://issues.apache.org/jira/browse/GROOVY-11624
>             Project: Groovy
>          Issue Type: Bug
>          Components: Compiler, Static compilation
>    Affects Versions: 5.0.0-alpha-12
>            Reporter: Saravanan
>            Assignee: Eric Milles
>            Priority: Minor
>
> I have a java class defined (pulled in as byte code from a jar dependency)
>  
> {code:java}
> package com.org.nativecompiler.cli;
> public final class MyDefinitionInJava {
>     public static final String MYTEXTINJAVA = "asdsad";
> }
> {code}
> I am using this in my Groovy class. When I compile my groovy class with the 
> java jar in the dependency path,
>  
> {code:groovy}
> import static com.org.nativecompiler.cli.MyDefinitionInJava.MYTEXTINJAVA;
> public interface Interfaces {
>     String OTHERTEXT = MYTEXTINJAVA + "1234";
>     @Deprecated(since = OTHERTEXT)
>     public interface InnerClass {
>     }
> }
> {code}
> I get a compile error (in comple static mode) in the use of OTHERTEXT
>     Expected 
> 'com.org.nativecompiler.cli.MyDefinitionInJava.MYTEXTINJAVA.plus(1234)' to be 
> an inline constant of type java.lang.String in @java.lang.Deprecated
> This seems to be an issue only if I static import it. This works if I use 
> MyDefintionInJava.MYTEXTINJAVA directly



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to