diff --git a/src/core/Bool.pm b/src/core/Bool.pm index c6d129a17e7..979c3f58154 100644 --- a/src/core/Bool.pm +++ b/src/core/Bool.pm @@ -47,12 +47,12 @@ multi prefix:(Bool:D \a) { a } multi prefix:(Mu \a) { a.Bool } proto prefix:(Mu $) is pure { * } -multi prefix:(Bool \a) { nqp::p6bool(a ?? 0 !! 1) } -multi prefix:(Mu \a) { nqp::p6bool(a.Bool ?? 0 !! 1) } +multi prefix:(Bool \a) { nqp::p6bool(nqp::not_i(nqp::istrue(a))) } +multi prefix:(Mu \a) { nqp::p6bool(nqp::not_i(nqp::istrue(a))) } proto prefix:(Mu $) is pure { * } -multi prefix:(Bool \a) { nqp::p6bool(a ?? 0 !! 1) } -multi prefix:(Mu \a) { nqp::p6bool(a.Bool ?? 0 !! 1) } +multi prefix:(Bool \a) { nqp::p6bool(nqp::not_i(nqp::istrue(a))) } +multi prefix:(Mu \a) { nqp::p6bool(nqp::not_i(nqp::istrue(a))) } proto prefix:(Mu $) is pure { * } multi prefix:(Mu \a) { not a }