[
https://issues.apache.org/jira/browse/GROOVY-7436?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Eric Milles updated GROOVY-7436:
--------------------------------
Labels: traits (was: )
> Multiple inheritance of traits - conflict resolution
> ----------------------------------------------------
>
> Key: GROOVY-7436
> URL: https://issues.apache.org/jira/browse/GROOVY-7436
> Project: Groovy
> Issue Type: Improvement
> Reporter: Thornton Chamberlain
> Priority: Major
> Labels: traits
>
> {noformat}
> trait A {
> String exec() {'A'}
> }
> trait B implements A {
> String exec() {'B'}
> }
> trait C implements A {
> }
> class X implements A, B, C {}
> def x = new X()
> assert x.exec() == 'B'
> {noformat}
> An equivalent example in Scala will use the exec() implementation from B, as
> asserted. Groovy will take the implementation from the last declared trait,
> C, which inherits the implementation from A but does not define its own
> implementation. I think Groovy should use the implementation from the last
> declared trait that defines its own implementation.
--
This message was sent by Atlassian Jira
(v8.20.1#820001)