We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
There was an error while loading. Please reload this page.
1 parent 6d58634 commit 0053717Copy full SHA for 0053717
src/DotNext/Optional.cs
@@ -271,7 +271,11 @@ private static byte GetKindUnsafe([DisallowNull] ref T optionalValue)
271
/// <returns>The value represented as <see cref="Optional{T}"/> or <see cref="Optional{T}.None"/> if there is no value.</returns>
272
public static Optional<T> Create<TMonad>(TMonad value)
273
where TMonad : struct, IOptionMonad<T>
274
- => value.TryGet(out var result) ? new(result) : None;
+ => value is Optional<T>
275
+ ? Unsafe.BitCast<TMonad, Optional<T>>(value)
276
+ : value.TryGet(out var result)
277
+ ? new(result)
278
+ : None;
279
280
/// <summary>
281
/// Determines whether the object represents meaningful value.
0 commit comments