Jonathan Cottrill created GROOVY-8587: -----------------------------------------
Summary: Calling super in an overridden method results in MissingMethodException when method indirectly inherited from trait Key: GROOVY-8587 URL: https://issues.apache.org/jira/browse/GROOVY-8587 Project: Groovy Issue Type: Bug Affects Versions: 2.4.15 Reporter: Jonathan Cottrill Consider the following: {{trait A {}} {{ void doSomething() {}} {{ println "A"}} {{ }}} {{}}}{{trait B extends A {}}}{{class C implements B {}} {{ @Override}} {{ void doSomething() {}} {{ B.super.doSomething()}} {{ }}}{{static void main(String[] args) {}} {{ new C().doSomething()}} {{ }}} {{}}} Although this compiles fine, a MissingMethodException is thrown at runtime: {{Exception in thread "main" groovy.lang.MissingMethodException: No signature of method: static B.doSomething() is applicable for argument types: (C) values: [C@12f41634]}} {{ at groovy.lang.MetaClassImpl.invokeStaticMissingMethod(MetaClassImpl.java:1518)}} {{ at groovy.lang.MetaClassImpl.invokeStaticMethod(MetaClassImpl.java:1504)}} {{ at org.codehaus.groovy.runtime.InvokerHelper.invokeMethod(InvokerHelper.java:921)}} {{ at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.invokeMethodN(ScriptBytecodeAdapter.java:181)}} {{ at B$Trait$Helper.$static_methodMissing(Bug.groovy)}} {{ at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)}} {{ at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)}} {{ at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)}} {{ at java.lang.reflect.Method.invoke(Method.java:498)}} {{ at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:98)}} {{ at groovy.lang.MetaClassImpl.invokeStaticMissingMethod(MetaClassImpl.java:1516)}} {{ at groovy.lang.MetaClassImpl.invokeStaticMethod(MetaClassImpl.java:1504)}} {{ at org.codehaus.groovy.runtime.callsite.StaticMetaClassSite.call(StaticMetaClassSite.java:52)}} {{ at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:47)}} {{ at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:116)}} {{ at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:128)}} {{ at C.doSomething(Bug.groovy:12)}} {{ at A$doSomething.call(Unknown Source)}} {{ at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:47)}} {{ at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:116)}} {{ at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:120)}} {{ at C.main(Bug.groovy:16)}} {{ }} -- This message was sent by Atlassian JIRA (v7.6.3#76005)