Skip to content

Commit d401033

Browse files
kescoboJeffBezanson
authored andcommitted
Add isnothing (#29679)
1 parent f068f21 commit d401033

File tree

5 files changed

+16
-0
lines changed

5 files changed

+16
-0
lines changed

NEWS.md

+1
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ New language features
55
---------------------
66

77
* `CartesianIndices` can now be constructed from two `CartesianIndex`es `I` and `J` with `I:J` ([#29440]).
8+
* `isnothing(::Any)` function can now be called to check whether something is a `Nothing`, returns a `Bool` ([#29679])
89

910
Language changes
1011
----------------

base/exports.jl

+1
Original file line numberDiff line numberDiff line change
@@ -669,6 +669,7 @@ export
669669
missing,
670670
skipmissing,
671671
something,
672+
isnothing,
672673

673674
# time
674675
sleep,

base/some.jl

+9
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,15 @@ Throw an error if `x === nothing`, and return `x` if not.
4040
notnothing(x::Any) = x
4141
notnothing(::Nothing) = throw(ArgumentError("nothing passed to notnothing"))
4242

43+
"""
44+
isnothing(x)
45+
46+
Return `true` if `x === nothing`, and return `false` if not.
47+
"""
48+
isnothing(::Any) = false
49+
isnothing(::Nothing) = true
50+
51+
4352
"""
4453
something(x, y...)
4554

doc/src/base/base.md

+1
Original file line numberDiff line numberDiff line change
@@ -199,6 +199,7 @@ Core.NamedTuple
199199
Base.Val
200200
Core.Vararg
201201
Core.Nothing
202+
Base.isnothing
202203
Base.Some
203204
Base.something
204205
Base.Enums.@enum

test/some.jl

+4
Original file line numberDiff line numberDiff line change
@@ -94,3 +94,7 @@ b = [ "replacement", "replacement", nothing, missing ]
9494
using Base: notnothing
9595
@test notnothing(1) === 1
9696
@test_throws ArgumentError notnothing(nothing)
97+
98+
# isnothing()
99+
@test !isnothing(1)
100+
@test isnothing(nothing)

0 commit comments

Comments
 (0)