Skip to content

Commit d962b66

Browse files
committed
Fix warnings on Elixir v1.20
1 parent b45b0f6 commit d962b66

3 files changed

Lines changed: 35 additions & 61 deletions

File tree

lib/ecto/query/builder.ex

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1475,7 +1475,7 @@ defmodule Ecto.Query.Builder do
14751475
defp get_env(env), do: env
14761476

14771477
defp normalize_type(value, :binary),
1478-
do: quote(do: (is_binary(unquote(value)) && :binary) || :bitstring)
1478+
do: quote(generated: true, do: (is_binary(unquote(value)) && :binary) || :bitstring)
14791479

14801480
@doc """
14811481
Raises a query building error.

test/ecto/query/builder/from_test.exs

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@ defmodule Ecto.Query.Builder.FromTest do
1414
end
1515
end
1616

17-
1817
defmacro from_macro(left, right) do
1918
quote do
2019
fragment("? <> ?", unquote(left), unquote(right))
@@ -31,7 +30,7 @@ defmodule Ecto.Query.Builder.FromTest do
3130
test "values list source" do
3231
values = [%{num: 1, text: "one"}, %{num: 2, text: "two"}]
3332
types = %{num: :integer, text: :string}
34-
query = from v in values(values, types)
33+
query = from(v in values(values, types))
3534

3635
types_kw = Enum.map(types, & &1)
3736
assert query.from.source == {:values, [], [types_kw, length(values)]}
@@ -41,7 +40,7 @@ defmodule Ecto.Query.Builder.FromTest do
4140
values = [%{num: 1, text: "one"}, %{num: 2, text: "two"}]
4241
type_schema = Schema
4342
types_kw = Enum.map(%{num: :integer, text: :string}, & &1)
44-
query = from v in values(values, type_schema)
43+
query = from(v in values(values, type_schema))
4544

4645
assert query.from.source == {:values, [], [types_kw, length(values)]}
4746
end
@@ -50,38 +49,41 @@ defmodule Ecto.Query.Builder.FromTest do
5049
msg = "must provide a non-empty list to values/2"
5150

5251
assert_raise ArgumentError, msg, fn ->
53-
from v in values([], %{})
52+
from(v in values(Process.get(:unused, []), %{}))
5453
end
5554
end
5655

5756
test "values list source with missing types" do
58-
msg = "values/2 must declare the type for every field. The type was not given for field `text`"
57+
msg =
58+
"values/2 must declare the type for every field. The type was not given for field `text`"
5959

6060
assert_raise ArgumentError, msg, fn ->
6161
values = [%{num: 1, text: "one"}, %{num: 2, text: "two"}]
6262
types = %{num: :integer}
63-
from v in values(values, types)
63+
from(v in values(values, types))
6464
end
6565
end
6666

6767
test "values list source with missing schema types" do
68-
msg = "values/2 must declare the type for every field. The type was not given for field `not_a_field`"
68+
msg =
69+
"values/2 must declare the type for every field. The type was not given for field `not_a_field`"
6970

7071
assert_raise ArgumentError, msg, fn ->
7172
values = [%{not_a_field: 1}]
7273
types = Schema
73-
from v in values(values, types)
74+
from(v in values(values, types))
7475
end
7576
end
7677

7778
test "values list source with inconsistent fields across entries" do
7879
# Missing field
79-
msg = "each member of a values list must have the same fields. Missing field `text` in %{num: 2}"
80+
msg =
81+
"each member of a values list must have the same fields. Missing field `text` in %{num: 2}"
8082

8183
assert_raise ArgumentError, msg, fn ->
8284
values = [%{num: 1, text: "one"}, %{num: 2}]
8385
types = %{num: :integer, text: :string}
84-
from v in values(values, types)
86+
from(v in values(values, types))
8587
end
8688
end
8789
end

test/ecto/query/builder_test.exs

Lines changed: 22 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,7 @@ defmodule Ecto.Query.BuilderTest do
1616
quote do
1717
&0.y()
1818
end
19-
),
20-
[]} ==
19+
), []} ==
2120
escape(
2221
quote do
2322
x.y()
@@ -32,8 +31,7 @@ defmodule Ecto.Query.BuilderTest do
3231
quote do
3332
&0.y() > &0.z()
3433
end
35-
),
36-
[]} ==
34+
), []} ==
3735
escape(
3836
quote do
3937
x.y() > x.z()
@@ -46,8 +44,7 @@ defmodule Ecto.Query.BuilderTest do
4644
quote do
4745
&0.y() > &1.z()
4846
end
49-
),
50-
[]} ==
47+
), []} ==
5148
escape(
5249
quote do
5350
x.y() > y.z()
@@ -62,8 +59,7 @@ defmodule Ecto.Query.BuilderTest do
6259
quote do
6360
&0.y() + &1.z()
6461
end
65-
),
66-
[]} ==
62+
), []} ==
6763
escape(
6864
quote do
6965
x.y() + y.z()
@@ -76,8 +72,7 @@ defmodule Ecto.Query.BuilderTest do
7672
quote do
7773
avg(0)
7874
end
79-
),
80-
[]} ==
75+
), []} ==
8176
escape(
8277
quote do
8378
avg(0)
@@ -105,8 +100,7 @@ defmodule Ecto.Query.BuilderTest do
105100
{:||, _,
106101
[{:&&, _, [{:is_binary, _, [{:<<>>, [], [0, 1, 2]}]}, :binary]}, :bitstring]}
107102
]}
108-
]},
109-
[]} =
103+
]}, []} =
110104
escape(
111105
quote do
112106
<<0, 1, 2>>
@@ -152,8 +146,7 @@ defmodule Ecto.Query.BuilderTest do
152146
quote do
153147
-&0.y()
154148
end
155-
),
156-
[]} ==
149+
), []} ==
157150
escape(
158151
quote do
159152
-x.y()
@@ -348,8 +341,7 @@ defmodule Ecto.Query.BuilderTest do
348341
{:raw, ")"}
349342
)
350343
end
351-
),
352-
[{0, :any}]} ==
344+
), [{0, :any}]} ==
353345
escape(
354346
quote do
355347
fragment("date_add(?, ?)", p.created_at(), ^0)
@@ -362,8 +354,7 @@ defmodule Ecto.Query.BuilderTest do
362354
quote do
363355
fragment({:raw, ""}, {:expr, ^0}, {:raw, "::text"})
364356
end
365-
),
366-
[{0, :any}]} ==
357+
), [{0, :any}]} ==
367358
escape(
368359
quote do
369360
fragment(~S"?::text", ^0)
@@ -376,8 +367,7 @@ defmodule Ecto.Query.BuilderTest do
376367
quote do
377368
fragment({:raw, "query?("}, {:expr, &0.created_at()}, {:raw, ")"})
378369
end
379-
),
380-
[]} ==
370+
), []} ==
381371
escape(
382372
quote do
383373
fragment("query\\?(?)", p.created_at())
@@ -390,8 +380,7 @@ defmodule Ecto.Query.BuilderTest do
390380
quote do
391381
fragment(title: [foo: ^0])
392382
end
393-
),
394-
[{0, :any}]} ==
383+
), [{0, :any}]} ==
395384
escape(
396385
quote do
397386
fragment(title: [foo: ^0])
@@ -487,8 +476,7 @@ defmodule Ecto.Query.BuilderTest do
487476
]
488477
)
489478
)
490-
),
491-
[]} ==
479+
), []} ==
492480
escape(
493481
quote(do: nth_value(x.id(), 1) |> over(order_by: my_complex_order(x))),
494482
[x: 0],
@@ -537,8 +525,7 @@ defmodule Ecto.Query.BuilderTest do
537525
quote do
538526
type(&0.y() + &1.z(), :decimal)
539527
end
540-
),
541-
[]} ==
528+
), []} ==
542529
escape(
543530
quote do
544531
type(x.y() + y.z(), :decimal)
@@ -551,8 +538,7 @@ defmodule Ecto.Query.BuilderTest do
551538
quote do
552539
type(&0.y(), :decimal)
553540
end
554-
),
555-
[]} ==
541+
), []} ==
556542
escape(
557543
quote do
558544
type(field(x, :y), :decimal)
@@ -565,8 +551,7 @@ defmodule Ecto.Query.BuilderTest do
565551
quote do
566552
type(&0.y(), :"Elixir.Ecto.UUID")
567553
end
568-
),
569-
[]} ==
554+
), []} ==
570555
escape(
571556
quote do
572557
type(field(x, :y), Ecto.UUID)
@@ -579,8 +564,7 @@ defmodule Ecto.Query.BuilderTest do
579564
quote do
580565
type(&0.y(), :"Elixir.Ecto.UUID")
581566
end
582-
),
583-
[]} ==
567+
), []} ==
584568
escape(
585569
quote do
586570
type(field(x, :y), Ecto.UUID)
@@ -593,8 +577,7 @@ defmodule Ecto.Query.BuilderTest do
593577
quote do
594578
type(sum(&0.y()), :decimal)
595579
end
596-
),
597-
[]} ==
580+
), []} ==
598581
escape(
599582
quote do
600583
type(sum(x.y()), :decimal)
@@ -607,8 +590,7 @@ defmodule Ecto.Query.BuilderTest do
607590
quote do
608591
type(count(), :decimal)
609592
end
610-
),
611-
[]} ==
593+
), []} ==
612594
escape(
613595
quote do
614596
type(count(), :decimal)
@@ -623,8 +605,7 @@ defmodule Ecto.Query.BuilderTest do
623605
quote do
624606
type(filter(sum(&0.y()), &0.y() > &0.z()), :decimal)
625607
end
626-
),
627-
[]} ==
608+
), []} ==
628609
escape(
629610
quote do
630611
type(filter(sum(x.y()), x.y() > x.z()), :decimal)
@@ -640,8 +621,7 @@ defmodule Ecto.Query.BuilderTest do
640621
{:array, :"Elixir.Ecto.UUID"}
641622
)
642623
end
643-
),
644-
[]} ==
624+
), []} ==
645625
escape(
646626
quote do
647627
type(over(fragment("array_agg(?)", x.id()), :y), {:array, Ecto.UUID})
@@ -659,8 +639,7 @@ defmodule Ecto.Query.BuilderTest do
659639
quote do
660640
type(&0.y(), unquote(parameterized_type))
661641
end
662-
),
663-
[]} ==
642+
), []} ==
664643
escape(
665644
quote do
666645
type(field(x, :y), unquote(parameterized_type))
@@ -679,8 +658,7 @@ defmodule Ecto.Query.BuilderTest do
679658
quote do
680659
type(sum(&0.y()), :integer)
681660
end
682-
),
683-
[]} ==
661+
), []} ==
684662
escape(
685663
quote do
686664
type(wrapped_sum(x.y()), :integer)
@@ -717,12 +695,6 @@ defmodule Ecto.Query.BuilderTest do
717695
escape(quote(do: true && false), [], __ENV__)
718696
end
719697

720-
assert_raise Ecto.Query.CompileError,
721-
~r"`1 = 1` is not a valid query expression. The match operator is not supported: `=`",
722-
fn ->
723-
escape(quote(do: 1 = 1), [], __ENV__)
724-
end
725-
726698
assert_raise Ecto.Query.CompileError,
727699
~r"`unknown\(1, 2\)` is not a valid query expression",
728700
fn ->

0 commit comments

Comments
 (0)