Skip to content

Commit fcf47f3

Browse files
authored
Add missing required key to __info__(:struct) type (#15453)
1 parent 600b7c6 commit fcf47f3

2 files changed

Lines changed: 10 additions & 3 deletions

File tree

lib/elixir/lib/module/types/apply.ex

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,9 @@ defmodule Module.Types.Apply do
3838
end
3939

4040
fas = list(tuple([atom(), integer()]))
41-
struct_info = list(closed_map(default: if_set(term()), field: atom()))
41+
42+
struct_info =
43+
list(closed_map(default: if_set(term()), field: atom(), required: if_set(boolean())))
4244

4345
shared_info = [
4446
attributes: list(tuple([atom(), list(term())])),

lib/elixir/test/elixir/module/types/expr_test.exs

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3392,10 +3392,15 @@ defmodule Module.Types.ExprTest do
33923392
assert typecheck!(GenServer.__info__(:struct)) == atom([nil])
33933393

33943394
assert typecheck!(URI.__info__(:struct)) ==
3395-
list(closed_map(default: if_set(term()), field: atom()))
3395+
list(
3396+
closed_map(default: if_set(term()), field: atom(), required: if_set(boolean()))
3397+
)
33963398

33973399
assert typecheck!([x], x.__info__(:struct)) ==
3398-
list(closed_map(default: if_set(term()), field: atom())) |> union(atom([nil]))
3400+
list(
3401+
closed_map(default: if_set(term()), field: atom(), required: if_set(boolean()))
3402+
)
3403+
|> union(atom([nil]))
33993404
end
34003405

34013406
test "behaviour_info/1" do

0 commit comments

Comments
 (0)