Inspectopedia Help

Clashing trait methods

Reports classes which implement two or more traits that contain methods with same signatures.

The result of calling such methods might be unexpected.

The quick-fix adds an explicit overriding method.

Example:

trait T1 { def foo() {} } trait T2 { def foo() {} } class X implements T1, T2 {} // T2.foo() will be called new X().foo()

After the quick-fix is applied:

class X implements T1, T2 { @Override Object foo() { return T2.super.foo() } }

Inspection Details

Available in:

IntelliJ IDEA 2023.3, Qodana for JVM 2023.3

Plugin:

Groovy, 233.SNAPSHOT

Last modified: 13 July 2023