メインコンテンツにスキップ

extension_type_implements_representation_not_supertype

'{0}'('{1}' の表現型)は、'{2}'('{3}' の表現型)のスーパータイプではありません。

説明

#

この診断は、ある拡張型が別の拡張型を実装し、実装される拡張型の表現型が、実装する拡張型の表現型のサブタイプではない場合に、アナライザーによって生成されます。

#

以下のコードは、拡張型 BA を実装していますが、A の表現型 (num) が B の表現型 (String) のサブタイプではないため、この診断を生成します。

dart
extension type A(num i) {}

extension type B(String s) implements A {}

一般的な修正

#

2つの拡張型の表現型を変更して、実装される型の表現型が実装する型の表現型のスーパータイプになるようにしてください。

dart
extension type A(num i) {}

extension type B(int n) implements A {}

または、implements 句から実装される型を削除してください。

dart
extension type A(num i) {}

extension type B(String s) {}