冗長なスーパータイプ修飾子が使用された super メンバーの呼び出しを報告します。

派生クラス内のコードで super キーワードを使用すると、そのスーパークラスの関数とプロパティアクセサーの実装を呼び出すことができます。 実装の継承元であるスーパータイプを指定するため、スーパータイプの名前を山括弧で囲み、super を修飾することができます (例: super<Base>)。 この修飾が冗長であり、省略できる場合があります。 コードをクリーンアップするには、'明示的なスーパータイプ修飾子の除去' クイックフィックスを使用します。

例:


  open class B {
      open fun foo(){}
  }

  class A : B() {
      override fun foo() {
         super<B>.foo() // <== 'B' が唯一のスーパータイプであるため冗長です
      }
  }

  interface I {
      fun foo() {}
  }

  class C : B(), I {
      override fun foo() {
          super<B>.foo() // <== here <B> 'B.foo()' を 'I.foo()' と区別するには修飾子が必要です
      }
  }

クイックフィックス適用後:


  open class B {
      open fun foo(){}
  }

  class A : B() {
      override fun foo() {
         super.foo() // <== 更新後
      }
  }

  interface I {
      fun foo() {}
  }

  class C : B(), I {
      override fun foo() {
          super<B>.foo()
      }
  }