Skip to content

Commit 2beac77

Browse files
lukaszsamsonjosevalim
authored andcommitted
Add missing required key to __info__(:struct) type (#15453)
1 parent 85a23a1 commit 2beac77

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
@@ -3318,10 +3318,15 @@ defmodule Module.Types.ExprTest do
33183318
assert typecheck!(GenServer.__info__(:struct)) == atom([nil])
33193319

33203320
assert typecheck!(URI.__info__(:struct)) ==
3321-
list(closed_map(default: if_set(term()), field: atom()))
3321+
list(
3322+
closed_map(default: if_set(term()), field: atom(), required: if_set(boolean()))
3323+
)
33223324

33233325
assert typecheck!([x], x.__info__(:struct)) ==
3324-
list(closed_map(default: if_set(term()), field: atom())) |> union(atom([nil]))
3326+
list(
3327+
closed_map(default: if_set(term()), field: atom(), required: if_set(boolean()))
3328+
)
3329+
|> union(atom([nil]))
33253330
end
33263331

33273332
test "behaviour_info/1" do

0 commit comments

Comments
 (0)