Skip to content
Merged
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions Compiler/src/tfuncs.jl
Original file line number Diff line number Diff line change
Expand Up @@ -411,6 +411,8 @@ end
if a1 === Module
hasintersect(widenconst(sym), Symbol) || return Bottom
# isa(sym, Const) case intercepted in abstract interpretation
elseif fieldcount(a1) == 0
return Const(false)
elseif isa(sym, Const)
val = sym.val
if isa(val, Symbol)
Expand Down
3 changes: 2 additions & 1 deletion Compiler/test/inference.jl
Original file line number Diff line number Diff line change
Expand Up @@ -1209,7 +1209,8 @@ let isdefined_tfunc(@nospecialize xs...) =
end
@test isdefined_tfunc(Union{UnionIsdefinedA,UnionIsdefinedB}, Const(:x)) === Const(true)
@test isdefined_tfunc(Union{UnionIsdefinedA,UnionIsdefinedB}, Const(:y)) === Const(false)
@test isdefined_tfunc(Union{UnionIsdefinedA,Nothing}, Const(:x)) === Bool
@test isdefined_tfunc(Union{UnionIsdefinedA,Nothing}, Const(:x)) === Bool=== Const(false)
@test isdefined_tfunc(Nothing, Any) === Const(false)
end

# https://github.com/aviatesk/JET.jl/issues/379
Expand Down