[ 
https://issues.apache.org/jira/browse/GROOVY-11663?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Eric Milles updated GROOVY-11663:
---------------------------------
    Description: 
Consider the following:
{code:groovy}
trait A{
  public static final String BANG = '!'
}
@groovy.transform.TypeChecked
trait B extends A {
  static staticMethod() {
    BANG
  }
  def method() {
    BANG
  }
}
class C implements B {
  static main(args) {
    staticMethod()
    method()
  }
}
{code}

If the trait B is implemented and the methods are called, both produce 
MissingMethodException.  STC should catch this.

  was:
Consider the following:
{code:groovy}
            trait Foo {
                public static final String BANG = '!'
            }

            trait Bar extends Foo {
                static staticMethod(String string) {
                    string + BANG
                }
            }

            class Main implements Bar {
                static test1() {
                    String result = staticMethod('works')
                    assert result == 'works!'
                }
                void test2() {
                    String result = staticMethod('works')
                    assert result == 'works!'
                }
            }

            Main.test1()
            new Main().test2()
{code}


> STC: trait extends trait and tries to use static field
> ------------------------------------------------------
>
>                 Key: GROOVY-11663
>                 URL: https://issues.apache.org/jira/browse/GROOVY-11663
>             Project: Groovy
>          Issue Type: Bug
>            Reporter: Eric Milles
>            Assignee: Eric Milles
>            Priority: Minor
>
> Consider the following:
> {code:groovy}
> trait A{
>   public static final String BANG = '!'
> }
> @groovy.transform.TypeChecked
> trait B extends A {
>   static staticMethod() {
>     BANG
>   }
>   def method() {
>     BANG
>   }
> }
> class C implements B {
>   static main(args) {
>     staticMethod()
>     method()
>   }
> }
> {code}
> If the trait B is implemented and the methods are called, both produce 
> MissingMethodException.  STC should catch this.



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

Reply via email to