Estou trabalhando em um projeto Flutter e usando o pacote frozen. Criei uma classe ApiResult genérica como esta:
import 'package:freezed_annotation/freezed_annotation.dart';
part 'api_result.freezed.dart';
@freezed
sealed class ApiResult<T> with _$ApiResult<T> {
const factory ApiResult.success(T data) = Success<T>;
const factory ApiResult.failure(String msg) = Failure<T>;
}
Após executar a geração de código, o arquivo gerado não inclui when, map ou métodos semelhantes de correspondência de padrões. Aqui está um trecho do código gerado:
class Success<T> implements ApiResult<T> {
const Success(this.data);
final T data;
// ...
}
class Failure<T> implements ApiResult<T> {
const Failure(this.msg);
final String msg;
// ...
}
Como você pode ver, não há métodos when ou map gerados. Eu esperava que eles estivessem disponíveis, já que são comumente usados com classes congeladas para correspondência de padrões.
Por que os métodos when e map estão faltando? Como posso corrigir isso?
Estou usando a versão mais recente do frozen e build_runner e executei
dart run build_runner build --delete-conflicting-outputs
sem problemas. Qualquer ajuda será bem-vinda!