Skip to content

Commit

Permalink
Use generic instead of Never
Browse files Browse the repository at this point in the history
  • Loading branch information
SandroMaglione committed Mar 21, 2024
1 parent 1ed678d commit 7f3314e
Show file tree
Hide file tree
Showing 2 changed files with 6 additions and 8 deletions.
4 changes: 2 additions & 2 deletions examples/poke_api/lib/main.dart
Original file line number Diff line number Diff line change
Expand Up @@ -7,12 +7,12 @@ import 'package:poke_api/pokemon.dart';
import 'package:poke_api/pokemon_error.dart';

abstract interface class HttpClient {
Effect<Never, PokemonError, String> get(Uri uri);
Effect<E, PokemonError, String> get<E>(Uri uri);
}

class Http implements HttpClient {
@override
Effect<Never, PokemonError, String> get(Uri uri) => Effect.gen(
Effect<E, PokemonError, String> get<E>(Uri uri) => Effect.gen(
($) async {
final response = await $.async(Effect.tryCatch(
execute: () => http.get(uri),
Expand Down
10 changes: 4 additions & 6 deletions packages/fpdart/lib/src/option.dart
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@ final class Some<R> extends Option<R> {
const Some(this.value);

@override
Effect<Never, Never, R> get asEffect => Effect.succeed(value);
Effect<Never, Never, R> get asEffect => Effect._((_) => Right(value));

@override
Effect<V, L, R> provide<L, V>(L Function() onNone) => Effect.succeed(value);
Expand Down Expand Up @@ -94,11 +94,9 @@ final class None extends Option<Never> {
factory None() => _none;

@override
@internal

/// **This will always throw, don't use it!**
// ignore: cast_from_null_always_fails
Effect<Never, Never, Never> get asEffect => Effect.fail(null as Never);
Effect<Never, Never, Never> get asEffect =>
// ignore: cast_from_null_always_fails
Effect._((_) => Left(Fail(null as Never)));

Option<C> andThen<C>(Option<C> Function() then) => this;

Expand Down

0 comments on commit 7f3314e

Please sign in to comment.