deferred 클래스는 superclass 제약으로 쓸 수 없어요

deferred 클래스는 superclass 제약으로 쓸 수 없어요

mixin의 superclass 제약은 지연 로딩(deferred) 라이브러리에서 가져온 클래스를 사용할 수 없어요. 그렇게 사용하면 이 진단이 발생해요.

출처: mixin_super_class_constraint_deferred_class

본문

설명

mixin의 superclass 제약이 deferred 라이브러리에서 import된 클래스일 때 analyzer가 이 진단을 만들어요.

예시

아래 코드는 async.Stream<T>라는 superclass 제약이 deferred 라이브러리에서 import되어 있어서 진단이 발생해요.

import 'dart:async' deferred as async;

mixin M<T> on async.Stream<T> {}

해결 방법

import를 deferred로 할 필요가 없다면 deferred 키워드를 빼면 돼요.

import 'dart:async' as async;

mixin M<T> on async.Stream<T> {}

import를 꼭 deferred로 해야 한다면 superclass 제약을 빼면 돼요.

mixin M<T> {}

더 알아보기