널 타입은 with로 믹스인할 수 없어요

널 타입은 with로 믹스인할 수 없어요

nullable_type_in_with_clause 진단은 with 절에 널 타입의 mixin을 지정했을 때 분석기가 알려 주는 메시지예요. 널 타입을 믹스인하는 건 의미가 없어서, "널 타입은 믹스인할 수 없어요"라고 짚어 주는 거죠.

출처: nullable_type_in_with_clause

본문

설명 (Description)

분석기는 클래스나 mixin 선언이 with 절을 가질 때, 그 mixin 뒤에 ?가 붙어 있으면 이 진단을 만들어 내요.

널 mixin을 지정하는 건 유효하지 않아요. 그렇게 해도 아무 의미가 없거든요. with 절을 담은 클래스가 상속받는 인터페이스나 구현이 달라지지 않기 때문이에요.

다만 mixin의 타입 인자로는 널 타입을 쓰는 게 가능해요. 예를 들어 class A with B<C?> {}처럼요.

예시 (Example)

아래 코드는 A?가 널 타입인데 널 타입은 with 절에 쓸 수 없어서 이 진단이 발생해요.

mixin M {}

class C with M? {}

흔한 해결책 (Common fixes)

타입에서 물음표(?)를 떼면 돼요.

mixin M {}

class C with M {}

더 알아보기