mirror of
https://github.com/WhatsApp/erlang-language-platform.git
synced 2025-12-23 12:26:48 +00:00
Deprecate old error messages
Some checks are pending
ELP CI / edb (push) Waiting to run
ELP CI / ci (26, 26.2.5.13, linux, 26.2, ubuntu-22.04-arm, ubuntu-22.04-arm, aarch64-unknown-linux-gnu, true, linux-arm64) (push) Blocked by required conditions
ELP CI / ci (26, 26.2.5.13, linux, 26.2, ubuntu-22.04, ubuntu-22.04-x64, x86_64-unknown-linux-gnu, true, linux-x64) (push) Blocked by required conditions
ELP CI / ci (26, 26.2.5.13, macos, 26.2, macos-13, macos-13-x64, x86_64-apple-darwin, true, darwin-x64) (push) Blocked by required conditions
ELP CI / ci (26, 26.2.5.13, macos, 26.2, macos-latest, macos-latest-arm, aarch64-apple-darwin, true, darwin-arm64) (push) Blocked by required conditions
ELP CI / ci (27, 27.3.4, linux, 27.3, ubuntu-22.04, ubuntu-22.04-x64, x86_64-unknown-linux-gnu, false, linux-x64) (push) Blocked by required conditions
ELP CI / ci (26, 26.2.5.13, windows, 26.2, windows-2022, windows-2022-x64, x86_64-pc-windows-msvc, true, win32-x64) (push) Blocked by required conditions
ELP CI / ci (27, 27.3.4, linux, 27.3, ubuntu-22.04-arm, ubuntu-22.04-arm, aarch64-unknown-linux-gnu, false, linux-arm64) (push) Blocked by required conditions
ELP CI / ci (27, 27.3.4, macos, 27.3, macos-13, macos-13-x64, x86_64-apple-darwin, false, darwin-x64) (push) Blocked by required conditions
ELP CI / ci (27, 27.3.4, macos, 27.3, macos-latest, macos-latest-arm, aarch64-apple-darwin, false, darwin-arm64) (push) Blocked by required conditions
ELP CI / ci (27, 27.3.4, windows, 27.3, windows-2022, windows-2022-x64, x86_64-pc-windows-msvc, false, win32-x64) (push) Blocked by required conditions
ELP CI / ci (28, 28.0.1, linux, 28, ubuntu-22.04, ubuntu-22.04-x64, x86_64-unknown-linux-gnu, false, linux-x64) (push) Blocked by required conditions
ELP CI / ci (28, 28.0.1, linux, 28, ubuntu-22.04-arm, ubuntu-22.04-arm, aarch64-unknown-linux-gnu, false, linux-arm64) (push) Blocked by required conditions
ELP CI / ci (28, 28.0.1, macos, 28, macos-13, macos-13-x64, x86_64-apple-darwin, false, darwin-x64) (push) Blocked by required conditions
ELP CI / ci (28, 28.0.1, macos, 28, macos-latest, macos-latest-arm, aarch64-apple-darwin, false, darwin-arm64) (push) Blocked by required conditions
ELP CI / ci (28, 28.0.1, windows, 28, windows-2022, windows-2022-x64, x86_64-pc-windows-msvc, false, win32-x64) (push) Blocked by required conditions
Deploy Website to GitHub Pages / Deploy Website to GitHub Pages (push) Waiting to run
Some checks are pending
ELP CI / edb (push) Waiting to run
ELP CI / ci (26, 26.2.5.13, linux, 26.2, ubuntu-22.04-arm, ubuntu-22.04-arm, aarch64-unknown-linux-gnu, true, linux-arm64) (push) Blocked by required conditions
ELP CI / ci (26, 26.2.5.13, linux, 26.2, ubuntu-22.04, ubuntu-22.04-x64, x86_64-unknown-linux-gnu, true, linux-x64) (push) Blocked by required conditions
ELP CI / ci (26, 26.2.5.13, macos, 26.2, macos-13, macos-13-x64, x86_64-apple-darwin, true, darwin-x64) (push) Blocked by required conditions
ELP CI / ci (26, 26.2.5.13, macos, 26.2, macos-latest, macos-latest-arm, aarch64-apple-darwin, true, darwin-arm64) (push) Blocked by required conditions
ELP CI / ci (27, 27.3.4, linux, 27.3, ubuntu-22.04, ubuntu-22.04-x64, x86_64-unknown-linux-gnu, false, linux-x64) (push) Blocked by required conditions
ELP CI / ci (26, 26.2.5.13, windows, 26.2, windows-2022, windows-2022-x64, x86_64-pc-windows-msvc, true, win32-x64) (push) Blocked by required conditions
ELP CI / ci (27, 27.3.4, linux, 27.3, ubuntu-22.04-arm, ubuntu-22.04-arm, aarch64-unknown-linux-gnu, false, linux-arm64) (push) Blocked by required conditions
ELP CI / ci (27, 27.3.4, macos, 27.3, macos-13, macos-13-x64, x86_64-apple-darwin, false, darwin-x64) (push) Blocked by required conditions
ELP CI / ci (27, 27.3.4, macos, 27.3, macos-latest, macos-latest-arm, aarch64-apple-darwin, false, darwin-arm64) (push) Blocked by required conditions
ELP CI / ci (27, 27.3.4, windows, 27.3, windows-2022, windows-2022-x64, x86_64-pc-windows-msvc, false, win32-x64) (push) Blocked by required conditions
ELP CI / ci (28, 28.0.1, linux, 28, ubuntu-22.04, ubuntu-22.04-x64, x86_64-unknown-linux-gnu, false, linux-x64) (push) Blocked by required conditions
ELP CI / ci (28, 28.0.1, linux, 28, ubuntu-22.04-arm, ubuntu-22.04-arm, aarch64-unknown-linux-gnu, false, linux-arm64) (push) Blocked by required conditions
ELP CI / ci (28, 28.0.1, macos, 28, macos-13, macos-13-x64, x86_64-apple-darwin, false, darwin-x64) (push) Blocked by required conditions
ELP CI / ci (28, 28.0.1, macos, 28, macos-latest, macos-latest-arm, aarch64-apple-darwin, false, darwin-arm64) (push) Blocked by required conditions
ELP CI / ci (28, 28.0.1, windows, 28, windows-2022, windows-2022-x64, x86_64-pc-windows-msvc, false, win32-x64) (push) Blocked by required conditions
Deploy Website to GitHub Pages / Deploy Website to GitHub Pages (push) Waiting to run
Summary: As title. Remove the "detailed message" part, which is too verbose and mostly useless now. Reviewed By: TD5 Differential Revision: D88633277 fbshipit-source-id: 092691c2520983148fa0ef8d61a62bd1149a1231
This commit is contained in:
parent
e1296c5c14
commit
0f7069d02e
73 changed files with 43 additions and 3532 deletions
|
|
@ -37,12 +37,6 @@ Because in the expression's type:
|
|||
Here the type is: fun((term()) -> term())
|
||||
Context expects type: fun((term(), term()) -> term())
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
fun((term()) -> term()) is not compatible with f2()
|
||||
because
|
||||
fun((term()) -> term()) is not compatible with fun((term(), term()) -> term())
|
||||
|
||||
error: clause_not_covered (See https://fb.me/eqwalizer_errors#clause_not_covered)
|
||||
┌─ check/src/any_fun_type.erl:64:1
|
||||
│
|
||||
|
|
@ -67,16 +61,6 @@ Because in the expression's type:
|
|||
Differs from the expected type: 'a'
|
||||
)
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
f5('a' | 'b') is not compatible with f4('a')
|
||||
because
|
||||
fun((term()) -> 'a' | 'b') is not compatible with f4('a')
|
||||
because
|
||||
fun((term()) -> 'a' | 'b') is not compatible with fun((...) -> 'a')
|
||||
because
|
||||
'a' | 'b' is not compatible with 'a'
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ check/src/any_fun_type.erl:98:20
|
||||
│
|
||||
|
|
@ -103,14 +87,4 @@ Because in the expression's type:
|
|||
Differs from the expected type: 'a'
|
||||
)
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
fun((term()) -> 'a' | 'b') is not compatible with f4('a')
|
||||
because
|
||||
fun((term()) -> 'a' | 'b') is not compatible with fun((...) -> 'a')
|
||||
because
|
||||
'a' | 'b' is not compatible with 'a'
|
||||
because
|
||||
'b' is not compatible with 'a'
|
||||
|
||||
7 ERRORS
|
||||
|
|
|
|||
|
|
@ -60,12 +60,6 @@ Because in the expression's type:
|
|||
However the following candidate: string()
|
||||
Differs from the expected type: 'anything'
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
string() | dynamic() is not compatible with 'anything'
|
||||
because
|
||||
string() is not compatible with 'anything'
|
||||
|
||||
error: clause_not_covered (See https://fb.me/eqwalizer_errors#clause_not_covered)
|
||||
┌─ check/src/approx.erl:74:1
|
||||
│
|
||||
|
|
|
|||
|
|
@ -2,15 +2,8 @@ error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types
|
|||
┌─ check/src/auto_imports.erl:22:20
|
||||
│
|
||||
22 │ erlang:error(ok, ok).
|
||||
│ ^^
|
||||
│ │
|
||||
│ 'ok'.
|
||||
│ ^^ 'ok'.
|
||||
Expression has type: 'ok'
|
||||
Context expected type: [term()] | 'none'
|
||||
│
|
||||
|
||||
'ok' is not compatible with [term()] | 'none'
|
||||
because
|
||||
'ok' is not compatible with [term()]
|
||||
|
||||
1 ERROR
|
||||
|
|
|
|||
|
|
@ -22,10 +22,4 @@ Because in the expression's type:
|
|||
However the following candidate: 'false'
|
||||
Differs from the expected type: 'true'
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
'false' | 'true' is not compatible with 'true'
|
||||
because
|
||||
'false' is not compatible with 'true'
|
||||
|
||||
2 ERRORS
|
||||
|
|
|
|||
|
|
@ -72,17 +72,6 @@ Because in the expression's type:
|
|||
Differs from the expected type: pid()
|
||||
}
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
{'p', pid() | reference()} is not compatible with {'a', atom()} | {'p', pid()}
|
||||
because
|
||||
at tuple index 2:
|
||||
{'p', pid() | reference()} is not compatible with {'p', pid()}
|
||||
because
|
||||
pid() | reference() is not compatible with pid()
|
||||
because
|
||||
reference() is not compatible with pid()
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ check/src/case_predicates.erl:144:10
|
||||
│
|
||||
|
|
@ -99,14 +88,6 @@ Because in the expression's type:
|
|||
However the following candidate: 'restarting'
|
||||
Differs from the expected type: {'p', pid()} | 'undefined'
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
'undefined' | 'restarting' is not compatible with {'p', pid()} | 'undefined'
|
||||
because
|
||||
'restarting' is not compatible with {'p', pid()} | 'undefined'
|
||||
because
|
||||
'restarting' is not compatible with {'p', pid()}
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ check/src/case_predicates.erl:174:16
|
||||
│
|
||||
|
|
|
|||
|
|
@ -14,10 +14,6 @@ Because in the expression's type:
|
|||
Context expects type: #{...}
|
||||
The expected map has no corresponding key for: c.
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
key `c` is declared in the former but not in the latter and the latter map has no default association
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ check/src/complex_maps.erl:17:21
|
||||
│
|
||||
|
|
@ -35,15 +31,6 @@ Because in the expression's type:
|
|||
Context expects type: number()
|
||||
, ... }
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
#{a => 'b', c => 'd'} is not compatible with #{a => 'b', atom() => number()}
|
||||
because
|
||||
#{a => 'b', c => 'd'} is not compatible with #{a => 'b', atom() => number()}
|
||||
key `c` is declared in the former but not in the latter and key `c` isn't compatible with the default association of the latter map
|
||||
because
|
||||
'd' is not compatible with number()
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ check/src/complex_maps.erl:20:19
|
||||
│
|
||||
|
|
@ -60,13 +47,6 @@ Because in the expression's type:
|
|||
Context expects type: #{...} (no default association)
|
||||
The expected map has no default association while the type of the expression has one.
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
#{a => 'b', atom() => atom()} is not compatible with #{a => 'b', c => 'd'}
|
||||
key c is not present in the former map but is incompatible with its default association
|
||||
because
|
||||
atom() is not compatible with 'd'
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ check/src/complex_maps.erl:23:19
|
||||
│
|
||||
|
|
@ -85,13 +65,6 @@ Because in the expression's type:
|
|||
, ... }
|
||||
The context introduces a new association c => 'd' which is incompatible with the expression's default association.
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
#{a => 'b', atom() => number()} is not compatible with #{a => 'b', c => 'd', atom() => number()}
|
||||
key c is not present in the former map but is incompatible with its default association
|
||||
because
|
||||
number() is not compatible with 'd'
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ check/src/complex_maps.erl:38:21
|
||||
│
|
||||
|
|
@ -108,13 +81,6 @@ Because in the expression's type:
|
|||
Context expects type: #{...} (no default association)
|
||||
The expected map has no default association while the type of the expression has one.
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
#{a => 'b', atom() => atom()} is not compatible with #{a => 'b'}
|
||||
because
|
||||
#{a => 'b', atom() => atom()} is not compatible with #{a => 'b'}
|
||||
the latter map has no default association while the first map has one
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ check/src/complex_maps.erl:44:26
|
||||
│
|
||||
|
|
@ -131,13 +97,6 @@ Because in the expression's type:
|
|||
Context expects type: #{...} (no default association)
|
||||
The expected map has no default association while the type of the expression has one.
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
#{a => 'b', dynamic(atom()) => atom()} is not compatible with #{a => 'b'}
|
||||
because
|
||||
#{a => 'b', dynamic(atom()) => atom()} is not compatible with #{a => 'b'}
|
||||
the latter map has no default association while the first map has one
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ check/src/complex_maps.erl:47:26
|
||||
│
|
||||
|
|
@ -154,13 +113,6 @@ Because in the expression's type:
|
|||
Context expects type: #{...} (no default association)
|
||||
The expected map has no default association while the type of the expression has one.
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
#{a => 'b', atom() => dynamic(atom())} is not compatible with #{a => 'b'}
|
||||
because
|
||||
#{a => 'b', atom() => dynamic(atom())} is not compatible with #{a => 'b'}
|
||||
the latter map has no default association while the first map has one
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ check/src/complex_maps.erl:56:44
|
||||
│
|
||||
|
|
@ -218,13 +170,6 @@ Because in the expression's type:
|
|||
Context expects type: atom()
|
||||
, ... }
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
#{atom() => binary()} is not compatible with #{a => binary(), atom() => atom()}
|
||||
the default associations are not compatible
|
||||
because
|
||||
binary() is not compatible with atom()
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ check/src/complex_maps.erl:83:28
|
||||
│
|
||||
|
|
@ -242,13 +187,6 @@ Because in the expression's type:
|
|||
Context expects type: atom()
|
||||
, ... }
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
#{a := 'b', atom() => binary()} is not compatible with #{a => 'b', {c, d} => atom() | binary(), term() => atom()}
|
||||
the default associations are not compatible
|
||||
because
|
||||
binary() is not compatible with atom()
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ check/src/complex_maps.erl:86:28
|
||||
│
|
||||
|
|
@ -266,13 +204,6 @@ Because in the expression's type:
|
|||
Context expects type: atom()
|
||||
, ... }
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
#{a := 'b', atom() => binary()} is not compatible with #{a => 'b', {c, d} => atom() | binary(), atom() => atom()}
|
||||
the default associations are not compatible
|
||||
because
|
||||
binary() is not compatible with atom()
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ check/src/complex_maps.erl:89:29
|
||||
│
|
||||
|
|
@ -290,11 +221,4 @@ Because in the expression's type:
|
|||
Context expects type: binary()
|
||||
, ... }
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
#{dynamic() => atom()} is not compatible with #{dynamic() => binary()}
|
||||
the default associations are not compatible
|
||||
because
|
||||
atom() is not compatible with binary()
|
||||
|
||||
16 ERRORS
|
||||
|
|
|
|||
|
|
@ -15,12 +15,6 @@ Because in the expression's type:
|
|||
Context expects type: atom()
|
||||
]
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
[number()] is not compatible with [atom()]
|
||||
because
|
||||
number() is not compatible with atom()
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ check/src/comprehensions.erl:40:16
|
||||
│
|
||||
|
|
@ -86,12 +80,6 @@ Because in the expression's type:
|
|||
Context expects type: binary()
|
||||
]
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
[number()] is not compatible with [binary()]
|
||||
because
|
||||
number() is not compatible with binary()
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ check/src/comprehensions.erl:72:5
|
||||
│
|
||||
|
|
@ -270,12 +258,6 @@ Because in the expression's type:
|
|||
Context expects type: binary()
|
||||
]
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
[atom()] is not compatible with [binary()]
|
||||
because
|
||||
atom() is not compatible with binary()
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ check/src/comprehensions.erl:226:5
|
||||
│
|
||||
|
|
@ -293,12 +275,6 @@ Because in the expression's type:
|
|||
Context expects type: 'false'
|
||||
]
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
['true'] is not compatible with ['false']
|
||||
because
|
||||
'true' is not compatible with 'false'
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ check/src/comprehensions.erl:231:5
|
||||
│
|
||||
|
|
@ -316,12 +292,6 @@ Because in the expression's type:
|
|||
Context expects type: 'false'
|
||||
]
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
['true'] is not compatible with ['false']
|
||||
because
|
||||
'true' is not compatible with 'false'
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ check/src/comprehensions.erl:239:5
|
||||
│
|
||||
|
|
@ -339,12 +309,6 @@ Because in the expression's type:
|
|||
Context expects type: atom()
|
||||
]
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
[number()] is not compatible with [atom()]
|
||||
because
|
||||
number() is not compatible with atom()
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ check/src/comprehensions.erl:267:5
|
||||
│
|
||||
|
|
@ -363,14 +327,6 @@ Because in the expression's type:
|
|||
Differs from the expected type: binary()
|
||||
]
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
[binary() | 'undefined'] is not compatible with [binary()]
|
||||
because
|
||||
binary() | 'undefined' is not compatible with binary()
|
||||
because
|
||||
'undefined' is not compatible with binary()
|
||||
|
||||
error: expected_fun_type (See https://fb.me/eqwalizer_errors#expected_fun_type)
|
||||
┌─ check/src/comprehensions.erl:386:9
|
||||
│
|
||||
|
|
|
|||
|
|
@ -16,14 +16,4 @@ Because in the expression's type:
|
|||
Differs from the expected type: 'a'
|
||||
) -> 'ok')
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
ref_contravariant('a') is not compatible with ref_contravariant_ab()
|
||||
because
|
||||
contravariant('a') is not compatible with ref_contravariant_ab()
|
||||
because
|
||||
fun(('a') -> 'ok') is not compatible with ref_contravariant_ab()
|
||||
because
|
||||
fun(('a') -> 'ok') is not compatible with ref_contravariant('a' | 'b')
|
||||
|
||||
1 ERROR
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load diff
|
|
@ -66,61 +66,33 @@ error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types
|
|||
┌─ check/src/dynamic_calls.erl:78:14
|
||||
│
|
||||
78 │ (FUnion)(false).
|
||||
│ ^^^^^
|
||||
│ │
|
||||
│ 'false'.
|
||||
│ ^^^^^ 'false'.
|
||||
Expression has type: 'false'
|
||||
Context expected type: 'a1' | 'a2'
|
||||
│
|
||||
|
||||
'false' is not compatible with 'a1' | 'a2'
|
||||
because
|
||||
'false' is not compatible with 'a1'
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ check/src/dynamic_calls.erl:78:14
|
||||
│
|
||||
78 │ (FUnion)(false).
|
||||
│ ^^^^^
|
||||
│ │
|
||||
│ 'false'.
|
||||
│ ^^^^^ 'false'.
|
||||
Expression has type: 'false'
|
||||
Context expected type: 'a2' | 'a3'
|
||||
│
|
||||
|
||||
'false' is not compatible with 'a2' | 'a3'
|
||||
because
|
||||
'false' is not compatible with 'a2'
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ check/src/dynamic_calls.erl:86:20
|
||||
│
|
||||
86 │ Res = (FUnion)(false),
|
||||
│ ^^^^^
|
||||
│ │
|
||||
│ 'false'.
|
||||
│ ^^^^^ 'false'.
|
||||
Expression has type: 'false'
|
||||
Context expected type: 'a1' | 'a2'
|
||||
│
|
||||
|
||||
'false' is not compatible with 'a1' | 'a2'
|
||||
because
|
||||
'false' is not compatible with 'a1'
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ check/src/dynamic_calls.erl:86:20
|
||||
│
|
||||
86 │ Res = (FUnion)(false),
|
||||
│ ^^^^^
|
||||
│ │
|
||||
│ 'false'.
|
||||
│ ^^^^^ 'false'.
|
||||
Expression has type: 'false'
|
||||
Context expected type: 'a2' | 'a3'
|
||||
│
|
||||
|
||||
'false' is not compatible with 'a2' | 'a3'
|
||||
because
|
||||
'false' is not compatible with 'a2'
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ check/src/dynamic_calls.erl:87:5
|
||||
|
|
@ -146,12 +118,6 @@ Because in the expression's type:
|
|||
However the following candidate: 'r2'
|
||||
Differs from the expected type: 'r1'
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
'r1' | 'r2' is not compatible with 'r1'
|
||||
because
|
||||
'r2' is not compatible with 'r1'
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ check/src/dynamic_calls.erl:94:5
|
||||
│
|
||||
|
|
@ -176,12 +142,6 @@ Because in the expression's type:
|
|||
However the following candidate: 'r2'
|
||||
Differs from the expected type: 'r1'
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
'r1' | 'r2' | 'r3' is not compatible with 'r1'
|
||||
because
|
||||
'r2' is not compatible with 'r1'
|
||||
|
||||
error: expected_fun_type (See https://fb.me/eqwalizer_errors#expected_fun_type)
|
||||
┌─ check/src/dynamic_calls.erl:108:5
|
||||
│
|
||||
|
|
|
|||
|
|
@ -14,10 +14,4 @@ Because in the expression's type:
|
|||
However the following candidate: atom()
|
||||
Differs from the expected type: binary()
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
atom() | dynamic() is not compatible with binary()
|
||||
because
|
||||
atom() is not compatible with binary()
|
||||
|
||||
1 ERROR
|
||||
|
|
|
|||
|
|
@ -72,16 +72,6 @@ Because in the expression's type:
|
|||
Differs from the expected type: 'a'
|
||||
)
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
f5('a' | 'b') is not compatible with f4('a')
|
||||
because
|
||||
fun((term()) -> 'a' | 'b') is not compatible with f4('a')
|
||||
because
|
||||
fun((term()) -> 'a' | 'b') is not compatible with fun((...) -> 'a')
|
||||
because
|
||||
'a' | 'b' is not compatible with 'a'
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ check/src/dynamic_fun.erl:155:20
|
||||
│
|
||||
|
|
@ -108,16 +98,6 @@ Because in the expression's type:
|
|||
Differs from the expected type: 'a'
|
||||
)
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
fun((term()) -> 'a' | 'b') is not compatible with f4('a')
|
||||
because
|
||||
fun((term()) -> 'a' | 'b') is not compatible with fun((...) -> 'a')
|
||||
because
|
||||
'a' | 'b' is not compatible with 'a'
|
||||
because
|
||||
'b' is not compatible with 'a'
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ check/src/dynamic_fun.erl:176:21
|
||||
│
|
||||
|
|
@ -136,16 +116,6 @@ Because in the expression's type:
|
|||
Differs from the expected type: 'a'
|
||||
)
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
f4('a' | 'b') is not compatible with fun((term()) -> 'a')
|
||||
because
|
||||
fun((...) -> 'a' | 'b') is not compatible with fun((term()) -> 'a')
|
||||
because
|
||||
'a' | 'b' is not compatible with 'a'
|
||||
because
|
||||
'b' is not compatible with 'a'
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ check/src/dynamic_fun.erl:208:34
|
||||
│
|
||||
|
|
|
|||
|
|
@ -38,12 +38,6 @@ Because in the expression's type:
|
|||
However the following candidate: number()
|
||||
Differs from the expected type: none()
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
number() | dynamic() is not compatible with none()
|
||||
because
|
||||
number() is not compatible with none()
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ check/src/dynamic_generics.erl:72:3
|
||||
│
|
||||
|
|
@ -68,12 +62,6 @@ Because in the expression's type:
|
|||
However the following candidate: string()
|
||||
Differs from the expected type: 'ok'
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
dynamic() | string() is not compatible with 'ok'
|
||||
because
|
||||
string() is not compatible with 'ok'
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ check/src/dynamic_generics.erl:87:3
|
||||
│
|
||||
|
|
@ -112,14 +100,6 @@ Because in the expression's type:
|
|||
Differs from the expected type: number()
|
||||
]
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
[number() | 'three'] is not compatible with [number()]
|
||||
because
|
||||
number() | 'three' is not compatible with number()
|
||||
because
|
||||
'three' is not compatible with number()
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ check/src/dynamic_generics.erl:115:9
|
||||
│
|
||||
|
|
@ -136,12 +116,6 @@ Because in the expression's type:
|
|||
However the following candidate: 'three'
|
||||
Differs from the expected type: number()
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
number() | 'three' is not compatible with number()
|
||||
because
|
||||
'three' is not compatible with number()
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ check/src/dynamic_generics.erl:115:22
|
||||
│
|
||||
|
|
@ -158,12 +132,6 @@ Because in the expression's type:
|
|||
However the following candidate: 'three'
|
||||
Differs from the expected type: number()
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
number() | 'three' is not compatible with number()
|
||||
because
|
||||
'three' is not compatible with number()
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ check/src/dynamic_generics.erl:127:13
|
||||
│
|
||||
|
|
|
|||
|
|
@ -14,12 +14,6 @@ Because in the expression's type:
|
|||
However the following candidate: number()
|
||||
Differs from the expected type: atom()
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
dynamic() | number() is not compatible with atom()
|
||||
because
|
||||
number() is not compatible with atom()
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ check/src/dynamic_local_funs.erl:36:15
|
||||
│
|
||||
|
|
|
|||
|
|
@ -100,12 +100,6 @@ Because in the expression's type:
|
|||
However the following candidate: 'error'
|
||||
Differs from the expected type: 'ok'
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
dynamic() | 'error' is not compatible with 'ok'
|
||||
because
|
||||
'error' is not compatible with 'ok'
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ check/src/dynamic_refine.erl:236:3
|
||||
│
|
||||
|
|
@ -138,12 +132,6 @@ Because in the expression's type:
|
|||
However the following candidate: 'err'
|
||||
Differs from the expected type: 'ok'
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
dyn_alias() | 'err' is not compatible with 'ok'
|
||||
because
|
||||
'err' is not compatible with 'ok'
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ check/src/dynamic_refine.erl:260:27
|
||||
│
|
||||
|
|
@ -162,15 +150,4 @@ Because in the expression's type:
|
|||
Differs from the expected type: 'ok'
|
||||
}
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
union() is not compatible with {'ok'}
|
||||
because
|
||||
at tuple index 1:
|
||||
{dyn_alias() | 'err'} is not compatible with {'ok'}
|
||||
because
|
||||
dyn_alias() | 'err' is not compatible with 'ok'
|
||||
because
|
||||
'err' is not compatible with 'ok'
|
||||
|
||||
16 ERRORS
|
||||
|
|
|
|||
|
|
@ -38,12 +38,6 @@ Because in the expression's type:
|
|||
However the following candidate: 'error'
|
||||
Differs from the expected type: number()
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
'error' | 'exit' | 'throw' | number() is not compatible with number()
|
||||
because
|
||||
'error' is not compatible with number()
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ check/src/elab_clause.erl:86:5
|
||||
│
|
||||
|
|
@ -60,12 +54,6 @@ Because in the expression's type:
|
|||
However the following candidate: [dynamic()]
|
||||
Differs from the expected type: number()
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
number() | [dynamic()] is not compatible with number()
|
||||
because
|
||||
[dynamic()] is not compatible with number()
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ check/src/elab_clause.erl:93:17
|
||||
│
|
||||
|
|
|
|||
|
|
@ -15,17 +15,6 @@ Because in the expression's type:
|
|||
Context expects type: number()
|
||||
, ... }
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
#{bar := atom(), baz := atom()} is not compatible with foo_map() | #{foo => atom()}
|
||||
because
|
||||
#{bar := atom(), baz := atom()} is not compatible with foo_map()
|
||||
because
|
||||
#{bar := atom(), baz := atom()} is not compatible with #{bar => atom(), baz => number(), other => atom(), other2 => atom(), other3 => atom(), other4 => atom(), other5 => atom()}
|
||||
because
|
||||
at key `baz`:
|
||||
#{bar := atom(), baz := atom()} is not compatible with #{bar => atom(), baz => number(), other => atom(), other2 => atom(), other3 => atom(), other4 => atom(), other5 => atom()}
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ check/src/error_messages.erl:19:24
|
||||
│
|
||||
|
|
@ -44,12 +33,6 @@ Because in the expression's type:
|
|||
The expected map has no corresponding key for: baz.
|
||||
]
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
[#{bar => 'a' | 'b'} | #{baz => 'a' | 'b'}] is not compatible with [#{bar => 'a'}]
|
||||
because
|
||||
#{bar => 'a' | 'b'} | #{baz => 'a' | 'b'} is not compatible with #{bar => 'a'}
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ check/src/error_messages.erl:22:22
|
||||
│
|
||||
|
|
@ -68,15 +51,6 @@ Because in the expression's type:
|
|||
Differs from the expected type: binary()
|
||||
, ... }
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
#{'undefined' | binary() => atom()} is not compatible with #{binary() => atom()}
|
||||
the default associations are not compatible
|
||||
because
|
||||
'undefined' | binary() is not compatible with binary()
|
||||
because
|
||||
'undefined' is not compatible with binary()
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ check/src/error_messages.erl:27:32
|
||||
│
|
||||
|
|
@ -89,17 +63,9 @@ error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types
|
|||
┌─ check/src/error_messages.erl:30:32
|
||||
│
|
||||
30 │ no_record_conversion_2(Foo) -> Foo.
|
||||
│ ^^^
|
||||
│ │
|
||||
│ Foo.
|
||||
│ ^^^ Foo.
|
||||
Expression has type: #foo{}
|
||||
Context expected type: {binary(), atom(), atom()}
|
||||
│
|
||||
|
||||
at tuple index 1:
|
||||
{'foo', atom(), atom()} is not compatible with {binary(), atom(), atom()}
|
||||
because
|
||||
'foo' is not compatible with binary()
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ check/src/error_messages.erl:33:27
|
||||
|
|
@ -118,13 +84,6 @@ Because in the expression's type:
|
|||
Context expects type: binary()
|
||||
, atom()}
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
at tuple index 2:
|
||||
{'foo', atom(), atom()} is not compatible with {'foo', binary(), atom()}
|
||||
because
|
||||
atom() is not compatible with binary()
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ check/src/error_messages.erl:37:31
|
||||
│
|
||||
|
|
@ -143,18 +102,6 @@ Because in the expression's type:
|
|||
The expected map has no corresponding key for: large_map_key_a.
|
||||
, ... }
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
#{foo => #{large_map_key_a => 'large_map_val_a', large_map_key_b => 'large_map_val_b'}} is not compatible with #{foo => #{large_map_key_c => 'large_map_val_c'} | #{large_map_key_d => 'large_map_val_d'}}
|
||||
because
|
||||
at key `foo`:
|
||||
#{foo => #{large_map_key_a => 'large_map_val_a', large_map_key_b => 'large_map_val_b'}} is not compatible with #{foo => #{large_map_key_c => 'large_map_val_c'} | #{large_map_key_d => 'large_map_val_d'}}
|
||||
because
|
||||
#{large_map_key_a => 'large_map_val_a', large_map_key_b => 'large_map_val_b'} is not compatible with #{large_map_key_c => 'large_map_val_c'} | #{large_map_key_d => 'large_map_val_d'}
|
||||
because
|
||||
#{large_map_key_a => 'large_map_val_a', large_map_key_b => 'large_map_val_b'} is not compatible with #{large_map_key_c => 'large_map_val_c'}
|
||||
key `large_map_key_a` is declared in the former but not in the latter and the latter map has no default association
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ check/src/error_messages.erl:41:31
|
||||
│
|
||||
|
|
@ -173,16 +120,4 @@ Because in the expression's type:
|
|||
The expected map has no corresponding key for: large_map_key_a.
|
||||
, ... }
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
#{foo => #{large_map_key_a => 'large_map_val_a', large_map_key_b => 'large_map_val_b'}} is not compatible with #{foo => #{large_map_key_c => 'large_map_val_c', large_map_key_d => 'large_map_val_d'} | 'any'}
|
||||
because
|
||||
at key `foo`:
|
||||
#{foo => #{large_map_key_a => 'large_map_val_a', large_map_key_b => 'large_map_val_b'}} is not compatible with #{foo => #{large_map_key_c => 'large_map_val_c', large_map_key_d => 'large_map_val_d'} | 'any'}
|
||||
because
|
||||
#{large_map_key_a => 'large_map_val_a', large_map_key_b => 'large_map_val_b'} is not compatible with #{large_map_key_c => 'large_map_val_c', large_map_key_d => 'large_map_val_d'} | 'any'
|
||||
because
|
||||
#{large_map_key_a => 'large_map_val_a', large_map_key_b => 'large_map_val_b'} is not compatible with #{large_map_key_c => 'large_map_val_c', large_map_key_d => 'large_map_val_d'}
|
||||
key `large_map_key_a` is declared in the former but not in the latter and the latter map has no default association
|
||||
|
||||
8 ERRORS
|
||||
|
|
|
|||
|
|
@ -13,10 +13,4 @@ Because in the expression's type:
|
|||
Here the type is: [number() | io_lib:chars()]
|
||||
Context expects type: string()
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
io_lib:chars() is not compatible with string()
|
||||
because
|
||||
[number() | io_lib:chars()] is not compatible with string()
|
||||
|
||||
1 ERROR
|
||||
|
|
|
|||
|
|
@ -29,12 +29,6 @@ Because in the expression's type:
|
|||
Here the type is: number()
|
||||
Context expects type: [term()]
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
n() is not compatible with [term()]
|
||||
because
|
||||
number() is not compatible with [term()]
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ check/src/funs.erl:63:9
|
||||
│
|
||||
|
|
@ -50,12 +44,6 @@ Because in the expression's type:
|
|||
Here the type is: [dynamic()]
|
||||
Context expects type: number()
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
[dynamic()] is not compatible with n()
|
||||
because
|
||||
[dynamic()] is not compatible with number()
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ check/src/funs.erl:70:13
|
||||
│
|
||||
|
|
@ -71,12 +59,6 @@ Because in the expression's type:
|
|||
Here the type is: binary()
|
||||
Context expects type: number()
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
binary() is not compatible with n()
|
||||
because
|
||||
binary() is not compatible with number()
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ check/src/funs.erl:70:35
|
||||
│
|
||||
|
|
@ -92,12 +74,6 @@ Because in the expression's type:
|
|||
Here the type is: number()
|
||||
Context expects type: atom()
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
n() is not compatible with atom()
|
||||
because
|
||||
number() is not compatible with atom()
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ check/src/funs.erl:77:5
|
||||
│
|
||||
|
|
@ -116,14 +92,6 @@ Because in the expression's type:
|
|||
Context expects type: 'a'
|
||||
]
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
[n()] is not compatible with ['a']
|
||||
because
|
||||
n() is not compatible with 'a'
|
||||
because
|
||||
number() is not compatible with 'a'
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ check/src/funs.erl:90:18
|
||||
│
|
||||
|
|
@ -139,12 +107,6 @@ Because in the expression's type:
|
|||
Here the type is: number()
|
||||
Context expects type: [term()]
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
n() is not compatible with [term()]
|
||||
because
|
||||
number() is not compatible with [term()]
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ check/src/funs.erl:90:18
|
||||
│
|
||||
|
|
@ -160,12 +122,6 @@ Because in the expression's type:
|
|||
Here the type is: [dynamic()]
|
||||
Context expects type: number()
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
[dynamic()] is not compatible with n()
|
||||
because
|
||||
[dynamic()] is not compatible with number()
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ check/src/funs.erl:90:23
|
||||
│
|
||||
|
|
@ -181,12 +137,6 @@ Because in the expression's type:
|
|||
Here the type is: number()
|
||||
Context expects type: [term()]
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
n() is not compatible with [term()]
|
||||
because
|
||||
number() is not compatible with [term()]
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ check/src/funs.erl:96:31
|
||||
│
|
||||
|
|
@ -202,12 +152,6 @@ Because in the expression's type:
|
|||
Here the type is: number()
|
||||
Context expects type: atom()
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
n() is not compatible with atom()
|
||||
because
|
||||
number() is not compatible with atom()
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ check/src/funs.erl:97:9
|
||||
│
|
||||
|
|
@ -223,12 +167,6 @@ Because in the expression's type:
|
|||
Here the type is: number()
|
||||
Context expects type: [term()]
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
n() is not compatible with [term()]
|
||||
because
|
||||
number() is not compatible with [term()]
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ check/src/funs.erl:97:9
|
||||
│
|
||||
|
|
@ -244,12 +182,6 @@ Because in the expression's type:
|
|||
Here the type is: [dynamic()]
|
||||
Context expects type: number()
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
[dynamic()] is not compatible with n()
|
||||
because
|
||||
[dynamic()] is not compatible with number()
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ check/src/funs.erl:97:14
|
||||
│
|
||||
|
|
@ -265,12 +197,6 @@ Because in the expression's type:
|
|||
Here the type is: number()
|
||||
Context expects type: [term()]
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
n() is not compatible with [term()]
|
||||
because
|
||||
number() is not compatible with [term()]
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ check/src/funs.erl:104:7
|
||||
│
|
||||
|
|
|
|||
|
|
@ -19,14 +19,6 @@ Because in the expression's type:
|
|||
]
|
||||
]
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
[[[[]]]] is not compatible with [[[]]]
|
||||
because
|
||||
[[[]]] is not compatible with [[]]
|
||||
because
|
||||
[[]] is not compatible with []
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ check/src/funs2.erl:54:5
|
||||
│
|
||||
|
|
@ -66,12 +58,6 @@ Because in the expression's type:
|
|||
Context expects type: atom()
|
||||
)
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
fun((atom()) -> string()) is not compatible with fun((atom()) -> atom())
|
||||
because
|
||||
string() is not compatible with atom()
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ check/src/funs2.erl:101:9
|
||||
│
|
||||
|
|
@ -90,14 +76,6 @@ Because in the expression's type:
|
|||
Differs from the expected type: atom()
|
||||
) -> string())
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
fun((atom()) -> string()) is not compatible with fun((dynamic() | fun((string()) -> atom())) -> dynamic() | fun((string()) -> atom()))
|
||||
because
|
||||
dynamic() | fun((string()) -> atom()) is not compatible with atom()
|
||||
because
|
||||
fun((string()) -> atom()) is not compatible with atom()
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ check/src/funs2.erl:101:9
|
||||
│
|
||||
|
|
@ -116,14 +94,6 @@ Because in the expression's type:
|
|||
Differs from the expected type: atom()
|
||||
) -> string())
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
fun((atom()) -> string()) is not compatible with fun((dynamic() | string() | fun((string()) -> atom())) -> dynamic() | string() | fun((string()) -> atom()))
|
||||
because
|
||||
dynamic() | string() | fun((string()) -> atom()) is not compatible with atom()
|
||||
because
|
||||
string() is not compatible with atom()
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ check/src/funs2.erl:152:27
|
||||
│
|
||||
|
|
|
|||
|
|
@ -31,12 +31,6 @@ Because in the expression's type:
|
|||
Context expects type: atom()
|
||||
]
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
[number()] is not compatible with [atom()]
|
||||
because
|
||||
number() is not compatible with atom()
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ check/src/generic_fun_application.erl:38:29
|
||||
│
|
||||
|
|
@ -54,14 +48,6 @@ Because in the expression's type:
|
|||
Context expects type: atom()
|
||||
]
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
[number()] is not compatible with [dynamic(atom())]
|
||||
because
|
||||
number() is not compatible with dynamic(atom())
|
||||
because
|
||||
number() is not compatible with atom()
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ check/src/generic_fun_application.erl:43:5
|
||||
│
|
||||
|
|
@ -87,12 +73,6 @@ Because in the expression's type:
|
|||
Context expects type: B
|
||||
)
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
fun((atom()) -> pid()) is not compatible with fun((number()) -> B)
|
||||
because
|
||||
pid() is not compatible with B
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ check/src/generic_fun_application.erl:43:18
|
||||
│
|
||||
|
|
@ -111,14 +91,6 @@ Because in the expression's type:
|
|||
Differs from the expected type: atom()
|
||||
) -> pid())
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
fun((atom()) -> pid()) is not compatible with fun((dynamic() | number()) -> pid())
|
||||
because
|
||||
dynamic() | number() is not compatible with atom()
|
||||
because
|
||||
number() is not compatible with atom()
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ check/src/generic_fun_application.erl:47:33
|
||||
│
|
||||
|
|
@ -136,12 +108,6 @@ Because in the expression's type:
|
|||
Context expects type: atom()
|
||||
]
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
[number()] is not compatible with [atom()]
|
||||
because
|
||||
number() is not compatible with atom()
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ check/src/generic_fun_application.erl:47:33
|
||||
│
|
||||
|
|
@ -159,14 +125,6 @@ Because in the expression's type:
|
|||
Context expects type: atom()
|
||||
]
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
[number()] is not compatible with [dynamic(atom())]
|
||||
because
|
||||
number() is not compatible with dynamic(atom())
|
||||
because
|
||||
number() is not compatible with atom()
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ check/src/generic_fun_application.erl:48:5
|
||||
│
|
||||
|
|
@ -192,12 +150,6 @@ Because in the expression's type:
|
|||
Context expects type: B
|
||||
)
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
fun((atom()) -> pid()) is not compatible with fun((number()) -> B)
|
||||
because
|
||||
pid() is not compatible with B
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ check/src/generic_fun_application.erl:52:22
|
||||
│
|
||||
|
|
@ -216,14 +168,6 @@ Because in the expression's type:
|
|||
Differs from the expected type: atom()
|
||||
) -> pid())
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
fun((atom()) -> pid()) is not compatible with fun((dynamic() | number()) -> pid())
|
||||
because
|
||||
dynamic() | number() is not compatible with atom()
|
||||
because
|
||||
number() is not compatible with atom()
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ check/src/generic_fun_application.erl:53:5
|
||||
│
|
||||
|
|
@ -272,10 +216,6 @@ Because in the expression's type:
|
|||
Context expects type: #{...}
|
||||
The expected map has no corresponding key for: true.
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
key `true` is declared in the former but not in the latter and the latter map has no default association
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ check/src/generic_fun_application.erl:99:13
|
||||
│
|
||||
|
|
@ -365,15 +305,6 @@ Because in the expression's type:
|
|||
Context expects type: T
|
||||
, ... }
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
#{a => number()} is not compatible with #{atom() => T}
|
||||
because
|
||||
#{a => number()} is not compatible with #{atom() => T}
|
||||
key `a` is declared in the former but not in the latter and key `a` isn't compatible with the default association of the latter map
|
||||
because
|
||||
number() is not compatible with T
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ check/src/generic_fun_application.erl:126:5
|
||||
│
|
||||
|
|
@ -414,12 +345,6 @@ Because in the expression's type:
|
|||
However the following candidate: 'b'
|
||||
Differs from the expected type: 'a'
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
'a' | 'b' is not compatible with 'a'
|
||||
because
|
||||
'b' is not compatible with 'a'
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ check/src/generic_fun_application.erl:157:5
|
||||
│
|
||||
|
|
@ -444,12 +369,6 @@ Because in the expression's type:
|
|||
However the following candidate: 'b'
|
||||
Differs from the expected type: 'a'
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
'a' | 'b' is not compatible with 'a'
|
||||
because
|
||||
'b' is not compatible with 'a'
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ check/src/generic_fun_application.erl:172:5
|
||||
│
|
||||
|
|
@ -466,12 +385,6 @@ Because in the expression's type:
|
|||
However the following candidate: 'a'
|
||||
Differs from the expected type: 'b'
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
'a' | 'b' is not compatible with 'b'
|
||||
because
|
||||
'a' is not compatible with 'b'
|
||||
|
||||
error: clause_not_covered (See https://fb.me/eqwalizer_errors#clause_not_covered)
|
||||
┌─ check/src/generic_fun_application.erl:226:1
|
||||
│
|
||||
|
|
@ -521,12 +434,6 @@ Because in the expression's type:
|
|||
Context expects type: X
|
||||
)
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
fun(() -> A) is not compatible with fun(() -> X)
|
||||
because
|
||||
A is not compatible with X
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ check/src/generic_fun_application.erl:276:5
|
||||
│
|
||||
|
|
@ -567,12 +474,6 @@ Because in the expression's type:
|
|||
However the following candidate: Last
|
||||
Differs from the expected type: 'first'
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
'first' | Last is not compatible with 'first'
|
||||
because
|
||||
Last is not compatible with 'first'
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ check/src/generic_fun_application.erl:296:5
|
||||
│
|
||||
|
|
@ -589,12 +490,6 @@ Because in the expression's type:
|
|||
However the following candidate: T
|
||||
Differs from the expected type: atom()
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
atom() | T is not compatible with atom()
|
||||
because
|
||||
T is not compatible with atom()
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ check/src/generic_fun_application.erl:322:5
|
||||
│
|
||||
|
|
@ -612,13 +507,6 @@ Because in the expression's type:
|
|||
Context expects type: pid()
|
||||
, pid()}
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
at tuple index 1:
|
||||
{number(), pid()} is not compatible with {pid(), number()}
|
||||
because
|
||||
number() is not compatible with pid()
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ check/src/generic_fun_application.erl:330:5
|
||||
│
|
||||
|
|
@ -677,12 +565,6 @@ Because in the expression's type:
|
|||
Context expects type: fun((A) -> A) with 0 type parameters
|
||||
The number of type parameters doesn't match.
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
fun((Z) -> Z) | fun((dynamic()) -> dynamic()) is not compatible with fun((A) -> A)
|
||||
because
|
||||
fun((Z) -> Z) with 1 type parameter is not compatible with fun((A) -> A) with 0 type parameters
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ check/src/generic_fun_application.erl:346:9
|
||||
│
|
||||
|
|
@ -701,12 +583,6 @@ Because in the expression's type:
|
|||
Context expects type: fun((dynamic()) -> dynamic()) with 0 type parameters
|
||||
The number of type parameters doesn't match.
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
fun((Z) -> Z) | fun((dynamic()) -> dynamic()) is not compatible with fun((dynamic()) -> dynamic())
|
||||
because
|
||||
fun((Z) -> Z) with 1 type parameter is not compatible with fun((dynamic()) -> dynamic()) with 0 type parameters
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ check/src/generic_fun_application.erl:346:9
|
||||
│
|
||||
|
|
@ -725,12 +601,6 @@ Because in the expression's type:
|
|||
Context expects type: fun((A) -> A) with 0 type parameters
|
||||
The number of type parameters doesn't match.
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
fun((Z) -> Z) | fun((dynamic()) -> dynamic()) is not compatible with fun((A) -> A)
|
||||
because
|
||||
fun((Z) -> Z) with 1 type parameter is not compatible with fun((A) -> A) with 0 type parameters
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ check/src/generic_fun_application.erl:358:9
|
||||
│
|
||||
|
|
@ -781,12 +651,6 @@ Because in the expression's type:
|
|||
Context expects type: fun((Z) -> Z) with 0 type parameters
|
||||
The number of type parameters doesn't match.
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
fun((Z) -> Z) | fun((dynamic()) -> dynamic()) is not compatible with fun((Z) -> Z)
|
||||
because
|
||||
fun((Z) -> Z) with 1 type parameter is not compatible with fun((Z) -> Z) with 0 type parameters
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ check/src/generic_fun_application.erl:358:9
|
||||
│
|
||||
|
|
@ -805,12 +669,6 @@ Because in the expression's type:
|
|||
Context expects type: fun((dynamic()) -> dynamic()) with 0 type parameters
|
||||
The number of type parameters doesn't match.
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
fun((Z) -> Z) | fun((dynamic()) -> dynamic()) is not compatible with fun((dynamic()) -> dynamic())
|
||||
because
|
||||
fun((Z) -> Z) with 1 type parameter is not compatible with fun((dynamic()) -> dynamic()) with 0 type parameters
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ check/src/generic_fun_application.erl:358:9
|
||||
│
|
||||
|
|
@ -829,12 +687,6 @@ Because in the expression's type:
|
|||
Context expects type: fun((Z) -> Z) with 0 type parameters
|
||||
The number of type parameters doesn't match.
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
fun((Z) -> Z) | fun((dynamic()) -> dynamic()) is not compatible with fun((Z) -> Z)
|
||||
because
|
||||
fun((Z) -> Z) with 1 type parameter is not compatible with fun((Z) -> Z) with 0 type parameters
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ check/src/generic_fun_application.erl:432:18
|
||||
│
|
||||
|
|
@ -875,10 +727,6 @@ Because in the expression's type:
|
|||
Context expects type: #{a := ..., ...}
|
||||
The type of the expression is missing the following required keys: a.
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
key `a` is declared as required in the latter but not in the former
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ check/src/generic_fun_application.erl:441:16
|
||||
│
|
||||
|
|
@ -895,10 +743,6 @@ Because in the expression's type:
|
|||
Context expects type: #{a := ..., ...}
|
||||
The type of the expression is missing the following required keys: a.
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
key `a` is declared as required in the latter but not in the former
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ check/src/generic_fun_application.erl:446:15
|
||||
│
|
||||
|
|
@ -916,12 +760,6 @@ Because in the expression's type:
|
|||
Context expects type: T
|
||||
)
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
fun((#{a => number()}) -> number()) is not compatible with fun((#{{T} => T}) -> T)
|
||||
because
|
||||
number() is not compatible with T
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ check/src/generic_fun_application.erl:446:15
|
||||
│
|
||||
|
|
@ -940,15 +778,6 @@ Because in the expression's type:
|
|||
The expected map has no default association while the type of the expression has one.
|
||||
) -> number())
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
fun((#{a => number()}) -> number()) is not compatible with fun((#{{number()} => number()}) -> number())
|
||||
because
|
||||
#{{number()} => number()} is not compatible with #{a => number()}
|
||||
because
|
||||
#{{number()} => number()} is not compatible with #{a => number()}
|
||||
the latter map has no default association while the first map has one
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ check/src/generic_fun_application.erl:471:24
|
||||
│
|
||||
|
|
@ -966,12 +795,6 @@ Because in the expression's type:
|
|||
Context expects type: 'c'
|
||||
)
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
fun(('a') -> 'b') is not compatible with fun(('a') -> 'c')
|
||||
because
|
||||
'b' is not compatible with 'c'
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ check/src/generic_fun_application.erl:478:17
|
||||
│
|
||||
|
|
@ -988,10 +811,6 @@ Because in the expression's type:
|
|||
Context expects type: #{a := ..., ...}
|
||||
The type of the expression is missing the following required keys: a.
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
key `a` is declared as required in the latter but not in the former
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ check/src/generic_fun_application.erl:478:17
|
||||
│
|
||||
|
|
@ -1008,10 +827,6 @@ Because in the expression's type:
|
|||
Context expects type: #{a := ..., ...}
|
||||
The type of the expression is missing the following required keys: a.
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
key `a` is declared as required in the latter but not in the former
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ check/src/generic_fun_application.erl:500:36
|
||||
│
|
||||
|
|
@ -1048,16 +863,6 @@ Because in the expression's type:
|
|||
) -> 'ok')
|
||||
) -> 'ok')
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
contravar(contravar('a' | 'b')) is not compatible with contravar(contravar('a'))
|
||||
because
|
||||
fun((contravar('a' | 'b')) -> 'ok') is not compatible with contravar(contravar('a'))
|
||||
because
|
||||
fun((contravar('a' | 'b')) -> 'ok') is not compatible with fun((contravar('a')) -> 'ok')
|
||||
because
|
||||
contravar('a') is not compatible with contravar('a' | 'b')
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ check/src/generic_fun_application.erl:563:5
|
||||
│
|
||||
|
|
@ -1075,14 +880,6 @@ Because in the expression's type:
|
|||
Context expects type: 'a'
|
||||
) -> 'a')
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
invar('a') is not compatible with fun((atom()) -> atom())
|
||||
because
|
||||
fun(('a') -> 'a') is not compatible with fun((atom()) -> atom())
|
||||
because
|
||||
atom() is not compatible with 'a'
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ check/src/generic_fun_application.erl:569:5
|
||||
│
|
||||
|
|
@ -1100,16 +897,6 @@ Because in the expression's type:
|
|||
Context expects type: 'a'
|
||||
) -> 'a')
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
invar('a') is not compatible with invar(atom())
|
||||
because
|
||||
fun(('a') -> 'a') is not compatible with invar(atom())
|
||||
because
|
||||
fun(('a') -> 'a') is not compatible with fun((atom()) -> atom())
|
||||
because
|
||||
atom() is not compatible with 'a'
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ check/src/generic_fun_application.erl:585:5
|
||||
│
|
||||
|
|
@ -1125,12 +912,6 @@ Because in the expression's type:
|
|||
Here the type is: 'a'
|
||||
Context expects type: fun(('a') -> 'a')
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
'a' is not compatible with invar('a')
|
||||
because
|
||||
'a' is not compatible with fun(('a') -> 'a')
|
||||
|
||||
error: clause_not_covered (See https://fb.me/eqwalizer_errors#clause_not_covered)
|
||||
┌─ check/src/generic_fun_application.erl:625:1
|
||||
│
|
||||
|
|
@ -1175,10 +956,6 @@ Because in the expression's type:
|
|||
Context expects type: #{...}
|
||||
The expected map has no corresponding key for: extra.
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
key `extra` is declared in the former but not in the latter and the latter map has no default association
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ check/src/generic_fun_application.erl:721:25
|
||||
│
|
||||
|
|
@ -1205,14 +982,6 @@ Because in the expression's type:
|
|||
Differs from the expected type: 'a'
|
||||
) -> 'a')
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
fun(('a') -> 'a') is not compatible with fun(('a' | 'b') -> 'a' | 'b')
|
||||
because
|
||||
'a' | 'b' is not compatible with 'a'
|
||||
because
|
||||
'b' is not compatible with 'a'
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ check/src/generic_fun_application.erl:752:32
|
||||
│
|
||||
|
|
|
|||
|
|
@ -16,15 +16,6 @@ Because in the expression's type:
|
|||
Differs from the expected type: T
|
||||
, T | U}
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
at tuple index 1:
|
||||
{T | U, T | U} is not compatible with {T, U}
|
||||
because
|
||||
T | U is not compatible with T
|
||||
because
|
||||
U is not compatible with T
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ check/src/generics_with_unions.erl:70:19
|
||||
│
|
||||
|
|
@ -62,12 +53,6 @@ Because in the expression's type:
|
|||
Here the type is: [prop('a', number())]
|
||||
Context expects type: 'wrong_ret'
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
props('a', number()) is not compatible with 'wrong_ret'
|
||||
because
|
||||
[prop('a', number())] is not compatible with 'wrong_ret'
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ check/src/generics_with_unions.erl:217:19
|
||||
│
|
||||
|
|
@ -92,12 +77,6 @@ Because in the expression's type:
|
|||
However the following candidate: [T]
|
||||
Differs from the expected type: T
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
[T] | T is not compatible with T
|
||||
because
|
||||
[T] is not compatible with T
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ check/src/generics_with_unions.erl:221:17
|
||||
│
|
||||
|
|
@ -114,12 +93,6 @@ Because in the expression's type:
|
|||
However the following candidate: [T]
|
||||
Differs from the expected type: T
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
T | [T] is not compatible with T
|
||||
because
|
||||
[T] is not compatible with T
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ check/src/generics_with_unions.erl:222:19
|
||||
│
|
||||
|
|
@ -171,14 +144,6 @@ Because in the expression's type:
|
|||
Context expects type: K
|
||||
]
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
[K] | [[K]] is not compatible with [K]
|
||||
because
|
||||
[[K]] is not compatible with [K]
|
||||
because
|
||||
[K] is not compatible with K
|
||||
|
||||
error: ambiguous_union (See https://fb.me/eqwalizer_errors#ambiguous_union)
|
||||
┌─ check/src/generics_with_unions.erl:332:31
|
||||
│
|
||||
|
|
@ -205,17 +170,6 @@ Because in the expression's type:
|
|||
}
|
||||
) -> 'ok')
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
query() is not compatible with fun(({'i', 'atom'}) -> 'ok')
|
||||
because
|
||||
fun(({'a', atom()} | {'b', binary()} | {'i', number()}) -> 'ok') is not compatible with fun(({'i', 'atom'}) -> 'ok')
|
||||
because
|
||||
{'i', 'atom'} is not compatible with {'a', atom()} | {'b', binary()} | {'i', number()}
|
||||
because
|
||||
at tuple index 2:
|
||||
{'i', 'atom'} is not compatible with {'i', number()}
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ check/src/generics_with_unions.erl:392:17
|
||||
│
|
||||
|
|
@ -235,15 +189,4 @@ Because in the expression's type:
|
|||
}
|
||||
) -> 'ok')
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
query() is not compatible with fun(({'a', number()}) -> 'ok')
|
||||
because
|
||||
fun(({'a', atom()} | {'b', binary()} | {'i', number()}) -> 'ok') is not compatible with fun(({'a', number()}) -> 'ok')
|
||||
because
|
||||
{'a', number()} is not compatible with {'a', atom()} | {'b', binary()} | {'i', number()}
|
||||
because
|
||||
at tuple index 2:
|
||||
{'a', number()} is not compatible with {'a', atom()}
|
||||
|
||||
16 ERRORS
|
||||
|
|
|
|||
|
|
@ -14,12 +14,6 @@ Because in the expression's type:
|
|||
However the following candidate: 'b'
|
||||
Differs from the expected type: 'c'
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
dyn('a') | 'b' is not compatible with 'c'
|
||||
because
|
||||
'b' is not compatible with 'c'
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ check/src/gradual_bounded.erl:25:26
|
||||
│
|
||||
|
|
@ -35,16 +29,6 @@ Because in the expression's type:
|
|||
Here the type is: 'a'
|
||||
Context expects type: 'b'
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
'a' is not compatible with dyn('b')
|
||||
because
|
||||
'a' is not compatible with dynamic('b')
|
||||
because
|
||||
'a' is not compatible with dynamic('b')
|
||||
because
|
||||
'a' is not compatible with 'b'
|
||||
|
||||
error: reveal_type (See https://fb.me/eqwalizer_errors#reveal_type)
|
||||
┌─ check/src/gradual_bounded.erl:44:27
|
||||
│
|
||||
|
|
@ -85,12 +69,6 @@ Because in the expression's type:
|
|||
However the following candidate: 'test'
|
||||
Differs from the expected type: number()
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
'test' | number() is not compatible with number()
|
||||
because
|
||||
'test' is not compatible with number()
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ check/src/gradual_bounded.erl:89:5
|
||||
│
|
||||
|
|
@ -107,10 +85,4 @@ Because in the expression's type:
|
|||
However the following candidate: 'test'
|
||||
Differs from the expected type: number()
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
'test' | dyn(number()) is not compatible with number()
|
||||
because
|
||||
'test' is not compatible with number()
|
||||
|
||||
8 ERRORS
|
||||
|
|
|
|||
|
|
@ -13,12 +13,6 @@ Because in the expression's type:
|
|||
Here the type is: 'undefined'
|
||||
Context expects type: #{...}
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
'undefined' is not compatible with complex_map()
|
||||
because
|
||||
'undefined' is not compatible with #{id := number(), {secret, id} => number(), atom() => term()}
|
||||
|
||||
error: reveal_type (See https://fb.me/eqwalizer_errors#reveal_type)
|
||||
┌─ check/src/gradual_complex_types.erl:29:25
|
||||
│
|
||||
|
|
@ -46,12 +40,6 @@ Because in the expression's type:
|
|||
Here the type is: #{...}
|
||||
Context expects type: [T]
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
complex_map() is not compatible with [T]
|
||||
because
|
||||
#{id := number(), {secret, id} => number(), atom() => term()} is not compatible with [T]
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ check/src/gradual_complex_types.erl:48:16
|
||||
│
|
||||
|
|
@ -67,12 +55,6 @@ Because in the expression's type:
|
|||
Here the type is: #{...}
|
||||
Context expects type: [dynamic()]
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
complex_map() is not compatible with [dynamic()]
|
||||
because
|
||||
#{id := number(), {secret, id} => number(), atom() => term()} is not compatible with [dynamic()]
|
||||
|
||||
error: reveal_type (See https://fb.me/eqwalizer_errors#reveal_type)
|
||||
┌─ check/src/gradual_complex_types.erl:55:25
|
||||
│
|
||||
|
|
@ -110,11 +92,4 @@ Because in the expression's type:
|
|||
Context expects type: number()
|
||||
}
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
at tuple index 2:
|
||||
{dyn_map(), 'ok'} is not compatible with {#{a => 'atom'}, number()}
|
||||
because
|
||||
'ok' is not compatible with number()
|
||||
|
||||
9 ERRORS
|
||||
|
|
|
|||
|
|
@ -100,12 +100,6 @@ Because in the expression's type:
|
|||
However the following candidate: 'a'
|
||||
Differs from the expected type: number()
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
dynamic() | 'a' is not compatible with number()
|
||||
because
|
||||
'a' is not compatible with number()
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ check/src/gradual_custom.erl:120:3
|
||||
│
|
||||
|
|
@ -202,12 +196,6 @@ Because in the expression's type:
|
|||
Context expects type: 'ok'
|
||||
No candidate of the expression's type matches the expected type.
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
file:filename_all() is not compatible with 'ok'
|
||||
because
|
||||
string() | binary() is not compatible with 'ok'
|
||||
|
||||
error: reveal_type (See https://fb.me/eqwalizer_errors#reveal_type)
|
||||
┌─ check/src/gradual_custom.erl:210:25
|
||||
│
|
||||
|
|
@ -230,12 +218,6 @@ Because in the expression's type:
|
|||
Context expects type: 'ok'
|
||||
No candidate of the expression's type matches the expected type.
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
file:filename_all() is not compatible with 'ok'
|
||||
because
|
||||
string() | binary() is not compatible with 'ok'
|
||||
|
||||
error: reveal_type (See https://fb.me/eqwalizer_errors#reveal_type)
|
||||
┌─ check/src/gradual_custom.erl:217:25
|
||||
│
|
||||
|
|
@ -258,12 +240,6 @@ Because in the expression's type:
|
|||
Context expects type: 'ok'
|
||||
No candidate of the expression's type matches the expected type.
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
file:filename_all() is not compatible with 'ok'
|
||||
because
|
||||
string() | binary() is not compatible with 'ok'
|
||||
|
||||
error: reveal_type (See https://fb.me/eqwalizer_errors#reveal_type)
|
||||
┌─ check/src/gradual_custom.erl:224:25
|
||||
│
|
||||
|
|
@ -286,12 +262,6 @@ Because in the expression's type:
|
|||
Context expects type: 'ok'
|
||||
No candidate of the expression's type matches the expected type.
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
file:filename_all() is not compatible with 'ok'
|
||||
because
|
||||
string() | binary() is not compatible with 'ok'
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ check/src/gradual_custom.erl:245:19
|
||||
│
|
||||
|
|
@ -308,12 +278,6 @@ Because in the expression's type:
|
|||
However the following candidate: 'undefined'
|
||||
Differs from the expected type: number()
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
number() | 'undefined' is not compatible with number()
|
||||
because
|
||||
'undefined' is not compatible with number()
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ check/src/gradual_custom.erl:257:19
|
||||
│
|
||||
|
|
@ -330,12 +294,6 @@ Because in the expression's type:
|
|||
However the following candidate: atom()
|
||||
Differs from the expected type: number()
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
number() | atom() | binary() is not compatible with number()
|
||||
because
|
||||
atom() is not compatible with number()
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ check/src/gradual_custom.erl:263:19
|
||||
│
|
||||
|
|
@ -352,12 +310,6 @@ Because in the expression's type:
|
|||
However the following candidate: atom()
|
||||
Differs from the expected type: number()
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
number() | dynamic() | number() | atom() | dynamic() is not compatible with number()
|
||||
because
|
||||
atom() is not compatible with number()
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ check/src/gradual_custom.erl:269:19
|
||||
│
|
||||
|
|
@ -374,12 +326,6 @@ Because in the expression's type:
|
|||
However the following candidate: atom()
|
||||
Differs from the expected type: number()
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
number() | dynamic() | atom() | dynamic() is not compatible with number()
|
||||
because
|
||||
atom() is not compatible with number()
|
||||
|
||||
error: reveal_type (See https://fb.me/eqwalizer_errors#reveal_type)
|
||||
┌─ check/src/gradual_custom.erl:277:25
|
||||
│
|
||||
|
|
@ -402,12 +348,6 @@ Because in the expression's type:
|
|||
However the following candidate: {none()}
|
||||
Differs from the expected type: number()
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
dynamic() | {none()} is not compatible with number()
|
||||
because
|
||||
{none()} is not compatible with number()
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ check/src/gradual_custom.erl:325:13
|
||||
│
|
||||
|
|
@ -424,14 +364,6 @@ Because in the expression's type:
|
|||
However the following candidate: 'undefined'
|
||||
Differs from the expected type: 'foo' | 'bar' | binary()
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
'bar' | 'undefined' | 'foo' is not compatible with 'foo' | 'bar' | binary()
|
||||
because
|
||||
'undefined' is not compatible with 'foo' | 'bar' | binary()
|
||||
because
|
||||
'undefined' is not compatible with 'foo'
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ check/src/gradual_custom.erl:343:3
|
||||
│
|
||||
|
|
@ -448,10 +380,4 @@ Because in the expression's type:
|
|||
However the following candidate: 'bar'
|
||||
Differs from the expected type: 'foo'
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
'foo' | 'bar' is not compatible with 'foo'
|
||||
because
|
||||
'bar' is not compatible with 'foo'
|
||||
|
||||
37 ERRORS
|
||||
|
|
|
|||
|
|
@ -62,14 +62,6 @@ Because in the expression's type:
|
|||
However the following candidate: 'a'
|
||||
Differs from the expected type: 'b' | 'c'
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
'a' | 'b' | 'c' is not compatible with 'b' | 'c'
|
||||
because
|
||||
'a' is not compatible with 'b' | 'c'
|
||||
because
|
||||
'a' is not compatible with 'b'
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ check/src/gradual_maybe.erl:147:14
|
||||
│
|
||||
|
|
|
|||
|
|
@ -16,16 +16,6 @@ Because in the expression's type:
|
|||
Differs from the expected type: 'a'
|
||||
) -> 'ok')
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
opaque:contravariant('a') is not compatible with opaque:contravariant('a' | 'b')
|
||||
because
|
||||
fun(('a') -> 'ok') is not compatible with opaque:contravariant('a' | 'b')
|
||||
because
|
||||
fun(('a') -> 'ok') is not compatible with fun(('a' | 'b') -> 'ok')
|
||||
because
|
||||
'a' | 'b' is not compatible with 'a'
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ check/src/gradual_misc.erl:38:5
|
||||
│
|
||||
|
|
@ -45,13 +35,8 @@ error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types
|
|||
┌─ check/src/gradual_misc.erl:46:41
|
||||
│
|
||||
46 │ refine_tuple_neg(T) when is_tuple(T) -> T;
|
||||
│ ^
|
||||
│ │
|
||||
│ T.
|
||||
│ ^ T.
|
||||
Expression has type: {'b', 'c'}
|
||||
Context expected type: 'a' | {none()}
|
||||
│
|
||||
|
||||
expected union does not contain any tuple type of size 2
|
||||
|
||||
4 ERRORS
|
||||
|
|
|
|||
|
|
@ -14,14 +14,6 @@ Because in the expression's type:
|
|||
However the following candidate: #r2{}
|
||||
Differs from the expected type: #r1{}
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
#r1{} | #r2{} is not compatible with r1()
|
||||
because
|
||||
#r1{} | #r2{} is not compatible with #r1{}
|
||||
because
|
||||
#r2{} is not compatible with #r1{}
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ check/src/guard_b_connections.erl:27:3
|
||||
│
|
||||
|
|
@ -38,14 +30,6 @@ Because in the expression's type:
|
|||
However the following candidate: #r2{}
|
||||
Differs from the expected type: #r1{}
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
#r1{} | #r2{} is not compatible with r1()
|
||||
because
|
||||
#r1{} | #r2{} is not compatible with #r1{}
|
||||
because
|
||||
#r2{} is not compatible with #r1{}
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ check/src/guard_b_connections.erl:32:3
|
||||
│
|
||||
|
|
@ -62,14 +46,6 @@ Because in the expression's type:
|
|||
However the following candidate: #r2{}
|
||||
Differs from the expected type: #r1{}
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
#r1{} | #r2{} is not compatible with r1()
|
||||
because
|
||||
#r1{} | #r2{} is not compatible with #r1{}
|
||||
because
|
||||
#r2{} is not compatible with #r1{}
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ check/src/guard_b_connections.erl:38:3
|
||||
│
|
||||
|
|
@ -86,14 +62,6 @@ Because in the expression's type:
|
|||
However the following candidate: #r2{}
|
||||
Differs from the expected type: #r1{}
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
#r1{} | #r2{} is not compatible with r1()
|
||||
because
|
||||
#r1{} | #r2{} is not compatible with #r1{}
|
||||
because
|
||||
#r2{} is not compatible with #r1{}
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ check/src/guard_b_connections.erl:44:3
|
||||
│
|
||||
|
|
@ -110,12 +78,4 @@ Because in the expression's type:
|
|||
However the following candidate: #r2{}
|
||||
Differs from the expected type: #r1{}
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
#r1{} | #r2{} is not compatible with r1()
|
||||
because
|
||||
#r1{} | #r2{} is not compatible with #r1{}
|
||||
because
|
||||
#r2{} is not compatible with #r1{}
|
||||
|
||||
5 ERRORS
|
||||
|
|
|
|||
|
|
@ -30,14 +30,6 @@ Because in the expression's type:
|
|||
However the following candidate: pid()
|
||||
Differs from the expected type: number() | atom()
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
number() | atom() | pid() is not compatible with number() | atom()
|
||||
because
|
||||
pid() is not compatible with number() | atom()
|
||||
because
|
||||
pid() is not compatible with number()
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ check/src/guards_logic.erl:73:5
|
||||
│
|
||||
|
|
@ -55,13 +47,6 @@ Because in the expression's type:
|
|||
Context expects type: number()
|
||||
, term()}
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
at tuple index 1:
|
||||
{term(), term()} is not compatible with {number(), number()}
|
||||
because
|
||||
term() is not compatible with number()
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ check/src/guards_logic.erl:101:46
|
||||
│
|
||||
|
|
|
|||
|
|
@ -38,12 +38,6 @@ Because in the expression's type:
|
|||
However the following candidate: term()
|
||||
Differs from the expected type: atom()
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
term() | 'undefined' is not compatible with atom()
|
||||
because
|
||||
term() is not compatible with atom()
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ check/src/hints.erl:52:5
|
||||
│
|
||||
|
|
@ -60,12 +54,6 @@ Because in the expression's type:
|
|||
However the following candidate: term()
|
||||
Differs from the expected type: atom()
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
term() | 'undefined' is not compatible with atom()
|
||||
because
|
||||
term() is not compatible with atom()
|
||||
|
||||
error: clause_not_covered (See https://fb.me/eqwalizer_errors#clause_not_covered)
|
||||
┌─ check/src/hints.erl:55:1
|
||||
│
|
||||
|
|
|
|||
|
|
@ -23,14 +23,6 @@ Because in the expression's type:
|
|||
Differs from the expected type: binary()
|
||||
]
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
[atom() | binary()] is not compatible with [binary()]
|
||||
because
|
||||
atom() | binary() is not compatible with binary()
|
||||
because
|
||||
atom() is not compatible with binary()
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ check/src/iolists.erl:55:22
|
||||
│
|
||||
|
|
@ -49,14 +41,6 @@ Because in the expression's type:
|
|||
Differs from the expected type: atom()
|
||||
]
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
[atom() | binary()] is not compatible with [atom()]
|
||||
because
|
||||
atom() | binary() is not compatible with atom()
|
||||
because
|
||||
binary() is not compatible with atom()
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ check/src/iolists.erl:60:27
|
||||
│
|
||||
|
|
|
|||
|
|
@ -16,16 +16,6 @@ Because in the expression's type:
|
|||
Differs from the expected type: atom()
|
||||
]
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
[atom() | binary()] is not compatible with [atom()] | [binary()]
|
||||
because
|
||||
[atom() | binary()] is not compatible with [atom()]
|
||||
because
|
||||
atom() | binary() is not compatible with atom()
|
||||
because
|
||||
binary() is not compatible with atom()
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ check/src/lists_tests.erl:16:28
|
||||
│
|
||||
|
|
@ -44,14 +34,4 @@ Because in the expression's type:
|
|||
Differs from the expected type: atom()
|
||||
]
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
[atom() | binary()] is not compatible with [atom()] | [binary()]
|
||||
because
|
||||
[atom() | binary()] is not compatible with [atom()]
|
||||
because
|
||||
atom() | binary() is not compatible with atom()
|
||||
because
|
||||
binary() is not compatible with atom()
|
||||
|
||||
2 ERRORS
|
||||
|
|
|
|||
|
|
@ -127,12 +127,6 @@ Because in the expression's type:
|
|||
Context expects type: atom()
|
||||
]
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
[number()] is not compatible with [atom()]
|
||||
because
|
||||
number() is not compatible with atom()
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ check/src/misc.erl:116:21
|
||||
│
|
||||
|
|
@ -150,12 +144,6 @@ Because in the expression's type:
|
|||
Context expects type: atom()
|
||||
]
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
[number()] is not compatible with [atom()]
|
||||
because
|
||||
number() is not compatible with atom()
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ check/src/misc.erl:120:18
|
||||
│
|
||||
|
|
@ -207,12 +195,6 @@ Because in the expression's type:
|
|||
Context expects type: number()
|
||||
]
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
[atom()] is not compatible with [number()]
|
||||
because
|
||||
atom() is not compatible with number()
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ check/src/misc.erl:143:29
|
||||
│
|
||||
|
|
@ -323,31 +305,17 @@ error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types
|
|||
┌─ check/src/misc.erl:352:22
|
||||
│
|
||||
352 │ catch test69_pos(atom).
|
||||
│ ^^^^
|
||||
│ │
|
||||
│ 'atom'.
|
||||
│ ^^^^ 'atom'.
|
||||
Expression has type: 'atom'
|
||||
Context expected type: [atom()] | [number()]
|
||||
│
|
||||
|
||||
'atom' is not compatible with [atom()] | [number()]
|
||||
because
|
||||
'atom' is not compatible with [atom()]
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ check/src/misc.erl:357:22
|
||||
│
|
||||
357 │ catch test69_pos(atom).
|
||||
│ ^^^^
|
||||
│ │
|
||||
│ 'atom'.
|
||||
│ ^^^^ 'atom'.
|
||||
Expression has type: 'atom'
|
||||
Context expected type: [atom()] | [number()]
|
||||
│
|
||||
|
||||
'atom' is not compatible with [atom()] | [number()]
|
||||
because
|
||||
'atom' is not compatible with [atom()]
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ check/src/misc.erl:404:11
|
||||
|
|
@ -393,17 +361,6 @@ Because in the expression's type:
|
|||
]
|
||||
, [atom() | number()]}
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
at tuple index 1:
|
||||
{[number() | atom()], [atom() | number()]} is not compatible with {[atom()], [number()]}
|
||||
because
|
||||
[number() | atom()] is not compatible with [atom()]
|
||||
because
|
||||
number() | atom() is not compatible with atom()
|
||||
because
|
||||
number() is not compatible with atom()
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ check/src/misc.erl:461:5
|
||||
│
|
||||
|
|
@ -424,17 +381,6 @@ Because in the expression's type:
|
|||
]
|
||||
, [atom() | number()]}
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
at tuple index 1:
|
||||
{[atom() | number()], [atom() | number()]} is not compatible with {[atom()] | [number()], [atom()] | [number()]}
|
||||
because
|
||||
[atom() | number()] is not compatible with [atom()] | [number()]
|
||||
because
|
||||
[atom() | number()] is not compatible with [atom()]
|
||||
because
|
||||
atom() | number() is not compatible with atom()
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ check/src/misc.erl:465:12
|
||||
│
|
||||
|
|
@ -509,16 +455,6 @@ Because in the expression's type:
|
|||
Differs from the expected type: atom() | number()
|
||||
]
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
[atom() | binary()] is not compatible with [atom() | number()]
|
||||
because
|
||||
atom() | binary() is not compatible with atom() | number()
|
||||
because
|
||||
binary() is not compatible with atom() | number()
|
||||
because
|
||||
binary() is not compatible with atom()
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ check/src/misc.erl:575:14
|
||||
│
|
||||
|
|
@ -552,12 +488,6 @@ Because in the expression's type:
|
|||
Context expects type: [A]
|
||||
]
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
[A] is not compatible with [[A]]
|
||||
because
|
||||
A is not compatible with [A]
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ check/src/misc.erl:611:21
|
||||
│
|
||||
|
|
@ -752,13 +682,6 @@ Because in the expression's type:
|
|||
Context expects type: 'ok'
|
||||
}
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
at tuple index 2:
|
||||
{none(), 'err'} is not compatible with {'ok', 'ok'}
|
||||
because
|
||||
'err' is not compatible with 'ok'
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ check/src/misc.erl:741:5
|
||||
│
|
||||
|
|
@ -775,16 +698,6 @@ Because in the expression's type:
|
|||
However the following candidate: 'v2_op'
|
||||
Differs from the expected type: 'stuff1' | 'v0_op2' | 'stuff2' | 'v0_op1' | 'v1_op2' | ...
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
v2_op() is not compatible with v1_op()
|
||||
because
|
||||
'v2_op' | v1_op() is not compatible with v1_op()
|
||||
because
|
||||
'v2_op' | v1_op() is not compatible with 'v1_op1' | 'v1_op2' | stuff() | v0_op()
|
||||
because
|
||||
'v2_op' is not compatible with 'v1_op1' | 'v1_op2' | stuff() | v0_op()
|
||||
|
||||
error: type_alias_is_non_productive (See https://fb.me/eqwalizer_errors#type_alias_is_non_productive)
|
||||
┌─ check/src/misc.erl:760:1
|
||||
│
|
||||
|
|
@ -834,16 +747,6 @@ Because in the expression's type:
|
|||
Context expects type: #set{} | #{term() => []}
|
||||
No candidate matches in the expected union.
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
misc:set() is not compatible with sets:set()
|
||||
because
|
||||
[] is not compatible with sets:set()
|
||||
because
|
||||
[] is not compatible with sets:set(term())
|
||||
because
|
||||
[] is not compatible with #set{} | #{term() => []}
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ check/src/misc.erl:850:5
|
||||
│
|
||||
|
|
@ -861,13 +764,6 @@ Because in the expression's type:
|
|||
Context expects type: pid()
|
||||
}
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
at tuple index 3:
|
||||
{'ok', 'lists', number()} is not compatible with {'ok', atom(), pid()}
|
||||
because
|
||||
number() is not compatible with pid()
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ check/src/misc.erl:860:5
|
||||
│
|
||||
|
|
@ -907,12 +803,6 @@ Because in the expression's type:
|
|||
Here the type is: {binary()}
|
||||
Context expects type: [binary()]
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
{binary()} is not compatible with erlang:iovec()
|
||||
because
|
||||
{binary()} is not compatible with [binary()]
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ check/src/misc.erl:949:15
|
||||
│
|
||||
|
|
@ -939,14 +829,6 @@ Because in the expression's type:
|
|||
No candidate of the expression's type matches the expected type.
|
||||
]
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
['MM' | 'MS' | 'EE' | 'MA' | 'GE'] is not compatible with [erlang:priority_level()]
|
||||
because
|
||||
'MM' | 'MS' | 'EE' | 'MA' | 'GE' is not compatible with erlang:priority_level()
|
||||
because
|
||||
'MM' | 'MS' | 'EE' | 'MA' | 'GE' is not compatible with 'low' | 'normal' | 'high' | 'max'
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ check/src/misc.erl:971:5
|
||||
│
|
||||
|
|
@ -962,12 +844,6 @@ Because in the expression's type:
|
|||
Here the type is: {number(), number(), number()}
|
||||
Context expects type: atom()
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
erlang:timestamp() is not compatible with atom()
|
||||
because
|
||||
{number(), number(), number()} is not compatible with atom()
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ check/src/misc.erl:987:12
|
||||
│
|
||||
|
|
|
|||
|
|
@ -39,13 +39,6 @@ Because in the expression's type:
|
|||
Context expects type: atom()
|
||||
}
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
at tuple index 2:
|
||||
{'ok', term()} is not compatible with {atom(), atom()}
|
||||
because
|
||||
term() is not compatible with atom()
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ check/src/neg.erl:27:21
|
||||
│
|
||||
|
|
|
|||
|
|
@ -150,12 +150,6 @@ Because in the expression's type:
|
|||
However the following candidate: 'a'
|
||||
Differs from the expected type: number()
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
'a' | number() is not compatible with number()
|
||||
because
|
||||
'a' is not compatible with number()
|
||||
|
||||
error: clause_not_covered (See https://fb.me/eqwalizer_errors#clause_not_covered)
|
||||
┌─ check/src/numbers.erl:538:1
|
||||
│
|
||||
|
|
@ -300,13 +294,6 @@ Because in the expression's type:
|
|||
Context expects type: 'ok'
|
||||
}
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
at tuple index 5:
|
||||
{number(), number(), number(), number(), 'error'} is not compatible with {number(), number(), number(), number(), 'ok'}
|
||||
because
|
||||
'error' is not compatible with 'ok'
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ check/src/numbers.erl:658:3
|
||||
│
|
||||
|
|
|
|||
|
|
@ -16,16 +16,6 @@ Because in the expression's type:
|
|||
Context expects type: #{...}
|
||||
The expected map has no corresponding key for: {ok, error}.
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
sets:set({'ok', 'error'}) is not compatible with sets:set({'ok', 'ok'})
|
||||
because
|
||||
#set{} | #{{ok, error} => []} is not compatible with sets:set({'ok', 'ok'})
|
||||
because
|
||||
#set{} | #{{ok, error} => []} is not compatible with #set{} | #{{ok, ok} => []}
|
||||
because
|
||||
#{{ok, error} => []} is not compatible with #set{} | #{{ok, ok} => []}
|
||||
|
||||
error: clause_not_covered (See https://fb.me/eqwalizer_errors#clause_not_covered)
|
||||
┌─ check/src/opaque.erl:29:1
|
||||
│
|
||||
|
|
@ -47,12 +37,6 @@ Because in the expression's type:
|
|||
Here the type is: {'ok'}
|
||||
Context expects type: none()
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
misc:o() is not compatible with none()
|
||||
because
|
||||
{'ok'} is not compatible with none()
|
||||
|
||||
error: clause_not_covered (See https://fb.me/eqwalizer_errors#clause_not_covered)
|
||||
┌─ check/src/opaque.erl:86:1
|
||||
│
|
||||
|
|
@ -93,14 +77,6 @@ Because in the expression's type:
|
|||
However the following candidate: 'a'
|
||||
Differs from the expected type: {'ok'}
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
misc:o() | 'a' is not compatible with misc:o()
|
||||
because
|
||||
misc:o() | 'a' is not compatible with {'ok'}
|
||||
because
|
||||
'a' is not compatible with {'ok'}
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ check/src/opaque.erl:135:18
|
||||
│
|
||||
|
|
@ -117,14 +93,6 @@ Because in the expression's type:
|
|||
However the following candidate: 'a'
|
||||
Differs from the expected type: {'ok'}
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
misc:o() | 'a' is not compatible with misc:o()
|
||||
because
|
||||
misc:o() | 'a' is not compatible with {'ok'}
|
||||
because
|
||||
'a' is not compatible with {'ok'}
|
||||
|
||||
error: type_alias_is_non_productive (See https://fb.me/eqwalizer_errors#type_alias_is_non_productive)
|
||||
┌─ check/src/opaque.erl:150:1
|
||||
│
|
||||
|
|
|
|||
|
|
@ -13,12 +13,6 @@ Because in the expression's type:
|
|||
Here the type is: term()
|
||||
Context expects type: #{...}
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
term() is not compatible with logger:metadata()
|
||||
because
|
||||
term() is not compatible with #{domain => [atom()], file => file:filename(), gl => pid(), line => number(), mfa => {atom(), atom(), number()}, pid => pid(), report_cb => logger:report_cb(), time => logger:timestamp(), atom() => term()}
|
||||
|
||||
error: reveal_type (See https://fb.me/eqwalizer_errors#reveal_type)
|
||||
┌─ check/src/other.erl:59:27
|
||||
│
|
||||
|
|
|
|||
|
|
@ -14,14 +14,6 @@ Because in the expression's type:
|
|||
Context expects type: 'ok' | 'error'
|
||||
No candidate matches in the expected union.
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
'warning' is not compatible with foo()
|
||||
because
|
||||
'warning' is not compatible with 'ok' | 'error'
|
||||
because
|
||||
'warning' is not compatible with 'ok'
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ check/src/otp28.erl:28:5
|
||||
│
|
||||
|
|
@ -39,12 +31,6 @@ Because in the expression's type:
|
|||
Context expects type: atom()
|
||||
]
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
[number()] is not compatible with [atom()]
|
||||
because
|
||||
number() is not compatible with atom()
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ check/src/otp28.erl:40:5
|
||||
│
|
||||
|
|
@ -62,12 +48,6 @@ Because in the expression's type:
|
|||
Context expects type: pid()
|
||||
]
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
[binary()] is not compatible with [pid()]
|
||||
because
|
||||
binary() is not compatible with pid()
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ check/src/otp28.erl:52:5
|
||||
│
|
||||
|
|
@ -95,15 +75,6 @@ Because in the expression's type:
|
|||
}
|
||||
]
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
[{atom(), binary()}] is not compatible with [{atom(), atom()}]
|
||||
because
|
||||
at tuple index 2:
|
||||
{atom(), binary()} is not compatible with {atom(), atom()}
|
||||
because
|
||||
binary() is not compatible with atom()
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ check/src/otp28.erl:68:5
|
||||
│
|
||||
|
|
@ -121,13 +92,6 @@ Because in the expression's type:
|
|||
Context expects type: atom()
|
||||
, ... }
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
#{atom() => binary()} is not compatible with #{atom() => atom()}
|
||||
the default associations are not compatible
|
||||
because
|
||||
binary() is not compatible with atom()
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ check/src/otp28.erl:76:5
|
||||
│
|
||||
|
|
@ -147,13 +111,4 @@ Because in the expression's type:
|
|||
, atom()}
|
||||
]
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
[{atom(), binary(), binary(), atom()}] is not compatible with [{atom(), binary(), atom(), binary()}]
|
||||
because
|
||||
at tuple index 3:
|
||||
{atom(), binary(), binary(), atom()} is not compatible with {atom(), binary(), atom(), binary()}
|
||||
because
|
||||
binary() is not compatible with atom()
|
||||
|
||||
7 ERRORS
|
||||
|
|
|
|||
|
|
@ -17,17 +17,6 @@ Because in the expression's type:
|
|||
, term(), term()}
|
||||
}
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
gb_sets:set(atom()) is not compatible with gb_sets:set(number())
|
||||
because
|
||||
{number(), gb_sets:gb_set_node(atom())} is not compatible with gb_sets:set(number())
|
||||
because
|
||||
at tuple index 2:
|
||||
{number(), gb_sets:gb_set_node(atom())} is not compatible with {number(), gb_sets:gb_set_node(number())}
|
||||
because
|
||||
gb_sets:gb_set_node(atom()) is not compatible with gb_sets:gb_set_node(number())
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ check/src/otp_opaques.erl:42:5
|
||||
│
|
||||
|
|
@ -45,12 +34,6 @@ Because in the expression's type:
|
|||
Context expects type: A
|
||||
]
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
[[A]] is not compatible with [A]
|
||||
because
|
||||
[A] is not compatible with A
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ check/src/otp_opaques.erl:99:17
|
||||
│
|
||||
|
|
@ -67,14 +50,6 @@ Because in the expression's type:
|
|||
Context expects type: #set{} | #{a => []}
|
||||
No candidate of the expression's type matches the expected type.
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
maps:iterator('k', 'v') is not compatible with sets:set('a')
|
||||
because
|
||||
{'k', 'v', maps:iterator('k', 'v')} | 'none' | [number()] | [['k']] is not compatible with sets:set('a')
|
||||
because
|
||||
{'k', 'v', maps:iterator('k', 'v')} | 'none' | [number()] | [['k']] is not compatible with #set{} | #{a => []}
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ check/src/otp_opaques.erl:102:13
|
||||
│
|
||||
|
|
@ -99,14 +74,6 @@ Because in the expression's type:
|
|||
Context expects type: #set{} | #{a => []}
|
||||
No candidate of the expression's type matches the expected type.
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
maps:iterator('k', 'v') is not compatible with sets:set('a')
|
||||
because
|
||||
{'k', 'v', maps:iterator('k', 'v')} | 'none' | [number()] | [['k']] is not compatible with sets:set('a')
|
||||
because
|
||||
{'k', 'v', maps:iterator('k', 'v')} | 'none' | [number()] | [['k']] is not compatible with #set{} | #{a => []}
|
||||
|
||||
error: expected_fun_type (See https://fb.me/eqwalizer_errors#expected_fun_type)
|
||||
┌─ check/src/otp_opaques.erl:124:5
|
||||
│
|
||||
|
|
|
|||
|
|
@ -30,26 +30,13 @@ Because in the expression's type:
|
|||
Context expects type: 'b'
|
||||
)
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
fun(('a') -> 'z') is not compatible with fun(('a') -> 'b') | fun(('a') -> 'c')
|
||||
because
|
||||
fun(('a') -> 'z') is not compatible with fun(('a') -> 'b')
|
||||
because
|
||||
'z' is not compatible with 'b'
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ check/src/overloaded.erl:126:15
|
||||
│
|
||||
126 │ Res = bar({fun(a) -> a end}),
|
||||
│ ^^^^^^^^^^^^^^^^^
|
||||
│ │
|
||||
│ {fun}.
|
||||
│ ^^^^^^^^^^^^^^^^^ {fun}.
|
||||
Expression has type: {fun((dynamic()) -> dynamic())}
|
||||
Context expected type: fun(('a') -> 'b') | fun(('a') -> 'c')
|
||||
│
|
||||
|
||||
expected union does not contain any tuple type of size 1
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ check/src/overloaded.erl:198:37
|
||||
|
|
@ -107,12 +94,6 @@ Because in the expression's type:
|
|||
However the following candidate: {}
|
||||
Differs from the expected type: number()
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
number() | {} is not compatible with number()
|
||||
because
|
||||
{} is not compatible with number()
|
||||
|
||||
error: unbound_type_var (See https://fb.me/eqwalizer_errors#unbound_type_var)
|
||||
┌─ check/src/overloaded.erl:261:1
|
||||
│
|
||||
|
|
@ -130,16 +111,9 @@ error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types
|
|||
┌─ check/src/overloaded.erl:269:14
|
||||
│
|
||||
269 │ _ = swap(""),
|
||||
│ ^^
|
||||
│ │
|
||||
│ string_lit.
|
||||
│ ^^ string_lit.
|
||||
Expression has type: []
|
||||
Context expected type: atom() | binary()
|
||||
│
|
||||
|
||||
[] is not compatible with atom() | binary()
|
||||
because
|
||||
[] is not compatible with atom()
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ check/src/overloaded.erl:290:5
|
||||
|
|
|
|||
|
|
@ -14,12 +14,6 @@ Because in the expression's type:
|
|||
However the following candidate: pid()
|
||||
Differs from the expected type: atom()
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
atom() | pid() is not compatible with atom()
|
||||
because
|
||||
pid() is not compatible with atom()
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ check/src/overloaded_specs_union.erl:19:29
|
||||
│
|
||||
|
|
@ -36,12 +30,4 @@ Because in the expression's type:
|
|||
However the following candidate: pid()
|
||||
Differs from the expected type: atom() | binary()
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
atom() | binary() | pid() is not compatible with atom() | binary()
|
||||
because
|
||||
pid() is not compatible with atom() | binary()
|
||||
because
|
||||
pid() is not compatible with atom()
|
||||
|
||||
2 ERRORS
|
||||
|
|
|
|||
|
|
@ -14,10 +14,4 @@ Because in the expression's type:
|
|||
However the following candidate: 'error'
|
||||
Differs from the expected type: #{term() => term()}
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
#{a => 'ok'} | 'error' is not compatible with #{term() => term()}
|
||||
because
|
||||
'error' is not compatible with #{term() => term()}
|
||||
|
||||
1 ERROR
|
||||
|
|
|
|||
|
|
@ -18,16 +18,9 @@ error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types
|
|||
┌─ check/src/records.erl:50:21
|
||||
│
|
||||
50 │ mk_rec_neg(rec2) -> #rec2{}.
|
||||
│ ^^^^^^^
|
||||
│ │
|
||||
│ #rec2{...}.
|
||||
│ ^^^^^^^ #rec2{...}.
|
||||
Expression has type: #rec2{}
|
||||
Context expected type: #rec1{} | #rec3{}
|
||||
│
|
||||
|
||||
#rec2{} is not compatible with #rec1{} | #rec3{}
|
||||
because
|
||||
#rec2{} is not compatible with #rec1{}
|
||||
|
||||
error: undefined_field (See https://fb.me/eqwalizer_errors#undefined_field)
|
||||
┌─ check/src/records.erl:59:11
|
||||
|
|
@ -108,13 +101,6 @@ Because in the expression's type:
|
|||
Context expects type: number()
|
||||
, number()}
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
at tuple index 1:
|
||||
{atom(), number()} is not compatible with {number(), atom()}
|
||||
because
|
||||
atom() is not compatible with number()
|
||||
|
||||
error: undefined_field (See https://fb.me/eqwalizer_errors#undefined_field)
|
||||
┌─ check/src/records.erl:144:17
|
||||
│
|
||||
|
|
@ -181,14 +167,6 @@ Because in the expression's type:
|
|||
Context expects type: number()
|
||||
}
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
#any_box{inner :: 'ok'} is not compatible with int_box()
|
||||
because
|
||||
#any_box{inner :: 'ok'} is not compatible with #any_box{inner :: number()}
|
||||
because
|
||||
'ok' is not compatible with number()
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ check/src/records.erl:222:5
|
||||
│
|
||||
|
|
@ -206,12 +184,6 @@ Because in the expression's type:
|
|||
Context expects type: number()
|
||||
}
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
#any_box{inner :: 'ok'} is not compatible with #any_box{inner :: number()}
|
||||
because
|
||||
'ok' is not compatible with number()
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ check/src/records.erl:282:27
|
||||
│
|
||||
|
|
@ -228,12 +200,6 @@ Because in the expression's type:
|
|||
Context expects type: number() | 'false' | 'true'
|
||||
No candidate matches in the expected union.
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
'a' is not compatible with number() | boolean()
|
||||
because
|
||||
'a' is not compatible with number()
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ check/src/records.erl:287:23
|
||||
│
|
||||
|
|
@ -250,12 +216,6 @@ Because in the expression's type:
|
|||
Context expects type: number() | 'false' | 'true'
|
||||
No candidate matches in the expected union.
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
'a' is not compatible with number() | boolean()
|
||||
because
|
||||
'a' is not compatible with number()
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ check/src/records.erl:292:5
|
||||
│
|
||||
|
|
@ -273,14 +233,6 @@ Because in the expression's type:
|
|||
Context expects type: number()
|
||||
}
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
#int_bool_box{inner :: 'true'} is not compatible with only_int_box()
|
||||
because
|
||||
#int_bool_box{inner :: 'true'} is not compatible with #int_bool_box{inner :: number()}
|
||||
because
|
||||
'true' is not compatible with number()
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ check/src/records.erl:308:28
|
||||
│
|
||||
|
|
@ -297,12 +249,6 @@ Because in the expression's type:
|
|||
Context expects type: number() | 'false' | 'true'
|
||||
No candidate matches in the expected union.
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
'a' is not compatible with number() | boolean()
|
||||
because
|
||||
'a' is not compatible with number()
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ check/src/records.erl:314:5
|
||||
│
|
||||
|
|
@ -320,14 +266,6 @@ Because in the expression's type:
|
|||
Context expects type: boolean()
|
||||
}
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
#int_bool_box{inner :: number()} is not compatible with only_bool_box()
|
||||
because
|
||||
#int_bool_box{inner :: number()} is not compatible with #int_bool_box{inner :: boolean()}
|
||||
because
|
||||
number() is not compatible with boolean()
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ check/src/records.erl:319:5
|
||||
│
|
||||
|
|
@ -343,12 +281,6 @@ Because in the expression's type:
|
|||
Here the type is: #int_bool_box{inner :: number()}
|
||||
Context expects type: #any_box{}
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
only_int_box() is not compatible with #any_box{}
|
||||
because
|
||||
#int_bool_box{inner :: number()} is not compatible with #any_box{}
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ check/src/records.erl:319:5
|
||||
│
|
||||
|
|
@ -383,15 +315,6 @@ Because in the expression's type:
|
|||
No candidate matches in the expected union.
|
||||
}
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
at tuple index 2:
|
||||
{'int_bool_box', 'a'} is not compatible with {'int_bool_box', number() | boolean()}
|
||||
because
|
||||
'a' is not compatible with number() | boolean()
|
||||
because
|
||||
'a' is not compatible with number()
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ check/src/records.erl:334:5
|
||||
│
|
||||
|
|
@ -409,15 +332,6 @@ Because in the expression's type:
|
|||
Context expects type: number()
|
||||
}
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
{'int_bool_box', 'a'} is not compatible with only_int_box()
|
||||
because
|
||||
at tuple index 2:
|
||||
{'int_bool_box', 'a'} is not compatible with {'int_bool_box', number()}
|
||||
because
|
||||
'a' is not compatible with number()
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ check/src/records.erl:352:5
|
||||
│
|
||||
|
|
@ -434,12 +348,6 @@ Because in the expression's type:
|
|||
However the following candidate: 'false'
|
||||
Differs from the expected type: 'true'
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
boolean() | 'true' is not compatible with 'true'
|
||||
because
|
||||
'false' is not compatible with 'true'
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ check/src/records.erl:355:13
|
||||
│
|
||||
|
|
@ -463,12 +371,6 @@ Because in the expression's type:
|
|||
Here the type is: #bad_default{}
|
||||
Context expects type: #int_bool_box{inner :: number()}
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
#bad_default{} is not compatible with only_int_box()
|
||||
because
|
||||
#bad_default{} is not compatible with #int_bool_box{inner :: number()}
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ check/src/records.erl:372:5
|
||||
│
|
||||
|
|
@ -486,13 +388,6 @@ Because in the expression's type:
|
|||
Context expects type: 'bad_default'
|
||||
, number()}
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
at tuple index 1:
|
||||
{'int_bool_box', number()} is not compatible with {'bad_default', number()}
|
||||
because
|
||||
'int_bool_box' is not compatible with 'bad_default'
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ check/src/records.erl:388:31
|
||||
│
|
||||
|
|
@ -510,12 +405,6 @@ Because in the expression's type:
|
|||
Context expects type: number()
|
||||
}
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
#refined_two_fields{} is not compatible with #refined_two_fields{inner :: number()}
|
||||
because
|
||||
term() is not compatible with number()
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ check/src/records.erl:402:5
|
||||
│
|
||||
|
|
@ -594,12 +483,6 @@ Because in the expression's type:
|
|||
However the following candidate: 'my_record'
|
||||
Differs from the expected type: binary()
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
'my_record' | binary() is not compatible with binary()
|
||||
because
|
||||
'my_record' is not compatible with binary()
|
||||
|
||||
error: clause_not_covered (See https://fb.me/eqwalizer_errors#clause_not_covered)
|
||||
┌─ check/src/records.erl:517:1
|
||||
│
|
||||
|
|
|
|||
|
|
@ -17,16 +17,6 @@ Because in the expression's type:
|
|||
Context expects type: 'b'
|
||||
, chainA()}
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
chainA() is not compatible with chainB()
|
||||
because
|
||||
'nil' | {'a', chainA()} is not compatible with chainB()
|
||||
because
|
||||
'nil' | {'a', chainA()} is not compatible with 'nil' | {'b', chainB()}
|
||||
because
|
||||
{'a', chainA()} is not compatible with 'nil' | {'b', chainB()}
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ check/src/recursive_aliases.erl:62:20
|
||||
│
|
||||
|
|
@ -46,16 +36,6 @@ Because in the expression's type:
|
|||
Context expects type: 'a'
|
||||
, chainB()}
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
chainB() is not compatible with chainA()
|
||||
because
|
||||
'nil' | {'b', chainB()} is not compatible with chainA()
|
||||
because
|
||||
'nil' | {'b', chainB()} is not compatible with 'nil' | {'a', chainA()}
|
||||
because
|
||||
{'b', chainB()} is not compatible with 'nil' | {'a', chainA()}
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ check/src/recursive_aliases.erl:65:20
|
||||
│
|
||||
|
|
@ -75,16 +55,6 @@ Because in the expression's type:
|
|||
Context expects type: 'a'
|
||||
, chainAB()}
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
chainAB() is not compatible with chainA()
|
||||
because
|
||||
'nil' | {'a', chainAB()} | {'b', chainAB()} is not compatible with chainA()
|
||||
because
|
||||
'nil' | {'a', chainAB()} | {'b', chainAB()} is not compatible with 'nil' | {'a', chainA()}
|
||||
because
|
||||
{'b', chainAB()} is not compatible with 'nil' | {'a', chainA()}
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ check/src/recursive_aliases.erl:68:20
|
||||
│
|
||||
|
|
@ -104,16 +74,6 @@ Because in the expression's type:
|
|||
Context expects type: 'b'
|
||||
, chainAB()}
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
chainAB() is not compatible with chainB()
|
||||
because
|
||||
'nil' | {'a', chainAB()} | {'b', chainAB()} is not compatible with chainB()
|
||||
because
|
||||
'nil' | {'a', chainAB()} | {'b', chainAB()} is not compatible with 'nil' | {'b', chainB()}
|
||||
because
|
||||
{'a', chainAB()} is not compatible with 'nil' | {'b', chainB()}
|
||||
|
||||
error: type_alias_is_non_productive (See https://fb.me/eqwalizer_errors#type_alias_is_non_productive)
|
||||
┌─ check/src/recursive_aliases.erl:70:1
|
||||
│
|
||||
|
|
@ -143,17 +103,6 @@ Because in the expression's type:
|
|||
However the following candidate: {'a', atom(), pchainA(atom())}
|
||||
Differs from the expected type: 'nil' | {'a', pchainAB(atom())} | {'b', pchainAB(atom())}
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
pchainA(atom()) is not compatible with pchainAB(atom())
|
||||
because
|
||||
'nil' | {'a', atom(), pchainA(atom())} is not compatible with pchainAB(atom())
|
||||
because
|
||||
'nil' | {'a', atom(), pchainA(atom())} is not compatible with 'nil' | {'a', pchainAB(atom())} | {'b', pchainAB(atom())}
|
||||
because
|
||||
{'a', atom(), pchainA(atom())} is not compatible with 'nil' | {'a', pchainAB(atom())} | {'b', pchainAB(atom())}
|
||||
expected union does not contain any tuple type of size 3
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ check/src/recursive_aliases.erl:113:23
|
||||
│
|
||||
|
|
@ -172,16 +121,6 @@ Because in the expression's type:
|
|||
Context expects type: #{a := ..., ...}
|
||||
The type of the expression is missing the following required keys: a.
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
mChainB() is not compatible with mChainA()
|
||||
because
|
||||
'nil' | #{b := mChainB()} is not compatible with mChainA()
|
||||
because
|
||||
'nil' | #{b := mChainB()} is not compatible with 'nil' | #{a := mChainA()}
|
||||
because
|
||||
#{b := mChainB()} is not compatible with 'nil' | #{a := mChainA()}
|
||||
|
||||
error: expected_fun_type (See https://fb.me/eqwalizer_errors#expected_fun_type)
|
||||
┌─ check/src/recursive_aliases.erl:138:15
|
||||
│
|
||||
|
|
@ -210,16 +149,6 @@ Because in the expression's type:
|
|||
No candidate matches in the expected union.
|
||||
, pchainA('a')}
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
pchainA('a') is not compatible with pchainA('b' | 'c')
|
||||
because
|
||||
'nil' | {'a', 'a', pchainA('a')} is not compatible with pchainA('b' | 'c')
|
||||
because
|
||||
'nil' | {'a', 'a', pchainA('a')} is not compatible with 'nil' | {'a', 'b' | 'c', pchainA('b' | 'c')}
|
||||
because
|
||||
{'a', 'a', pchainA('a')} is not compatible with 'nil' | {'a', 'b' | 'c', pchainA('b' | 'c')}
|
||||
|
||||
error: type_alias_is_non_productive (See https://fb.me/eqwalizer_errors#type_alias_is_non_productive)
|
||||
┌─ check/src/recursive_aliases.erl:202:1
|
||||
│
|
||||
|
|
|
|||
|
|
@ -23,13 +23,6 @@ Because in the expression's type:
|
|||
Context expects type: none()
|
||||
, A}
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
at tuple index 1:
|
||||
{B, A} is not compatible with {none(), none()}
|
||||
because
|
||||
B is not compatible with none()
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ check/src/refine.erl:22:15
|
||||
│
|
||||
|
|
@ -55,12 +48,6 @@ Because in the expression's type:
|
|||
Context expects type: none()
|
||||
)
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
fun((B | A) -> A) is not compatible with fun((A | B) -> none())
|
||||
because
|
||||
A is not compatible with none()
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ check/src/refine.erl:34:16
|
||||
│
|
||||
|
|
@ -78,12 +65,6 @@ Because in the expression's type:
|
|||
Context expects type: none()
|
||||
)
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
fun((atom() | A) -> A) is not compatible with fun((A | atom()) -> none())
|
||||
because
|
||||
A is not compatible with none()
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ check/src/refine.erl:84:27
|
||||
│
|
||||
|
|
@ -133,13 +114,6 @@ Because in the expression's type:
|
|||
Context expects type: none()
|
||||
, binary()}
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
at tuple index 1:
|
||||
{number(), binary()} is not compatible with {none(), none()}
|
||||
because
|
||||
number() is not compatible with none()
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ check/src/refine.erl:126:32
|
||||
│
|
||||
|
|
@ -157,13 +131,6 @@ Because in the expression's type:
|
|||
Context expects type: none()
|
||||
, atom()}
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
at tuple index 1:
|
||||
{number(), atom()} is not compatible with {none(), none()}
|
||||
because
|
||||
number() is not compatible with none()
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ check/src/refine.erl:139:28
|
||||
│
|
||||
|
|
@ -190,14 +157,6 @@ Because in the expression's type:
|
|||
Differs from the expected type: 'a'
|
||||
]
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
['a' | 'b'] is not compatible with ['a']
|
||||
because
|
||||
'a' | 'b' is not compatible with 'a'
|
||||
because
|
||||
'b' is not compatible with 'a'
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ check/src/refine.erl:151:28
|
||||
│
|
||||
|
|
@ -224,14 +183,6 @@ Because in the expression's type:
|
|||
Differs from the expected type: 'a'
|
||||
]
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
['a' | 'b'] is not compatible with ['a']
|
||||
because
|
||||
'a' | 'b' is not compatible with 'a'
|
||||
because
|
||||
'b' is not compatible with 'a'
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ check/src/refine.erl:166:5
|
||||
│
|
||||
|
|
@ -273,13 +224,6 @@ Because in the expression's type:
|
|||
Context expects type: 'not_my_rec'
|
||||
, number(), atom()}
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
at tuple index 1:
|
||||
{'my_rec', number(), atom()} is not compatible with {'not_my_rec', term(), term()}
|
||||
because
|
||||
'my_rec' is not compatible with 'not_my_rec'
|
||||
|
||||
error: unknown_id (See https://fb.me/eqwalizer_errors#unknown_id)
|
||||
┌─ check/src/refine.erl:199:10
|
||||
│
|
||||
|
|
@ -310,13 +254,6 @@ Because in the expression's type:
|
|||
Context expects type: number()
|
||||
, number()}
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
at tuple index 2:
|
||||
{'my_rec', atom(), number()} is not compatible with {'my_rec', number(), atom()}
|
||||
because
|
||||
atom() is not compatible with number()
|
||||
|
||||
error: clause_not_covered (See https://fb.me/eqwalizer_errors#clause_not_covered)
|
||||
┌─ check/src/refine.erl:218:1
|
||||
│
|
||||
|
|
@ -374,13 +311,6 @@ Because in the expression's type:
|
|||
Context expects type: number()
|
||||
, number()}
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
at tuple index 2:
|
||||
{'my_rec', atom(), number()} is not compatible with {'my_rec', number(), atom()}
|
||||
because
|
||||
atom() is not compatible with number()
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ check/src/refine.erl:250:26
|
||||
│
|
||||
|
|
@ -398,15 +328,6 @@ Because in the expression's type:
|
|||
Context expects type: number()
|
||||
, number()}
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
{'my_rec', atom(), number()} is not compatible with dynamic(#my_rec{})
|
||||
because
|
||||
at tuple index 2:
|
||||
{'my_rec', atom(), number()} is not compatible with {'my_rec', number(), atom()}
|
||||
because
|
||||
atom() is not compatible with number()
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ check/src/refine.erl:262:26
|
||||
│
|
||||
|
|
@ -424,13 +345,6 @@ Because in the expression's type:
|
|||
Context expects type: atom()
|
||||
, atom()}
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
at tuple index 2:
|
||||
{'my_rec', number(), atom()} is not compatible with {'my_rec', atom(), number()}
|
||||
because
|
||||
number() is not compatible with atom()
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ check/src/refine.erl:262:26
|
||||
│
|
||||
|
|
@ -448,15 +362,6 @@ Because in the expression's type:
|
|||
Context expects type: atom()
|
||||
, atom()}
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
#my_rec{} is not compatible with dynamic({'my_rec', atom(), number()})
|
||||
because
|
||||
at tuple index 2:
|
||||
{'my_rec', number(), atom()} is not compatible with {'my_rec', atom(), number()}
|
||||
because
|
||||
number() is not compatible with atom()
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ check/src/refine.erl:278:21
|
||||
│
|
||||
|
|
@ -474,13 +379,6 @@ Because in the expression's type:
|
|||
Context expects type: atom()
|
||||
, atom()}
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
at tuple index 2:
|
||||
{'my_rec', number(), atom()} is not compatible with {'my_rec', atom(), atom()}
|
||||
because
|
||||
number() is not compatible with atom()
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ check/src/refine.erl:282:16
|
||||
│
|
||||
|
|
@ -497,12 +395,6 @@ Because in the expression's type:
|
|||
However the following candidate: atom()
|
||||
Differs from the expected type: number()
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
atom() | number() is not compatible with number()
|
||||
because
|
||||
atom() is not compatible with number()
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ check/src/refine.erl:286:13
|
||||
│
|
||||
|
|
@ -519,12 +411,6 @@ Because in the expression's type:
|
|||
However the following candidate: 'a'
|
||||
Differs from the expected type: {'my_rec', term(), term()}
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
#my_rec{} | 'a' is not compatible with {'my_rec', term(), term()}
|
||||
because
|
||||
'a' is not compatible with {'my_rec', term(), term()}
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ check/src/refine.erl:296:5
|
||||
│
|
||||
|
|
@ -541,12 +427,6 @@ Because in the expression's type:
|
|||
However the following candidate: 'undefined'
|
||||
Differs from the expected type: binary()
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
'undefined' | binary() is not compatible with binary()
|
||||
because
|
||||
'undefined' is not compatible with binary()
|
||||
|
||||
error: reveal_type (See https://fb.me/eqwalizer_errors#reveal_type)
|
||||
┌─ check/src/refine.erl:378:27
|
||||
│
|
||||
|
|
|
|||
|
|
@ -13,12 +13,6 @@ Because in the expression's type:
|
|||
Here the type is: 'undefined'
|
||||
Context expects type: #{...}
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
'undefined' is not compatible with complex_map()
|
||||
because
|
||||
'undefined' is not compatible with #{id := number(), {secret, id} => number(), atom() => term()}
|
||||
|
||||
error: reveal_type (See https://fb.me/eqwalizer_errors#reveal_type)
|
||||
┌─ check/src/strict_complex_types.erl:29:25
|
||||
│
|
||||
|
|
@ -46,12 +40,6 @@ Because in the expression's type:
|
|||
Here the type is: #{...}
|
||||
Context expects type: [T]
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
complex_map() is not compatible with [T]
|
||||
because
|
||||
#{id := number(), {secret, id} => number(), atom() => term()} is not compatible with [T]
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ check/src/strict_complex_types.erl:48:16
|
||||
│
|
||||
|
|
@ -67,10 +55,4 @@ Because in the expression's type:
|
|||
Here the type is: #{...}
|
||||
Context expects type: [dynamic()]
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
complex_map() is not compatible with [dynamic()]
|
||||
because
|
||||
#{id := number(), {secret, id} => number(), atom() => term()} is not compatible with [dynamic()]
|
||||
|
||||
5 ERRORS
|
||||
|
|
|
|||
|
|
@ -31,12 +31,6 @@ Because in the expression's type:
|
|||
Context expects type: atom()
|
||||
)
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
fun((atom()) -> term()) is not compatible with fun((term()) -> atom())
|
||||
because
|
||||
term() is not compatible with atom()
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ check/src/subtype_neg.erl:27:11
|
||||
│
|
||||
|
|
@ -53,14 +47,6 @@ Because in the expression's type:
|
|||
However the following candidate: 'c'
|
||||
Differs from the expected type: 'a' | 'b'
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
'a' | 'b' | 'c' is not compatible with 'a' | 'b'
|
||||
because
|
||||
'c' is not compatible with 'a' | 'b'
|
||||
because
|
||||
'c' is not compatible with 'a'
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ check/src/subtype_neg.erl:30:11
|
||||
│
|
||||
|
|
@ -87,17 +73,6 @@ Because in the expression's type:
|
|||
Differs from the expected type: 'a'
|
||||
, 'a' | 'b'}
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
{'a' | 'b', 'a' | 'b'} is not compatible with {'a', 'b'} | {'b', 'a'}
|
||||
because
|
||||
at tuple index 1:
|
||||
{'a' | 'b', 'a' | 'b'} is not compatible with {'a', 'b'}
|
||||
because
|
||||
'a' | 'b' is not compatible with 'a'
|
||||
because
|
||||
'b' is not compatible with 'a'
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ check/src/subtype_neg.erl:38:11
|
||||
│
|
||||
|
|
@ -116,17 +91,6 @@ Because in the expression's type:
|
|||
Differs from the expected type: 'a'
|
||||
, ab()}
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
pair_ab() is not compatible with pair_diff_elems()
|
||||
because
|
||||
{ab(), ab()} is not compatible with pair_diff_elems()
|
||||
because
|
||||
{ab(), ab()} is not compatible with {'a', 'b'} | {'b', 'a'}
|
||||
because
|
||||
at tuple index 1:
|
||||
{ab(), ab()} is not compatible with {'a', 'b'}
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ check/src/subtype_neg.erl:41:11
|
||||
│
|
||||
|
|
@ -151,10 +115,6 @@ Because in the expression's type:
|
|||
Context expects type: #{a := ..., ...}
|
||||
The type of the expression is missing the following required keys: a.
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
key `a` is declared as required in the latter but not in the former
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ check/src/subtype_neg.erl:52:13
|
||||
│
|
||||
|
|
@ -171,10 +131,6 @@ Because in the expression's type:
|
|||
Context expects type: #{...}
|
||||
The expected map has no corresponding key for: b.
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
key `b` is declared in the former but not in the latter and the latter map has no default association
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ check/src/subtype_neg.erl:60:13
|
||||
│
|
||||
|
|
@ -191,10 +147,6 @@ Because in the expression's type:
|
|||
Context expects type: #{a := ..., ...}
|
||||
The type of the expression is missing the following required keys: a.
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
key `a` is declared as required in the latter but not in the former
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ check/src/subtype_neg.erl:64:13
|
||||
│
|
||||
|
|
@ -212,13 +164,6 @@ Because in the expression's type:
|
|||
Context expects type: atom()
|
||||
, ... }
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
#{term() => number()} is not compatible with #{atom() => number()}
|
||||
the default associations are not compatible
|
||||
because
|
||||
term() is not compatible with atom()
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ check/src/subtype_neg.erl:68:13
|
||||
│
|
||||
|
|
@ -236,13 +181,6 @@ Because in the expression's type:
|
|||
Context expects type: number()
|
||||
, ... }
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
#{atom() => term()} is not compatible with #{atom() => number()}
|
||||
the default associations are not compatible
|
||||
because
|
||||
term() is not compatible with number()
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ check/src/subtype_neg.erl:72:13
|
||||
│
|
||||
|
|
@ -259,13 +197,6 @@ Because in the expression's type:
|
|||
Context expects type: #{...} (no default association)
|
||||
The expected map has no default association while the type of the expression has one.
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
#{atom() => term()} is not compatible with #{}
|
||||
because
|
||||
#{atom() => term()} is not compatible with #{}
|
||||
the latter map has no default association while the first map has one
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ check/src/subtype_neg.erl:79:15
|
||||
│
|
||||
|
|
@ -291,13 +222,6 @@ Because in the expression's type:
|
|||
Context expects type: 'ok'
|
||||
}
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
at tuple index 2:
|
||||
{{}, 'error'} is not compatible with {tuple(), 'ok'}
|
||||
because
|
||||
'error' is not compatible with 'ok'
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ check/src/subtype_neg.erl:87:5
|
||||
│
|
||||
|
|
@ -315,13 +239,6 @@ Because in the expression's type:
|
|||
Context expects type: 'ok'
|
||||
}
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
at tuple index 2:
|
||||
{[], 'error'} is not compatible with {[pid()], 'ok'}
|
||||
because
|
||||
'error' is not compatible with 'ok'
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ check/src/subtype_neg.erl:91:5
|
||||
│
|
||||
|
|
@ -339,13 +256,6 @@ Because in the expression's type:
|
|||
Context expects type: 'ok'
|
||||
}
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
at tuple index 2:
|
||||
{[], 'error'} is not compatible with {iolist(), 'ok'}
|
||||
because
|
||||
'error' is not compatible with 'ok'
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ check/src/subtype_neg.erl:94:13
|
||||
│
|
||||
|
|
@ -382,10 +292,4 @@ Because in the expression's type:
|
|||
Context expects type: none()
|
||||
]
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
['a'] | [none()] is not compatible with []
|
||||
because
|
||||
['a'] is not compatible with []
|
||||
|
||||
20 ERRORS
|
||||
|
|
|
|||
|
|
@ -15,13 +15,6 @@ Because in the expression's type:
|
|||
Context expects type: atom()
|
||||
, ... }
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
#{number() => number()} is not compatible with #{number() => atom()}
|
||||
the default associations are not compatible
|
||||
because
|
||||
number() is not compatible with atom()
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ check/src/t_maps.erl:41:5
|
||||
│
|
||||
|
|
@ -40,15 +33,6 @@ Because in the expression's type:
|
|||
Differs from the expected type: atom()
|
||||
, ... }
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
#{number() => 'zero' | number()} is not compatible with #{number() => atom()}
|
||||
the default associations are not compatible
|
||||
because
|
||||
'zero' | number() is not compatible with atom()
|
||||
because
|
||||
number() is not compatible with atom()
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ check/src/t_maps.erl:56:5
|
||||
│
|
||||
|
|
@ -66,15 +50,6 @@ Because in the expression's type:
|
|||
Context expects type: number()
|
||||
, ... }
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
#{one := 'one', zero := number()} is not compatible with #{one => number(), zero := number()}
|
||||
because
|
||||
at key `one`:
|
||||
#{one := 'one', zero := number()} is not compatible with #{one => number(), zero := number()}
|
||||
because
|
||||
'one' is not compatible with number()
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ check/src/t_maps.erl:80:5
|
||||
│
|
||||
|
|
@ -108,15 +83,6 @@ Because in the expression's type:
|
|||
Context expects type: n()
|
||||
, ... }
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
#{b() => term()} is not compatible with #{n() => term()}
|
||||
the default associations are not compatible
|
||||
because
|
||||
b() is not compatible with n()
|
||||
because
|
||||
boolean() is not compatible with n()
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ check/src/t_maps.erl:140:26
|
||||
│
|
||||
|
|
@ -134,17 +100,6 @@ Because in the expression's type:
|
|||
Context expects type: n()
|
||||
, ... }
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
#{a := b()} is not compatible with #{a := n()}
|
||||
because
|
||||
at key `a`:
|
||||
#{a := b()} is not compatible with #{a := n()}
|
||||
because
|
||||
b() is not compatible with n()
|
||||
because
|
||||
boolean() is not compatible with n()
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ check/src/t_maps.erl:145:26
|
||||
│
|
||||
|
|
@ -162,17 +117,6 @@ Because in the expression's type:
|
|||
Context expects type: n()
|
||||
, ... }
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
#{a := b()} is not compatible with #{a => n()}
|
||||
because
|
||||
at key `a`:
|
||||
#{a := b()} is not compatible with #{a => n()}
|
||||
because
|
||||
b() is not compatible with n()
|
||||
because
|
||||
boolean() is not compatible with n()
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ check/src/t_maps.erl:155:26
|
||||
│
|
||||
|
|
@ -189,10 +133,6 @@ Because in the expression's type:
|
|||
Context expects type: #{a := ..., ...}
|
||||
The type of the expression is missing the following required keys: a.
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
key `a` is declared as required in the latter but not in the former
|
||||
|
||||
error: clause_not_covered (See https://fb.me/eqwalizer_errors#clause_not_covered)
|
||||
┌─ check/src/t_maps.erl:165:1
|
||||
│
|
||||
|
|
@ -216,17 +156,6 @@ Because in the expression's type:
|
|||
Context expects type: atom()
|
||||
, ... }
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
#{a := a(), n() => a()} is not compatible with #{a() => a()}
|
||||
the default associations are not compatible
|
||||
because
|
||||
n() is not compatible with a()
|
||||
because
|
||||
number() is not compatible with a()
|
||||
because
|
||||
number() is not compatible with atom()
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ check/src/t_maps.erl:208:5
|
||||
│
|
||||
|
|
@ -244,17 +173,6 @@ Because in the expression's type:
|
|||
Context expects type: number()
|
||||
, ... }
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
#{a := a(), n() => a()} is not compatible with #{n() => a()}
|
||||
because
|
||||
#{a := a(), n() => a()} is not compatible with #{n() => a()}
|
||||
key `a` is declared in the former but not in the latter and key `a` isn't compatible with the default association of the latter map
|
||||
because
|
||||
'a' is not compatible with n()
|
||||
because
|
||||
'a' is not compatible with number()
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ check/src/t_maps.erl:216:5
|
||||
│
|
||||
|
|
@ -272,17 +190,6 @@ Because in the expression's type:
|
|||
Context expects type: number()
|
||||
, ... }
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
#{a := a(), n() => a()} is not compatible with #{n() => a()}
|
||||
because
|
||||
#{a := a(), n() => a()} is not compatible with #{n() => a()}
|
||||
key `a` is declared in the former but not in the latter and key `a` isn't compatible with the default association of the latter map
|
||||
because
|
||||
'a' is not compatible with n()
|
||||
because
|
||||
'a' is not compatible with number()
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ check/src/t_maps.erl:224:5
|
||||
│
|
||||
|
|
@ -300,17 +207,6 @@ Because in the expression's type:
|
|||
Context expects type: number()
|
||||
, ... }
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
#{a => a(), n() => a()} is not compatible with #{n() => a()}
|
||||
because
|
||||
#{a => a(), n() => a()} is not compatible with #{n() => a()}
|
||||
key `a` is declared in the former but not in the latter and key `a` isn't compatible with the default association of the latter map
|
||||
because
|
||||
'a' is not compatible with n()
|
||||
because
|
||||
'a' is not compatible with number()
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ check/src/t_maps.erl:242:5
|
||||
│
|
||||
|
|
@ -328,17 +224,6 @@ Because in the expression's type:
|
|||
Context expects type: F1
|
||||
, ... }
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
#{bar := B1, foo := F1} is not compatible with foo_bar(B1, F1)
|
||||
because
|
||||
#{bar := B1, foo := F1} is not compatible with #{bar := F1, foo := B1}
|
||||
because
|
||||
at key `bar`:
|
||||
#{bar := B1, foo := F1} is not compatible with #{bar := F1, foo := B1}
|
||||
because
|
||||
B1 is not compatible with F1
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ check/src/t_maps.erl:254:5
|
||||
│
|
||||
|
|
@ -356,17 +241,6 @@ Because in the expression's type:
|
|||
Context expects type: F1
|
||||
, ... }
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
#{bar := B1, foo := F1} is not compatible with foo_bar_opt(B1, F1)
|
||||
because
|
||||
#{bar := B1, foo := F1} is not compatible with #{bar => F1, foo => B1}
|
||||
because
|
||||
at key `bar`:
|
||||
#{bar := B1, foo := F1} is not compatible with #{bar => F1, foo => B1}
|
||||
because
|
||||
B1 is not compatible with F1
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ check/src/t_maps.erl:266:5
|
||||
│
|
||||
|
|
@ -385,17 +259,6 @@ Because in the expression's type:
|
|||
Differs from the expected type: K1 | K2
|
||||
, ... }
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
#{K1 | V2 => V1 | K2} is not compatible with kv(K1 | K2, V1 | V2)
|
||||
because
|
||||
#{K1 | V2 => V1 | K2} is not compatible with #{K1 | K2 => V1 | V2}
|
||||
the default associations are not compatible
|
||||
because
|
||||
K1 | V2 is not compatible with K1 | K2
|
||||
because
|
||||
V2 is not compatible with K1 | K2
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ check/src/t_maps.erl:283:19
|
||||
│
|
||||
|
|
@ -412,10 +275,6 @@ Because in the expression's type:
|
|||
Context expects type: #{...}
|
||||
The expected map has no corresponding key for: b.
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
key `b` is declared in the former but not in the latter and the latter map has no default association
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ check/src/t_maps.erl:307:22
|
||||
│
|
||||
|
|
@ -433,17 +292,6 @@ Because in the expression's type:
|
|||
Context expects type: number()
|
||||
, n()}
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
at tuple index 1:
|
||||
{a(), n()} is not compatible with {n(), a()}
|
||||
because
|
||||
a() is not compatible with n()
|
||||
because
|
||||
atom() is not compatible with n()
|
||||
because
|
||||
atom() is not compatible with number()
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ check/src/t_maps.erl:321:5
|
||||
│
|
||||
|
|
@ -461,17 +309,6 @@ Because in the expression's type:
|
|||
Context expects type: number()
|
||||
, n()}
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
at tuple index 1:
|
||||
{a(), n()} is not compatible with {n(), a()}
|
||||
because
|
||||
a() is not compatible with n()
|
||||
because
|
||||
atom() is not compatible with n()
|
||||
because
|
||||
atom() is not compatible with number()
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ check/src/t_maps.erl:334:25
|
||||
│
|
||||
|
|
@ -489,13 +326,6 @@ Because in the expression's type:
|
|||
Context expects type: K
|
||||
, ... }
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
#{V => K} is not compatible with #{K => V}
|
||||
the default associations are not compatible
|
||||
because
|
||||
V is not compatible with K
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ check/src/t_maps.erl:351:25
|
||||
│
|
||||
|
|
@ -515,17 +345,6 @@ Because in the expression's type:
|
|||
Context expects type: atom()
|
||||
, ... }
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
#{a() => n()} | #{n() => a()} | #{id => 'id' | 'no_id'} is not compatible with #{a() | n() => a()}
|
||||
because
|
||||
#{a() => n()} is not compatible with #{a() | n() => a()}
|
||||
the default associations are not compatible
|
||||
because
|
||||
n() is not compatible with a()
|
||||
because
|
||||
number() is not compatible with a()
|
||||
|
||||
error: clause_not_covered (See https://fb.me/eqwalizer_errors#clause_not_covered)
|
||||
┌─ check/src/t_maps.erl:356:1
|
||||
│
|
||||
|
|
@ -556,15 +375,6 @@ Because in the expression's type:
|
|||
No candidate of the expression's type matches the expected type.
|
||||
, a()}
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
at tuple index 1:
|
||||
{'a' | 'b', a()} is not compatible with {n(), a()}
|
||||
because
|
||||
'a' | 'b' is not compatible with n()
|
||||
because
|
||||
'a' | 'b' is not compatible with number()
|
||||
|
||||
error: clause_not_covered (See https://fb.me/eqwalizer_errors#clause_not_covered)
|
||||
┌─ check/src/t_maps.erl:429:1
|
||||
│
|
||||
|
|
@ -611,10 +421,6 @@ Because in the expression's type:
|
|||
Context expects type: #{n := ..., ...}
|
||||
The type of the expression is missing the following required keys: n.
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
key `n` is declared as required in the latter but not in the former
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ check/src/t_maps.erl:536:5
|
||||
│
|
||||
|
|
@ -633,17 +439,6 @@ Because in the expression's type:
|
|||
Differs from the expected type: 'b' | 'c'
|
||||
, ... }
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
#{a => 'b' | 'c' | 'a'} is not compatible with #{a => 'b' | 'c'}
|
||||
because
|
||||
at key `a`:
|
||||
#{a => 'b' | 'c' | 'a'} is not compatible with #{a => 'b' | 'c'}
|
||||
because
|
||||
'b' | 'c' | 'a' is not compatible with 'b' | 'c'
|
||||
because
|
||||
'a' is not compatible with 'b' | 'c'
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ check/src/t_maps.erl:571:5
|
||||
│
|
||||
|
|
@ -660,15 +455,6 @@ Because in the expression's type:
|
|||
Context expects type: #{item_v2 := ..., ...}
|
||||
The type of the expression is missing the following required keys: item_v2.
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
rec_shape() is not compatible with rec_shape_v2()
|
||||
because
|
||||
#{item := rec_shape() | 'undefined'} is not compatible with rec_shape_v2()
|
||||
because
|
||||
#{item := rec_shape() | 'undefined'} is not compatible with #{item_v2 := rec_shape_v2() | 'undefined'}
|
||||
key `item_v2` is declared as required in the latter but not in the former
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ check/src/t_maps.erl:629:5
|
||||
│
|
||||
|
|
@ -687,14 +473,6 @@ Because in the expression's type:
|
|||
Differs from the expected type: 'a' | #{item := 'a' | gen_shape('a')}
|
||||
, ... }
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
gen_shape('a' | 'b') is not compatible with 'a' | #{item := 'a' | #{item := 'a' | gen_shape('a')}}
|
||||
because
|
||||
#{item := 'a' | 'b' | gen_shape('a' | 'b')} is not compatible with 'a' | #{item := 'a' | #{item := 'a' | gen_shape('a')}}
|
||||
because
|
||||
#{item := 'a' | 'b' | gen_shape('a' | 'b')} is not compatible with 'a'
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ check/src/t_maps.erl:641:5
|
||||
│
|
||||
|
|
@ -711,15 +489,6 @@ Because in the expression's type:
|
|||
Context expects type: #{item := ..., ...}
|
||||
The type of the expression is missing the following required keys: item.
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
gen_shape_v2('a') is not compatible with gen_shape('a')
|
||||
because
|
||||
#{item_v2 := 'a' | gen_shape_v2('a')} is not compatible with gen_shape('a')
|
||||
because
|
||||
#{item_v2 := 'a' | gen_shape_v2('a')} is not compatible with #{item := 'a' | gen_shape('a')}
|
||||
key `item` is declared as required in the latter but not in the former
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ check/src/t_maps.erl:648:5
|
||||
│
|
||||
|
|
@ -736,10 +505,6 @@ Because in the expression's type:
|
|||
Context expects type: #{...}
|
||||
The expected map has no corresponding key for: d.
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
key `d` is declared in the former but not in the latter and the latter map has no default association
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ check/src/t_maps.erl:661:5
|
||||
│
|
||||
|
|
@ -757,15 +522,6 @@ Because in the expression's type:
|
|||
Context expects type: 'ka'
|
||||
, ... }
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
#{a => 'va', b => 'vb', c => 'vc', d => 'vd', e => 've'} is not compatible with #{a => 'ka', b => 'kb', c => 'kc'}
|
||||
because
|
||||
at key `a`:
|
||||
#{a => 'va', b => 'vb', c => 'vc', d => 'vd', e => 've'} is not compatible with #{a => 'ka', b => 'kb', c => 'kc'}
|
||||
because
|
||||
'va' is not compatible with 'ka'
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ check/src/t_maps.erl:675:5
|
||||
│
|
||||
|
|
@ -782,10 +538,6 @@ Because in the expression's type:
|
|||
Context expects type: #{c := ..., ...}
|
||||
The type of the expression is missing the following required keys: c.
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
key `c` is declared as required in the latter but not in the former
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ check/src/t_maps.erl:682:5
|
||||
│
|
||||
|
|
@ -802,10 +554,6 @@ Because in the expression's type:
|
|||
Context expects type: #{b := ..., ...}
|
||||
The type of the expression is missing the following required keys: b.
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
key `b` is declared as required in the latter but not in the former
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ check/src/t_maps.erl:689:5
|
||||
│
|
||||
|
|
@ -822,10 +570,6 @@ Because in the expression's type:
|
|||
Context expects type: #{b := ..., ...}
|
||||
The type of the expression is missing the following required keys: b.
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
key `b` is declared as required in the latter but not in the former
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ check/src/t_maps.erl:710:5
|
||||
│
|
||||
|
|
@ -842,10 +586,6 @@ Because in the expression's type:
|
|||
Context expects type: #{k_req3 := ..., k_req2 := ..., k_req1 := ..., ...}
|
||||
The type of the expression is missing the following required keys: k_req3, k_req2, k_req1.
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
keys `k_req1`, `k_req2`, `k_req3` are declared as required in the latter but not in the former
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ check/src/t_maps.erl:732:27
|
||||
│
|
||||
|
|
@ -862,13 +602,6 @@ Because in the expression's type:
|
|||
Context expects type: #{...} (no default association)
|
||||
The expected map has no default association while the type of the expression has one.
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
#{'a' | 'b' => boolean()} is not compatible with #{a => 'true', b => boolean()}
|
||||
key a is not present in the former map but is incompatible with its default association
|
||||
because
|
||||
boolean() is not compatible with 'true'
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ check/src/t_maps.erl:737:27
|
||||
│
|
||||
|
|
@ -885,10 +618,6 @@ Because in the expression's type:
|
|||
Context expects type: #{b := ..., ...}
|
||||
The type of the expression is missing the following required keys: b.
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
key `b` is declared as required in the latter but not in the former
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ check/src/t_maps.erl:742:27
|
||||
│
|
||||
|
|
@ -905,11 +634,4 @@ Because in the expression's type:
|
|||
Context expects type: #{...} (no default association)
|
||||
The expected map has no default association while the type of the expression has one.
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
#{'a' | 'b' => boolean()} is not compatible with #{a => boolean()}
|
||||
because
|
||||
#{'a' | 'b' => boolean()} is not compatible with #{a => boolean()}
|
||||
the latter map has no default association while the first map has one
|
||||
|
||||
44 ERRORS
|
||||
|
|
|
|||
|
|
@ -22,12 +22,6 @@ Because in the expression's type:
|
|||
However the following candidate: []
|
||||
Differs from the expected type: atom()
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
[] | 'error' is not compatible with atom()
|
||||
because
|
||||
[] is not compatible with atom()
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ check/src/tries.erl:75:16
|
||||
│
|
||||
|
|
|
|||
|
|
@ -16,17 +16,6 @@ Because in the expression's type:
|
|||
Differs from the expected type: 'ok'
|
||||
, 'arg' | 'nil'}
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
t4() is not compatible with t5()
|
||||
because
|
||||
{'msg', 'ok' | 'err', 'arg' | 'nil'} is not compatible with t5()
|
||||
because
|
||||
{'msg', 'ok' | 'err', 'arg' | 'nil'} is not compatible with {'msg', 'ok', 'arg'} | {'msg', 'err', 'arg'} | {'msg', 'ok', 'nil'} | {'msg', 'err', 'nil'}
|
||||
because
|
||||
at tuple index 2:
|
||||
{'msg', 'ok' | 'err', 'arg' | 'nil'} is not compatible with {'msg', 'ok', 'arg'}
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ check/src/tuple_union.erl:66:26
|
||||
│
|
||||
|
|
@ -47,14 +36,4 @@ Because in the expression's type:
|
|||
No candidate of the expression's type matches the expected type.
|
||||
, tree2()}
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
tree3() is not compatible with tree1()
|
||||
because
|
||||
{'leaf', atom()} | {'b1' | 'b2' | 'b3', tree2()} is not compatible with tree1()
|
||||
because
|
||||
{'leaf', atom()} | {'b1' | 'b2' | 'b3', tree2()} is not compatible with {'leaf', atom()} | {'b1', tree1()} | {'b2', tree1()}
|
||||
because
|
||||
{'b1' | 'b2' | 'b3', tree2()} is not compatible with {'leaf', atom()} | {'b1', tree1()} | {'b2', tree1()}
|
||||
|
||||
2 ERRORS
|
||||
|
|
|
|||
|
|
@ -22,12 +22,6 @@ Because in the expression's type:
|
|||
However the following candidate: string()
|
||||
Differs from the expected type: binary()
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
string() | binary() is not compatible with binary()
|
||||
because
|
||||
string() is not compatible with binary()
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ check/src/type_asserts.erl:63:26
|
||||
│
|
||||
|
|
@ -63,17 +57,6 @@ Because in the expression's type:
|
|||
Context expects type: atom()
|
||||
, atom()}
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
'false' | {number(), atom()} is not compatible with 'false' | {atom(), number()}
|
||||
because
|
||||
{number(), atom()} is not compatible with 'false' | {atom(), number()}
|
||||
because
|
||||
at tuple index 1:
|
||||
{number(), atom()} is not compatible with {atom(), number()}
|
||||
because
|
||||
number() is not compatible with atom()
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ check/src/type_asserts.erl:92:3
|
||||
│
|
||||
|
|
@ -91,13 +74,6 @@ Because in the expression's type:
|
|||
Context expects type: number()
|
||||
}
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
at tuple index 2:
|
||||
{'false' | number(), term()} is not compatible with {'false' | number(), number()}
|
||||
because
|
||||
term() is not compatible with number()
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ check/src/type_asserts.erl:105:39
|
||||
│
|
||||
|
|
@ -150,17 +126,6 @@ Because in the expression's type:
|
|||
The expected map has no corresponding key for: kb.
|
||||
, ... }
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
#{dynamic() => #{kc := 'vc'} | #{ka := 'va'} | #{ka := 'va', kb := 'vb', kc := 'vc'} | #{ka := 'va', kc := 'vc'} | #{ka := 'va', kb := 'vb'} | #{kb := 'vb', kc := 'vc'} | #{kb := 'vb'}} is not compatible with #{dynamic() => #{kc := 'vc'} | #{ka := 'va'} | #{ka := 'va', kc := 'vc'} | #{ka := 'va', kb := 'vb'} | #{kb := 'vb'}} | #{dynamic() => #{kc := 'vc'} | #{ka := 'va'} | #{ka := 'va', kb := 'vb'} | #{kb := 'vb', kc := 'vc'} | #{kb := 'vb'}} | #{dynamic() => #{kc := 'vc'} | #{ka := 'va'} | #{ka := 'va', kc := 'vc'} | #{kb := 'vb', kc := 'vc'} | #{kb := 'vb'}}
|
||||
because
|
||||
#{dynamic() => #{kc := 'vc'} | #{ka := 'va'} | #{ka := 'va', kb := 'vb', kc := 'vc'} | #{ka := 'va', kc := 'vc'} | #{ka := 'va', kb := 'vb'} | #{kb := 'vb', kc := 'vc'} | #{kb := 'vb'}} is not compatible with #{dynamic() => #{kc := 'vc'} | #{ka := 'va'} | #{ka := 'va', kc := 'vc'} | #{ka := 'va', kb := 'vb'} | #{kb := 'vb'}}
|
||||
the default associations are not compatible
|
||||
because
|
||||
#{kc := 'vc'} | #{ka := 'va'} | #{ka := 'va', kb := 'vb', kc := 'vc'} | #{ka := 'va', kc := 'vc'} | #{ka := 'va', kb := 'vb'} | #{kb := 'vb', kc := 'vc'} | #{kb := 'vb'} is not compatible with #{kc := 'vc'} | #{ka := 'va'} | #{ka := 'va', kc := 'vc'} | #{ka := 'va', kb := 'vb'} | #{kb := 'vb'}
|
||||
because
|
||||
#{ka := 'va', kb := 'vb', kc := 'vc'} is not compatible with #{kc := 'vc'} | #{ka := 'va'} | #{ka := 'va', kc := 'vc'} | #{ka := 'va', kb := 'vb'} | #{kb := 'vb'}
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ check/src/type_asserts.erl:129:9
|
||||
│
|
||||
|
|
@ -179,17 +144,6 @@ Because in the expression's type:
|
|||
The expected map has no corresponding key for: kb.
|
||||
, ... }
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
#{dynamic() => #{kc := 'vc'} | #{ka := 'va'} | #{ka := 'va', kb := 'vb', kc := 'vc'} | #{ka := 'va', kc := 'vc'} | #{ka := 'va', kb := 'vb'} | #{kb := 'vb', kc := 'vc'} | #{kb := 'vb'}} is not compatible with #{dynamic() => #{kc := 'vc'} | #{ka := 'va'} | #{ka := 'va', kc := 'vc'} | #{ka := 'va', kb := 'vb'} | #{kb := 'vb'}} | #{dynamic() => #{kc := 'vc'} | #{ka := 'va'} | #{ka := 'va', kb := 'vb'} | #{kb := 'vb', kc := 'vc'} | #{kb := 'vb'}} | #{dynamic() => #{kc := 'vc'} | #{ka := 'va'} | #{ka := 'va', kc := 'vc'} | #{kb := 'vb', kc := 'vc'} | #{kb := 'vb'}}
|
||||
because
|
||||
#{dynamic() => #{kc := 'vc'} | #{ka := 'va'} | #{ka := 'va', kb := 'vb', kc := 'vc'} | #{ka := 'va', kc := 'vc'} | #{ka := 'va', kb := 'vb'} | #{kb := 'vb', kc := 'vc'} | #{kb := 'vb'}} is not compatible with #{dynamic() => #{kc := 'vc'} | #{ka := 'va'} | #{ka := 'va', kc := 'vc'} | #{ka := 'va', kb := 'vb'} | #{kb := 'vb'}}
|
||||
the default associations are not compatible
|
||||
because
|
||||
#{kc := 'vc'} | #{ka := 'va'} | #{ka := 'va', kb := 'vb', kc := 'vc'} | #{ka := 'va', kc := 'vc'} | #{ka := 'va', kb := 'vb'} | #{kb := 'vb', kc := 'vc'} | #{kb := 'vb'} is not compatible with #{kc := 'vc'} | #{ka := 'va'} | #{ka := 'va', kc := 'vc'} | #{ka := 'va', kb := 'vb'} | #{kb := 'vb'}
|
||||
because
|
||||
#{ka := 'va', kb := 'vb', kc := 'vc'} is not compatible with #{kc := 'vc'} | #{ka := 'va'} | #{ka := 'va', kc := 'vc'} | #{ka := 'va', kb := 'vb'} | #{kb := 'vb'}
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ check/src/type_asserts.erl:132:9
|
||||
│
|
||||
|
|
@ -208,17 +162,6 @@ Because in the expression's type:
|
|||
The expected map has no corresponding key for: kb.
|
||||
, ... }
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
#{dynamic() => #{kc := 'vc'} | #{ka := 'va'} | #{ka := 'va', kb := 'vb', kc := 'vc'} | #{ka := 'va', kc := 'vc'} | #{ka := 'va', kb := 'vb'} | #{kb := 'vb', kc := 'vc'} | #{kb := 'vb'}} is not compatible with #{dynamic() => #{kc := 'vc'} | #{ka := 'va'} | #{ka := 'va', kc := 'vc'} | #{ka := 'va', kb := 'vb'} | #{kb := 'vb'}} | #{dynamic() => #{kc := 'vc'} | #{ka := 'va'} | #{ka := 'va', kb := 'vb'} | #{kb := 'vb', kc := 'vc'} | #{kb := 'vb'}} | #{dynamic() => #{kc := 'vc'} | #{ka := 'va'} | #{ka := 'va', kc := 'vc'} | #{kb := 'vb', kc := 'vc'} | #{kb := 'vb'}}
|
||||
because
|
||||
#{dynamic() => #{kc := 'vc'} | #{ka := 'va'} | #{ka := 'va', kb := 'vb', kc := 'vc'} | #{ka := 'va', kc := 'vc'} | #{ka := 'va', kb := 'vb'} | #{kb := 'vb', kc := 'vc'} | #{kb := 'vb'}} is not compatible with #{dynamic() => #{kc := 'vc'} | #{ka := 'va'} | #{ka := 'va', kc := 'vc'} | #{ka := 'va', kb := 'vb'} | #{kb := 'vb'}}
|
||||
the default associations are not compatible
|
||||
because
|
||||
#{kc := 'vc'} | #{ka := 'va'} | #{ka := 'va', kb := 'vb', kc := 'vc'} | #{ka := 'va', kc := 'vc'} | #{ka := 'va', kb := 'vb'} | #{kb := 'vb', kc := 'vc'} | #{kb := 'vb'} is not compatible with #{kc := 'vc'} | #{ka := 'va'} | #{ka := 'va', kc := 'vc'} | #{ka := 'va', kb := 'vb'} | #{kb := 'vb'}
|
||||
because
|
||||
#{ka := 'va', kb := 'vb', kc := 'vc'} is not compatible with #{kc := 'vc'} | #{ka := 'va'} | #{ka := 'va', kc := 'vc'} | #{ka := 'va', kb := 'vb'} | #{kb := 'vb'}
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ check/src/type_asserts.erl:156:24
|
||||
│
|
||||
|
|
|
|||
|
|
@ -15,11 +15,4 @@ Because in the expression's type:
|
|||
Context expects type: atom()
|
||||
}
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
at tuple index 1:
|
||||
{binary()} is not compatible with {atom()}
|
||||
because
|
||||
binary() is not compatible with atom()
|
||||
|
||||
1 ERROR
|
||||
|
|
|
|||
|
|
@ -15,11 +15,4 @@ Because in the expression's type:
|
|||
Context expects type: atom()
|
||||
}
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
at tuple index 1:
|
||||
{binary()} is not compatible with {atom()}
|
||||
because
|
||||
binary() is not compatible with atom()
|
||||
|
||||
1 ERROR
|
||||
|
|
|
|||
|
|
@ -14,12 +14,6 @@ Because in the expression's type:
|
|||
However the following candidate: number()
|
||||
Differs from the expected type: binary()
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
number() | binary() is not compatible with binary()
|
||||
because
|
||||
number() is not compatible with binary()
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ eqwater/src/eqwater.erl:172:22
|
||||
│
|
||||
|
|
@ -36,12 +30,6 @@ Because in the expression's type:
|
|||
However the following candidate: number()
|
||||
Differs from the expected type: binary()
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
number() | binary() is not compatible with binary()
|
||||
because
|
||||
number() is not compatible with binary()
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ eqwater/src/eqwater.erl:183:7
|
||||
│
|
||||
|
|
@ -58,12 +46,6 @@ Because in the expression's type:
|
|||
However the following candidate: number()
|
||||
Differs from the expected type: binary()
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
number() | binary() is not compatible with binary()
|
||||
because
|
||||
number() is not compatible with binary()
|
||||
|
||||
error: clause_not_covered (See https://fb.me/eqwalizer_errors#clause_not_covered)
|
||||
┌─ eqwater/src/eqwater.erl:228:1
|
||||
│
|
||||
|
|
@ -86,12 +68,6 @@ Because in the expression's type:
|
|||
However the following candidate: #ab_rec{}
|
||||
Differs from the expected type: atom()
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
#ab_rec{} | atom() is not compatible with atom()
|
||||
because
|
||||
#ab_rec{} is not compatible with atom()
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ eqwater/src/eqwater.erl:356:16
|
||||
│
|
||||
|
|
@ -108,12 +84,6 @@ Because in the expression's type:
|
|||
However the following candidate: #ab_rec{}
|
||||
Differs from the expected type: atom()
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
#ab_rec{} | atom() is not compatible with atom()
|
||||
because
|
||||
#ab_rec{} is not compatible with atom()
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ eqwater/src/eqwater.erl:404:25
|
||||
│
|
||||
|
|
@ -152,12 +122,6 @@ Because in the expression's type:
|
|||
However the following candidate: atom()
|
||||
Differs from the expected type: number()
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
number() | atom() is not compatible with number()
|
||||
because
|
||||
atom() is not compatible with number()
|
||||
|
||||
error: clause_not_covered (See https://fb.me/eqwalizer_errors#clause_not_covered)
|
||||
┌─ eqwater/src/eqwater.erl:419:1
|
||||
│
|
||||
|
|
@ -182,12 +146,6 @@ Because in the expression's type:
|
|||
However the following candidate: atom()
|
||||
Differs from the expected type: number()
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
number() | atom() is not compatible with number()
|
||||
because
|
||||
atom() is not compatible with number()
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ eqwater/src/eqwater.erl:429:25
|
||||
│
|
||||
|
|
@ -204,12 +162,6 @@ Because in the expression's type:
|
|||
However the following candidate: atom()
|
||||
Differs from the expected type: number()
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
number() | atom() is not compatible with number()
|
||||
because
|
||||
atom() is not compatible with number()
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ eqwater/src/eqwater.erl:496:3
|
||||
│
|
||||
|
|
@ -235,13 +187,6 @@ Because in the expression's type:
|
|||
Context expects type: atom()
|
||||
}
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
at tuple index 2:
|
||||
{'union_field', binary()} is not compatible with {'union_field', atom()}
|
||||
because
|
||||
binary() is not compatible with atom()
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ eqwater/src/eqwater.erl:559:50
|
||||
│
|
||||
|
|
@ -258,12 +203,6 @@ Because in the expression's type:
|
|||
However the following candidate: 'ok'
|
||||
Differs from the expected type: number()
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
number() | 'ok' is not compatible with number()
|
||||
because
|
||||
'ok' is not compatible with number()
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ eqwater/src/eqwater.erl:590:8
|
||||
│
|
||||
|
|
@ -280,12 +219,6 @@ Because in the expression's type:
|
|||
However the following candidate: #c{}
|
||||
Differs from the expected type: #b{}
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
#b{} | #c{} is not compatible with #b{}
|
||||
because
|
||||
#c{} is not compatible with #b{}
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ eqwater/src/eqwater.erl:631:27
|
||||
│
|
||||
|
|
@ -302,12 +235,6 @@ Because in the expression's type:
|
|||
However the following candidate: A
|
||||
Differs from the expected type: B
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
A | B is not compatible with B
|
||||
because
|
||||
A is not compatible with B
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ eqwater/src/eqwater.erl:649:17
|
||||
│
|
||||
|
|
@ -324,12 +251,6 @@ Because in the expression's type:
|
|||
However the following candidate: fun()
|
||||
Differs from the expected type: {term()}
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
fun() | {term()} is not compatible with {term()}
|
||||
because
|
||||
fun() is not compatible with {term()}
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ eqwater/src/eqwater.erl:660:17
|
||||
│
|
||||
|
|
@ -346,12 +267,6 @@ Because in the expression's type:
|
|||
However the following candidate: tuple()
|
||||
Differs from the expected type: atom()
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
tuple() | atom() is not compatible with atom()
|
||||
because
|
||||
tuple() is not compatible with atom()
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ eqwater/src/eqwater.erl:839:27
|
||||
│
|
||||
|
|
@ -368,12 +283,6 @@ Because in the expression's type:
|
|||
However the following candidate: atom()
|
||||
Differs from the expected type: number()
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
number() | atom() is not compatible with number()
|
||||
because
|
||||
atom() is not compatible with number()
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ eqwater/src/eqwater.erl:997:31
|
||||
│
|
||||
|
|
@ -412,12 +321,6 @@ Because in the expression's type:
|
|||
However the following candidate: 'undefined'
|
||||
Differs from the expected type: number()
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
number() | 'undefined' is not compatible with number()
|
||||
because
|
||||
'undefined' is not compatible with number()
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ eqwater/src/eqwater.erl:1122:14
|
||||
│
|
||||
|
|
@ -437,14 +340,6 @@ Because in the expression's type:
|
|||
Context expects type: atom()
|
||||
]
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
[[atom()]] | [atom()] is not compatible with [atom()]
|
||||
because
|
||||
[[atom()]] is not compatible with [atom()]
|
||||
because
|
||||
[atom()] is not compatible with atom()
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ eqwater/src/eqwater.erl:1131:15
|
||||
│
|
||||
|
|
@ -464,14 +359,6 @@ Because in the expression's type:
|
|||
Context expects type: atom()
|
||||
]
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
[[atom()]] | [atom()] is not compatible with [atom()]
|
||||
because
|
||||
[[atom()]] is not compatible with [atom()]
|
||||
because
|
||||
[atom()] is not compatible with atom()
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ eqwater/src/eqwater.erl:1155:7
|
||||
│
|
||||
|
|
@ -488,12 +375,6 @@ Because in the expression's type:
|
|||
However the following candidate: string()
|
||||
Differs from the expected type: binary()
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
binary() | string() is not compatible with binary()
|
||||
because
|
||||
string() is not compatible with binary()
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ eqwater/src/eqwater.erl:1181:7
|
||||
│
|
||||
|
|
@ -510,12 +391,6 @@ Because in the expression's type:
|
|||
However the following candidate: atom()
|
||||
Differs from the expected type: binary()
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
binary() | atom() is not compatible with binary()
|
||||
because
|
||||
atom() is not compatible with binary()
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ eqwater/src/eqwater.erl:1189:60
|
||||
│
|
||||
|
|
@ -532,12 +407,6 @@ Because in the expression's type:
|
|||
However the following candidate: 'ok'
|
||||
Differs from the expected type: binary()
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
'ok' | binary() is not compatible with binary()
|
||||
because
|
||||
'ok' is not compatible with binary()
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ eqwater/src/eqwater.erl:1194:30
|
||||
│
|
||||
|
|
@ -554,12 +423,6 @@ Because in the expression's type:
|
|||
However the following candidate: binary()
|
||||
Differs from the expected type: 'ok'
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
binary() | 'ok' is not compatible with 'ok'
|
||||
because
|
||||
binary() is not compatible with 'ok'
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ eqwater/src/eqwater.erl:1225:14
|
||||
│
|
||||
|
|
@ -576,12 +439,6 @@ Because in the expression's type:
|
|||
However the following candidate: {term(), my_list()}
|
||||
Differs from the expected type: number()
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
{term(), my_list()} | number() is not compatible with number()
|
||||
because
|
||||
{term(), my_list()} is not compatible with number()
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ eqwater/src/eqwater.erl:1231:31
|
||||
│
|
||||
|
|
@ -606,12 +463,6 @@ Because in the expression's type:
|
|||
However the following candidate: 'a'
|
||||
Differs from the expected type: 'b'
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
'a' | 'b' is not compatible with 'b'
|
||||
because
|
||||
'a' is not compatible with 'b'
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ eqwater/src/eqwater.erl:1269:5
|
||||
│
|
||||
|
|
@ -624,16 +475,9 @@ error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types
|
|||
┌─ eqwater/src/eqwater.erl:1286:60
|
||||
│
|
||||
1286 │ negate_atoms_neg(A) when not ((A == a) orelse (A == b)) -> A;
|
||||
│ ^
|
||||
│ │
|
||||
│ A.
|
||||
│ ^ A.
|
||||
Expression has type: 'c'
|
||||
Context expected type: 'a' | 'b'
|
||||
│
|
||||
|
||||
'c' is not compatible with 'a' | 'b'
|
||||
because
|
||||
'c' is not compatible with 'a'
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ eqwater/src/eqwater.erl:1291:43
|
||||
|
|
|
|||
|
|
@ -16,14 +16,6 @@ Because in the expression's type:
|
|||
Differs from the expected type: binary()
|
||||
]
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
[binary() | atom()] is not compatible with [binary()]
|
||||
because
|
||||
binary() | atom() is not compatible with binary()
|
||||
because
|
||||
atom() is not compatible with binary()
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ eqwater/src/eqwater_lists.erl:48:23
|
||||
│
|
||||
|
|
@ -57,12 +49,6 @@ Because in the expression's type:
|
|||
However the following candidate: []
|
||||
Differs from the expected type: atom()
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
atom() | [] is not compatible with atom()
|
||||
because
|
||||
[] is not compatible with atom()
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ eqwater/src/eqwater_lists.erl:61:19
|
||||
│
|
||||
|
|
@ -79,12 +65,6 @@ Because in the expression's type:
|
|||
However the following candidate: []
|
||||
Differs from the expected type: atom()
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
atom() | [] is not compatible with atom()
|
||||
because
|
||||
[] is not compatible with atom()
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ eqwater/src/eqwater_lists.erl:69:19
|
||||
│
|
||||
|
|
@ -121,14 +101,6 @@ Because in the expression's type:
|
|||
Context expects type: binary()
|
||||
]
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
[atom()] | [binary()] is not compatible with [binary()]
|
||||
because
|
||||
[atom()] is not compatible with [binary()]
|
||||
because
|
||||
atom() is not compatible with binary()
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ eqwater/src/eqwater_lists.erl:97:23
|
||||
│
|
||||
|
|
@ -155,14 +127,4 @@ Because in the expression's type:
|
|||
Differs from the expected type: atom()
|
||||
]
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
[atom() | binary()] is not compatible with [atom()] | [binary()]
|
||||
because
|
||||
[atom() | binary()] is not compatible with [atom()]
|
||||
because
|
||||
atom() | binary() is not compatible with atom()
|
||||
because
|
||||
binary() is not compatible with atom()
|
||||
|
||||
8 ERRORS
|
||||
|
|
|
|||
|
|
@ -14,10 +14,6 @@ Because in the expression's type:
|
|||
Context expects type: #{b := ..., ...}
|
||||
The type of the expression is missing the following required keys: b.
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
key `b` is declared as required in the latter but not in the former
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ eqwater/src/eqwater_maps.erl:27:22
|
||||
│
|
||||
|
|
@ -34,10 +30,6 @@ Because in the expression's type:
|
|||
Context expects type: #{b := ..., ...}
|
||||
The type of the expression is missing the following required keys: b.
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
key `b` is declared as required in the latter but not in the former
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ eqwater/src/eqwater_maps.erl:36:22
|
||||
│
|
||||
|
|
@ -54,12 +46,6 @@ Because in the expression's type:
|
|||
However the following candidate: #{}
|
||||
Differs from the expected type: 'ok'
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
#{} | 'ok' is not compatible with 'ok'
|
||||
because
|
||||
#{} is not compatible with 'ok'
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ eqwater/src/eqwater_maps.erl:42:22
|
||||
│
|
||||
|
|
@ -76,10 +62,6 @@ Because in the expression's type:
|
|||
Context expects type: #{b := ..., ...}
|
||||
The type of the expression is missing the following required keys: b.
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
key `b` is declared as required in the latter but not in the former
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ eqwater/src/eqwater_maps.erl:55:34
|
||||
│
|
||||
|
|
|
|||
|
|
@ -14,14 +14,6 @@ Because in the expression's type:
|
|||
However the following candidate: #rec1{}
|
||||
Differs from the expected type: number()
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
user() is not compatible with number()
|
||||
because
|
||||
#rec1{} | number() is not compatible with number()
|
||||
because
|
||||
#rec1{} is not compatible with number()
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ eqwater/src/eqwater_records.erl:40:16
|
||||
│
|
||||
|
|
@ -38,14 +30,6 @@ Because in the expression's type:
|
|||
However the following candidate: #rec1{}
|
||||
Differs from the expected type: number()
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
user() is not compatible with number()
|
||||
because
|
||||
#rec1{} | number() is not compatible with number()
|
||||
because
|
||||
#rec1{} is not compatible with number()
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ eqwater/src/eqwater_records.erl:47:11
|
||||
│
|
||||
|
|
@ -62,14 +46,6 @@ Because in the expression's type:
|
|||
However the following candidate: #rec1{}
|
||||
Differs from the expected type: number()
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
user() is not compatible with number()
|
||||
because
|
||||
#rec1{} | number() is not compatible with number()
|
||||
because
|
||||
#rec1{} is not compatible with number()
|
||||
|
||||
error: clause_not_covered (See https://fb.me/eqwalizer_errors#clause_not_covered)
|
||||
┌─ eqwater/src/eqwater_records.erl:104:1
|
||||
│
|
||||
|
|
@ -96,15 +72,6 @@ Because in the expression's type:
|
|||
Context expects type: #rec1{}
|
||||
, #rec1{}}
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
{#rec1{}, #rec2{}} | {#rec2{}, #rec1{}} is not compatible with {#rec1{}, #rec2{}}
|
||||
because
|
||||
at tuple index 1:
|
||||
{#rec2{}, #rec1{}} is not compatible with {#rec1{}, #rec2{}}
|
||||
because
|
||||
#rec2{} is not compatible with #rec1{}
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ eqwater/src/eqwater_records.erl:115:25
|
||||
│
|
||||
|
|
@ -124,13 +91,4 @@ Because in the expression's type:
|
|||
Context expects type: #rec1{}
|
||||
, #rec1{}}
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
{#rec1{}, #rec2{}} | {#rec2{}, #rec1{}} is not compatible with {#rec1{}, #rec2{}}
|
||||
because
|
||||
at tuple index 1:
|
||||
{#rec2{}, #rec1{}} is not compatible with {#rec1{}, #rec2{}}
|
||||
because
|
||||
#rec2{} is not compatible with #rec1{}
|
||||
|
||||
6 ERRORS
|
||||
|
|
|
|||
|
|
@ -14,14 +14,6 @@ Because in the expression's type:
|
|||
However the following candidate: binary()
|
||||
Differs from the expected type: atom()
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
ab() is not compatible with atom()
|
||||
because
|
||||
atom() | binary() is not compatible with atom()
|
||||
because
|
||||
binary() is not compatible with atom()
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ eqwater/src/eqwater_sound.erl:50:14
|
||||
│
|
||||
|
|
@ -38,14 +30,6 @@ Because in the expression's type:
|
|||
However the following candidate: atom()
|
||||
Differs from the expected type: binary()
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
ab() is not compatible with binary()
|
||||
because
|
||||
atom() | binary() is not compatible with binary()
|
||||
because
|
||||
atom() is not compatible with binary()
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ eqwater/src/eqwater_sound.erl:53:28
|
||||
│
|
||||
|
|
|
|||
|
|
@ -14,12 +14,6 @@ Because in the expression's type:
|
|||
However the following candidate: binary()
|
||||
Differs from the expected type: number()
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
binary() | number() is not compatible with number()
|
||||
because
|
||||
binary() is not compatible with number()
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ eqwater/src/unlimited_refinement.erl:94:14
|
||||
│
|
||||
|
|
|
|||
|
|
@ -416,12 +416,6 @@ Because in the expression's type:
|
|||
Context expects type: atom()
|
||||
]
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
[term()] is not compatible with [atom()]
|
||||
because
|
||||
term() is not compatible with atom()
|
||||
|
||||
error: expected_fun_type (See https://fb.me/eqwalizer_errors#expected_fun_type)
|
||||
┌─ fault_tolerance/src/fault_tolerance.erl:169:8
|
||||
│
|
||||
|
|
@ -672,12 +666,6 @@ Because in the expression's type:
|
|||
However the following candidate: []
|
||||
Differs from the expected type: atom()
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
dynamic() | [] is not compatible with atom()
|
||||
because
|
||||
[] is not compatible with atom()
|
||||
|
||||
error: expected_fun_type (See https://fb.me/eqwalizer_errors#expected_fun_type)
|
||||
┌─ fault_tolerance/src/fault_tolerance.erl:254:11
|
||||
│
|
||||
|
|
|
|||
|
|
@ -44,10 +44,6 @@ Because in the expression's type:
|
|||
Context expects type: #{k_req3 := ..., k_req2 := ..., k_req1 := ..., ...}
|
||||
The type of the expression is missing the following required keys: k_req3, k_req2, k_req1.
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
keys `k_req1`, `k_req2`, `k_req3` are declared as required in the latter but not in the former
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ app_a/src/app_a.erl:102:5
|
||||
│
|
||||
|
|
@ -68,17 +64,6 @@ Because in the expression's type:
|
|||
, ... }
|
||||
, ... }
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
id(#{a := 'va', b := #{c := #{d => atom()}}}) is not compatible with #{a := 'va', b := #{c := id(#{d := atom(), e := atom()})}}
|
||||
because
|
||||
#{a := 'va', b := #{c := #{d => atom()}}} is not compatible with #{a := 'va', b := #{c := id(#{d := atom(), e := atom()})}}
|
||||
because
|
||||
at key `b`:
|
||||
#{a := 'va', b := #{c := #{d => atom()}}} is not compatible with #{a := 'va', b := #{c := id(#{d := atom(), e := atom()})}}
|
||||
because
|
||||
#{c := #{d => atom()}} is not compatible with #{c := id(#{d := atom(), e := atom()})}
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ app_a/src/app_a.erl:125:5
|
||||
│
|
||||
|
|
@ -100,17 +85,6 @@ Because in the expression's type:
|
|||
, ... }
|
||||
, ... }
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
id(#{a := 'va', b := #{c := #{d := pid(), e := pid()}}}) is not compatible with #{a := 'va', b := #{c := id(#{d := atom(), e := atom()})}}
|
||||
because
|
||||
#{a := 'va', b := #{c := #{d := pid(), e := pid()}}} is not compatible with #{a := 'va', b := #{c := id(#{d := atom(), e := atom()})}}
|
||||
because
|
||||
at key `b`:
|
||||
#{a := 'va', b := #{c := #{d := pid(), e := pid()}}} is not compatible with #{a := 'va', b := #{c := id(#{d := atom(), e := atom()})}}
|
||||
because
|
||||
#{c := #{d := pid(), e := pid()}} is not compatible with #{c := id(#{d := atom(), e := atom()})}
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ app_a/test/app_a_SUITE.erl:18:5
|
||||
│
|
||||
|
|
@ -179,14 +153,6 @@ Because in the expression's type:
|
|||
No candidate matches in the expected union.
|
||||
]
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
[term()] is not compatible with [T | X]
|
||||
because
|
||||
term() is not compatible with T | X
|
||||
because
|
||||
term() is not compatible with T
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ app_a/src/app_a_lists.erl:1305:15
|
||||
│
|
||||
|
|
@ -204,12 +170,6 @@ Because in the expression's type:
|
|||
Context expects type: T
|
||||
) -> boolean() | {'true', X})
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
fun((T) -> boolean() | {'true', X}) is not compatible with fun((term()) -> boolean() | {'true', term()})
|
||||
because
|
||||
term() is not compatible with T
|
||||
|
||||
error: type_alias_is_non_productive (See https://fb.me/eqwalizer_errors#type_alias_is_non_productive)
|
||||
┌─ app_a/src/app_a_mod2.erl:22:1
|
||||
│
|
||||
|
|
|
|||
|
|
@ -2,9 +2,9 @@
|
|||
{"path":"app_a/src/app_a.erl","line":14,"char":5,"code":"ELP","severity":"error","name":"eqWAlizer: incompatible_types","original":"'error'","replacement":null,"description":"```lang=error,counterexample\n`'error'`.\n\nExpression has type: 'error'\nContext expected type: 'ok'\n```\n\n> [docs on `incompatible_types`](https://fb.me/eqwalizer_errors#incompatible_types)","docPath":null}
|
||||
{"path":"app_a/src/app_a.erl","line":18,"char":13,"code":"ELP","severity":"error","name":"eqWAlizer: incompatible_types","original":"'an_atom'","replacement":null,"description":"```lang=error,counterexample\n`'an_atom'`.\n\nExpression has type: 'an_atom'\nContext expected type: number()\n```\n\n> [docs on `incompatible_types`](https://fb.me/eqwalizer_errors#incompatible_types)","docPath":null}
|
||||
{"path":"app_a/src/app_a.erl","line":56,"char":5,"code":"ELP","severity":"error","name":"eqWAlizer: redundant_fixme","original":null,"replacement":null,"description":"```lang=error,counterexample\n\nredundant fixme\n```\n\n> [docs on `redundant_fixme`](https://fb.me/eqwalizer_errors#redundant_fixme)","docPath":null}
|
||||
{"path":"app_a/src/app_a.erl","line":78,"char":5,"code":"ELP","severity":"error","name":"eqWAlizer: incompatible_types","original":"X","replacement":null,"description":"```lang=error,counterexample\n`X`.\n\nExpression has type: #{k_extra => term(), k_ok => term(), k_req1 => term(), k_req2 => term(), k_wrong1 => pid(), k_wrong2 => pid()}\nContext expected type: #{k_ok => term(), k_req1 := atom(), k_req2 := atom(), k_req3 := atom(), k_wrong1 => atom(), k_wrong2 => atom()}\n```\n```\nBecause in the expression's type:\n Here the type is: #{k_req2 => ..., k_req1 => ..., ...}\n Context expects type: #{k_req3 := ..., k_req2 := ..., k_req1 := ..., ...}\n The type of the expression is missing the following required keys: k_req3, k_req2, k_req1.\n\n------------------------------ Detailed message ------------------------------\n\nkeys `k_req1`, `k_req2`, `k_req3` are declared as required in the latter but not in the former\n```\n> [docs on `incompatible_types`](https://fb.me/eqwalizer_errors#incompatible_types)","docPath":null}
|
||||
{"path":"app_a/src/app_a.erl","line":102,"char":5,"code":"ELP","severity":"error","name":"eqWAlizer: incompatible_types","original":"X","replacement":null,"description":"```lang=error,counterexample\n`X`.\n\nExpression has type: id(#{a := 'va', b := #{c := #{d => atom()}}})\nContext expected type: #{a := 'va', b := #{c := id(#{d := atom(), e := atom()})}}\n```\n```\nBecause in the expression's type:\n #{ b =>\n #{ c =>\n Here the type is: #{d => ..., ...}\n Context expects type: #{d := ..., e := ..., ...}\n The type of the expression is missing the following required keys: d, e.\n , ... }\n , ... }\n\n------------------------------ Detailed message ------------------------------\n\n id(#{a := 'va', b := #{c := #{d => atom()}}}) is not compatible with #{a := 'va', b := #{c := id(#{d := atom(), e := atom()})}}\n because\n #{a := 'va', b := #{c := #{d => atom()}}} is not compatible with #{a := 'va', b := #{c := id(#{d := atom(), e := atom()})}}\n because\n at key `b`:\n #{a := 'va', b := #{c := #{d => atom()}}} is not compatible with #{a := 'va', b := #{c := id(#{d := atom(), e := atom()})}}\n because\n #{c := #{d => atom()}} is not compatible with #{c := id(#{d := atom(), e := atom()})}\n```\n> [docs on `incompatible_types`](https://fb.me/eqwalizer_errors#incompatible_types)","docPath":null}
|
||||
{"path":"app_a/src/app_a.erl","line":125,"char":5,"code":"ELP","severity":"error","name":"eqWAlizer: incompatible_types","original":"X","replacement":null,"description":"```lang=error,counterexample\n`X`.\n\nExpression has type: id(#{a := 'va', b := #{c := #{d := pid(), e := pid()}}})\nContext expected type: #{a := 'va', b := #{c := id(#{d := atom(), e := atom()})}}\n```\n```\nBecause in the expression's type:\n #{ b =>\n #{ c =>\n #{ d =>\n Here the type is: pid()\n Context expects type: atom()\n , ... }\n , ... }\n , ... }\n\n------------------------------ Detailed message ------------------------------\n\n id(#{a := 'va', b := #{c := #{d := pid(), e := pid()}}}) is not compatible with #{a := 'va', b := #{c := id(#{d := atom(), e := atom()})}}\n because\n #{a := 'va', b := #{c := #{d := pid(), e := pid()}}} is not compatible with #{a := 'va', b := #{c := id(#{d := atom(), e := atom()})}}\n because\n at key `b`:\n #{a := 'va', b := #{c := #{d := pid(), e := pid()}}} is not compatible with #{a := 'va', b := #{c := id(#{d := atom(), e := atom()})}}\n because\n #{c := #{d := pid(), e := pid()}} is not compatible with #{c := id(#{d := atom(), e := atom()})}\n```\n> [docs on `incompatible_types`](https://fb.me/eqwalizer_errors#incompatible_types)","docPath":null}
|
||||
{"path":"app_a/src/app_a.erl","line":78,"char":5,"code":"ELP","severity":"error","name":"eqWAlizer: incompatible_types","original":"X","replacement":null,"description":"```lang=error,counterexample\n`X`.\n\nExpression has type: #{k_extra => term(), k_ok => term(), k_req1 => term(), k_req2 => term(), k_wrong1 => pid(), k_wrong2 => pid()}\nContext expected type: #{k_ok => term(), k_req1 := atom(), k_req2 := atom(), k_req3 := atom(), k_wrong1 => atom(), k_wrong2 => atom()}\n```\n```\nBecause in the expression's type:\n Here the type is: #{k_req2 => ..., k_req1 => ..., ...}\n Context expects type: #{k_req3 := ..., k_req2 := ..., k_req1 := ..., ...}\n The type of the expression is missing the following required keys: k_req3, k_req2, k_req1.\n```\n> [docs on `incompatible_types`](https://fb.me/eqwalizer_errors#incompatible_types)","docPath":null}
|
||||
{"path":"app_a/src/app_a.erl","line":102,"char":5,"code":"ELP","severity":"error","name":"eqWAlizer: incompatible_types","original":"X","replacement":null,"description":"```lang=error,counterexample\n`X`.\n\nExpression has type: id(#{a := 'va', b := #{c := #{d => atom()}}})\nContext expected type: #{a := 'va', b := #{c := id(#{d := atom(), e := atom()})}}\n```\n```\nBecause in the expression's type:\n #{ b =>\n #{ c =>\n Here the type is: #{d => ..., ...}\n Context expects type: #{d := ..., e := ..., ...}\n The type of the expression is missing the following required keys: d, e.\n , ... }\n , ... }\n```\n> [docs on `incompatible_types`](https://fb.me/eqwalizer_errors#incompatible_types)","docPath":null}
|
||||
{"path":"app_a/src/app_a.erl","line":125,"char":5,"code":"ELP","severity":"error","name":"eqWAlizer: incompatible_types","original":"X","replacement":null,"description":"```lang=error,counterexample\n`X`.\n\nExpression has type: id(#{a := 'va', b := #{c := #{d := pid(), e := pid()}}})\nContext expected type: #{a := 'va', b := #{c := id(#{d := atom(), e := atom()})}}\n```\n```\nBecause in the expression's type:\n #{ b =>\n #{ c =>\n #{ d =>\n Here the type is: pid()\n Context expects type: atom()\n , ... }\n , ... }\n , ... }\n```\n> [docs on `incompatible_types`](https://fb.me/eqwalizer_errors#incompatible_types)","docPath":null}
|
||||
{"path":"app_a/test/app_a_SUITE.erl","line":18,"char":5,"code":"ELP","severity":"error","name":"eqWAlizer: incompatible_types","original":"app_a_test_helpers:fail()","replacement":null,"description":"```lang=error,counterexample\n`app_a_test_helpers:fail()`.\n\nExpression has type: 'error'\nContext expected type: 'ok'\n```\n\n> [docs on `incompatible_types`](https://fb.me/eqwalizer_errors#incompatible_types)","docPath":null}
|
||||
{"path":"app_a/src/app_a_errors_generated.erl","line":8,"char":10,"code":"ELP","severity":"error","name":"eqWAlizer: incompatible_types","original":"'wrong_ret'","replacement":null,"description":"```lang=error,counterexample\n`'wrong_ret'`.\n\nExpression has type: 'wrong_ret'\nContext expected type: 'foo'\n```\n\n> [docs on `incompatible_types`](https://fb.me/eqwalizer_errors#incompatible_types)","docPath":null}
|
||||
{"path":"app_a/src/app_a_lists.erl","line":576,"char":5,"code":"ELP","severity":"error","name":"eqWAlizer: incompatible_types","original":"flatmap(thing_to_list/1, List)","replacement":null,"description":"```lang=error,counterexample\n`flatmap(thing_to_list/1, List)`.\n\nExpression has type: [term()]\nContext expected type: string()\n```\n\n> [docs on `incompatible_types`](https://fb.me/eqwalizer_errors#incompatible_types)","docPath":null}
|
||||
|
|
@ -12,8 +12,8 @@
|
|||
{"path":"app_a/src/app_a_lists.erl","line":595,"char":29,"code":"ELP","severity":"error","name":"eqWAlizer: recursive_constraint","original":null,"replacement":null,"description":"```lang=error,counterexample\n\nRecursive constraint: DeepList\n```\n\n> [docs on `recursive_constraint`](https://fb.me/eqwalizer_errors#recursive_constraint)","docPath":null}
|
||||
{"path":"app_a/src/app_a_lists.erl","line":613,"char":29,"code":"ELP","severity":"error","name":"eqWAlizer: recursive_constraint","original":null,"replacement":null,"description":"```lang=error,counterexample\n\nRecursive constraint: DeepList\n```\n\n> [docs on `recursive_constraint`](https://fb.me/eqwalizer_errors#recursive_constraint)","docPath":null}
|
||||
{"path":"app_a/src/app_a_lists.erl","line":1114,"char":36,"code":"ELP","severity":"error","name":"eqWAlizer: incompatible_types","original":"H3","replacement":null,"description":"```lang=error,counterexample\n`H3`.\n\nExpression has type: term()\nContext expected type: [term()]\n```\n\n> [docs on `incompatible_types`](https://fb.me/eqwalizer_errors#incompatible_types)","docPath":null}
|
||||
{"path":"app_a/src/app_a_lists.erl","line":1305,"char":5,"code":"ELP","severity":"error","name":"eqWAlizer: incompatible_types","original":"filtermap(F, L)","replacement":null,"description":"```lang=error,counterexample\n`filtermap(F, L)`.\n\nExpression has type: [term()]\nContext expected type: [T | X]\n```\n```\nBecause in the expression's type:\n [\n Here the type is: term()\n Context expects type: T | X\n No candidate matches in the expected union.\n ]\n\n------------------------------ Detailed message ------------------------------\n\n [term()] is not compatible with [T | X]\n because\n term() is not compatible with T | X\n because\n term() is not compatible with T\n```\n> [docs on `incompatible_types`](https://fb.me/eqwalizer_errors#incompatible_types)","docPath":null}
|
||||
{"path":"app_a/src/app_a_lists.erl","line":1305,"char":15,"code":"ELP","severity":"error","name":"eqWAlizer: incompatible_types","original":"F","replacement":null,"description":"```lang=error,counterexample\n`F`.\n\nExpression has type: fun((T) -> boolean() | {'true', X})\nContext expected type: fun((term()) -> boolean() | {'true', term()})\n```\n```\nBecause in the expression's type:\n fun((\n Here the type is: term()\n Context expects type: T\n ) -> boolean() | {'true', X})\n\n------------------------------ Detailed message ------------------------------\n\n fun((T) -> boolean() | {'true', X}) is not compatible with fun((term()) -> boolean() | {'true', term()})\n because\n term() is not compatible with T\n```\n> [docs on `incompatible_types`](https://fb.me/eqwalizer_errors#incompatible_types)","docPath":null}
|
||||
{"path":"app_a/src/app_a_lists.erl","line":1305,"char":5,"code":"ELP","severity":"error","name":"eqWAlizer: incompatible_types","original":"filtermap(F, L)","replacement":null,"description":"```lang=error,counterexample\n`filtermap(F, L)`.\n\nExpression has type: [term()]\nContext expected type: [T | X]\n```\n```\nBecause in the expression's type:\n [\n Here the type is: term()\n Context expects type: T | X\n No candidate matches in the expected union.\n ]\n```\n> [docs on `incompatible_types`](https://fb.me/eqwalizer_errors#incompatible_types)","docPath":null}
|
||||
{"path":"app_a/src/app_a_lists.erl","line":1305,"char":15,"code":"ELP","severity":"error","name":"eqWAlizer: incompatible_types","original":"F","replacement":null,"description":"```lang=error,counterexample\n`F`.\n\nExpression has type: fun((T) -> boolean() | {'true', X})\nContext expected type: fun((term()) -> boolean() | {'true', term()})\n```\n```\nBecause in the expression's type:\n fun((\n Here the type is: term()\n Context expects type: T\n ) -> boolean() | {'true', X})\n```\n> [docs on `incompatible_types`](https://fb.me/eqwalizer_errors#incompatible_types)","docPath":null}
|
||||
{"path":"app_a/src/app_a_mod2.erl","line":22,"char":1,"code":"ELP","severity":"error","name":"eqWAlizer: type_alias_is_non_productive","original":null,"replacement":null,"description":"```lang=error,counterexample\n\nrecursive type invalid/0 is not productive\n```\n\n> [docs on `type_alias_is_non_productive`](https://fb.me/eqwalizer_errors#type_alias_is_non_productive)","docPath":null}
|
||||
{"path":"app_a/src/app_a_mod2.erl","line":31,"char":9,"code":"ELP","severity":"error","name":"eqWAlizer: incompatible_types","original":"'an_atom'","replacement":null,"description":"```lang=error,counterexample\n`'an_atom'`.\n\nExpression has type: 'an_atom'\nContext expected type: number()\n```\n\n> [docs on `incompatible_types`](https://fb.me/eqwalizer_errors#incompatible_types)","docPath":null}
|
||||
{"path":"app_a/test/app_a_test_helpers.erl","line":6,"char":11,"code":"ELP","severity":"error","name":"eqWAlizer: incompatible_types","original":"'wrong_ret'","replacement":null,"description":"```lang=error,counterexample\n`'wrong_ret'`.\n\nExpression has type: 'wrong_ret'\nContext expected type: 'error'\n```\n\n> [docs on `incompatible_types`](https://fb.me/eqwalizer_errors#incompatible_types)","docPath":null}
|
||||
|
|
|
|||
|
|
@ -44,10 +44,6 @@ Because in the expression's type:
|
|||
Context expects type: #{k_req3 := ..., k_req2 := ..., k_req1 := ..., ...}
|
||||
The type of the expression is missing the following required keys: k_req3, k_req2, k_req1.
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
keys `k_req1`, `k_req2`, `k_req3` are declared as required in the latter but not in the former
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ app_a/src/app_a.erl:102:5
|
||||
│
|
||||
|
|
@ -68,17 +64,6 @@ Because in the expression's type:
|
|||
, ... }
|
||||
, ... }
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
id(#{a := 'va', b := #{c := #{d => atom()}}}) is not compatible with #{a := 'va', b := #{c := id(#{d := atom(), e := atom()})}}
|
||||
because
|
||||
#{a := 'va', b := #{c := #{d => atom()}}} is not compatible with #{a := 'va', b := #{c := id(#{d := atom(), e := atom()})}}
|
||||
because
|
||||
at key `b`:
|
||||
#{a := 'va', b := #{c := #{d => atom()}}} is not compatible with #{a := 'va', b := #{c := id(#{d := atom(), e := atom()})}}
|
||||
because
|
||||
#{c := #{d => atom()}} is not compatible with #{c := id(#{d := atom(), e := atom()})}
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ app_a/src/app_a.erl:125:5
|
||||
│
|
||||
|
|
@ -100,17 +85,6 @@ Because in the expression's type:
|
|||
, ... }
|
||||
, ... }
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
id(#{a := 'va', b := #{c := #{d := pid(), e := pid()}}}) is not compatible with #{a := 'va', b := #{c := id(#{d := atom(), e := atom()})}}
|
||||
because
|
||||
#{a := 'va', b := #{c := #{d := pid(), e := pid()}}} is not compatible with #{a := 'va', b := #{c := id(#{d := atom(), e := atom()})}}
|
||||
because
|
||||
at key `b`:
|
||||
#{a := 'va', b := #{c := #{d := pid(), e := pid()}}} is not compatible with #{a := 'va', b := #{c := id(#{d := atom(), e := atom()})}}
|
||||
because
|
||||
#{c := #{d := pid(), e := pid()}} is not compatible with #{c := id(#{d := atom(), e := atom()})}
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ app_a/test/app_a_SUITE.erl:18:5
|
||||
│
|
||||
|
|
@ -179,14 +153,6 @@ Because in the expression's type:
|
|||
No candidate matches in the expected union.
|
||||
]
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
[term()] is not compatible with [T | X]
|
||||
because
|
||||
term() is not compatible with T | X
|
||||
because
|
||||
term() is not compatible with T
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ app_a/src/app_a_lists.erl:1305:15
|
||||
│
|
||||
|
|
@ -204,12 +170,6 @@ Because in the expression's type:
|
|||
Context expects type: T
|
||||
) -> boolean() | {'true', X})
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
fun((T) -> boolean() | {'true', X}) is not compatible with fun((term()) -> boolean() | {'true', term()})
|
||||
because
|
||||
term() is not compatible with T
|
||||
|
||||
error: type_alias_is_non_productive (See https://fb.me/eqwalizer_errors#type_alias_is_non_productive)
|
||||
┌─ app_a/src/app_a_mod2.erl:22:1
|
||||
│
|
||||
|
|
|
|||
|
|
@ -2,9 +2,9 @@
|
|||
{"path":"app_a/src/app_a.erl","line":14,"char":5,"code":"ELP","severity":"error","name":"eqWAlizer: incompatible_types","original":"'error'","replacement":null,"description":"```lang=error,counterexample\n`'error'`.\n\nExpression has type: 'error'\nContext expected type: 'ok'\n```\n\n> [docs on `incompatible_types`](https://fb.me/eqwalizer_errors#incompatible_types)","docPath":null}
|
||||
{"path":"app_a/src/app_a.erl","line":18,"char":13,"code":"ELP","severity":"error","name":"eqWAlizer: incompatible_types","original":"'an_atom'","replacement":null,"description":"```lang=error,counterexample\n`'an_atom'`.\n\nExpression has type: 'an_atom'\nContext expected type: number()\n```\n\n> [docs on `incompatible_types`](https://fb.me/eqwalizer_errors#incompatible_types)","docPath":null}
|
||||
{"path":"app_a/src/app_a.erl","line":56,"char":5,"code":"ELP","severity":"error","name":"eqWAlizer: redundant_fixme","original":null,"replacement":null,"description":"```lang=error,counterexample\n\nredundant fixme\n```\n\n> [docs on `redundant_fixme`](https://fb.me/eqwalizer_errors#redundant_fixme)","docPath":null}
|
||||
{"path":"app_a/src/app_a.erl","line":78,"char":5,"code":"ELP","severity":"error","name":"eqWAlizer: incompatible_types","original":"X","replacement":null,"description":"```lang=error,counterexample\n`X`.\n\nExpression has type: #{k_extra => term(), k_ok => term(), k_req1 => term(), k_req2 => term(), k_wrong1 => pid(), k_wrong2 => pid()}\nContext expected type: #{k_ok => term(), k_req1 := atom(), k_req2 := atom(), k_req3 := atom(), k_wrong1 => atom(), k_wrong2 => atom()}\n```\n```\nBecause in the expression's type:\n Here the type is: #{k_req2 => ..., k_req1 => ..., ...}\n Context expects type: #{k_req3 := ..., k_req2 := ..., k_req1 := ..., ...}\n The type of the expression is missing the following required keys: k_req3, k_req2, k_req1.\n\n------------------------------ Detailed message ------------------------------\n\nkeys `k_req1`, `k_req2`, `k_req3` are declared as required in the latter but not in the former\n```\n> [docs on `incompatible_types`](https://fb.me/eqwalizer_errors#incompatible_types)","docPath":null}
|
||||
{"path":"app_a/src/app_a.erl","line":102,"char":5,"code":"ELP","severity":"error","name":"eqWAlizer: incompatible_types","original":"X","replacement":null,"description":"```lang=error,counterexample\n`X`.\n\nExpression has type: id(#{a := 'va', b := #{c := #{d => atom()}}})\nContext expected type: #{a := 'va', b := #{c := id(#{d := atom(), e := atom()})}}\n```\n```\nBecause in the expression's type:\n #{ b =>\n #{ c =>\n Here the type is: #{d => ..., ...}\n Context expects type: #{d := ..., e := ..., ...}\n The type of the expression is missing the following required keys: d, e.\n , ... }\n , ... }\n\n------------------------------ Detailed message ------------------------------\n\n id(#{a := 'va', b := #{c := #{d => atom()}}}) is not compatible with #{a := 'va', b := #{c := id(#{d := atom(), e := atom()})}}\n because\n #{a := 'va', b := #{c := #{d => atom()}}} is not compatible with #{a := 'va', b := #{c := id(#{d := atom(), e := atom()})}}\n because\n at key `b`:\n #{a := 'va', b := #{c := #{d => atom()}}} is not compatible with #{a := 'va', b := #{c := id(#{d := atom(), e := atom()})}}\n because\n #{c := #{d => atom()}} is not compatible with #{c := id(#{d := atom(), e := atom()})}\n```\n> [docs on `incompatible_types`](https://fb.me/eqwalizer_errors#incompatible_types)","docPath":null}
|
||||
{"path":"app_a/src/app_a.erl","line":125,"char":5,"code":"ELP","severity":"error","name":"eqWAlizer: incompatible_types","original":"X","replacement":null,"description":"```lang=error,counterexample\n`X`.\n\nExpression has type: id(#{a := 'va', b := #{c := #{d := pid(), e := pid()}}})\nContext expected type: #{a := 'va', b := #{c := id(#{d := atom(), e := atom()})}}\n```\n```\nBecause in the expression's type:\n #{ b =>\n #{ c =>\n #{ d =>\n Here the type is: pid()\n Context expects type: atom()\n , ... }\n , ... }\n , ... }\n\n------------------------------ Detailed message ------------------------------\n\n id(#{a := 'va', b := #{c := #{d := pid(), e := pid()}}}) is not compatible with #{a := 'va', b := #{c := id(#{d := atom(), e := atom()})}}\n because\n #{a := 'va', b := #{c := #{d := pid(), e := pid()}}} is not compatible with #{a := 'va', b := #{c := id(#{d := atom(), e := atom()})}}\n because\n at key `b`:\n #{a := 'va', b := #{c := #{d := pid(), e := pid()}}} is not compatible with #{a := 'va', b := #{c := id(#{d := atom(), e := atom()})}}\n because\n #{c := #{d := pid(), e := pid()}} is not compatible with #{c := id(#{d := atom(), e := atom()})}\n```\n> [docs on `incompatible_types`](https://fb.me/eqwalizer_errors#incompatible_types)","docPath":null}
|
||||
{"path":"app_a/src/app_a.erl","line":78,"char":5,"code":"ELP","severity":"error","name":"eqWAlizer: incompatible_types","original":"X","replacement":null,"description":"```lang=error,counterexample\n`X`.\n\nExpression has type: #{k_extra => term(), k_ok => term(), k_req1 => term(), k_req2 => term(), k_wrong1 => pid(), k_wrong2 => pid()}\nContext expected type: #{k_ok => term(), k_req1 := atom(), k_req2 := atom(), k_req3 := atom(), k_wrong1 => atom(), k_wrong2 => atom()}\n```\n```\nBecause in the expression's type:\n Here the type is: #{k_req2 => ..., k_req1 => ..., ...}\n Context expects type: #{k_req3 := ..., k_req2 := ..., k_req1 := ..., ...}\n The type of the expression is missing the following required keys: k_req3, k_req2, k_req1.\n```\n> [docs on `incompatible_types`](https://fb.me/eqwalizer_errors#incompatible_types)","docPath":null}
|
||||
{"path":"app_a/src/app_a.erl","line":102,"char":5,"code":"ELP","severity":"error","name":"eqWAlizer: incompatible_types","original":"X","replacement":null,"description":"```lang=error,counterexample\n`X`.\n\nExpression has type: id(#{a := 'va', b := #{c := #{d => atom()}}})\nContext expected type: #{a := 'va', b := #{c := id(#{d := atom(), e := atom()})}}\n```\n```\nBecause in the expression's type:\n #{ b =>\n #{ c =>\n Here the type is: #{d => ..., ...}\n Context expects type: #{d := ..., e := ..., ...}\n The type of the expression is missing the following required keys: d, e.\n , ... }\n , ... }\n```\n> [docs on `incompatible_types`](https://fb.me/eqwalizer_errors#incompatible_types)","docPath":null}
|
||||
{"path":"app_a/src/app_a.erl","line":125,"char":5,"code":"ELP","severity":"error","name":"eqWAlizer: incompatible_types","original":"X","replacement":null,"description":"```lang=error,counterexample\n`X`.\n\nExpression has type: id(#{a := 'va', b := #{c := #{d := pid(), e := pid()}}})\nContext expected type: #{a := 'va', b := #{c := id(#{d := atom(), e := atom()})}}\n```\n```\nBecause in the expression's type:\n #{ b =>\n #{ c =>\n #{ d =>\n Here the type is: pid()\n Context expects type: atom()\n , ... }\n , ... }\n , ... }\n```\n> [docs on `incompatible_types`](https://fb.me/eqwalizer_errors#incompatible_types)","docPath":null}
|
||||
{"path":"app_a/test/app_a_SUITE.erl","line":18,"char":5,"code":"ELP","severity":"error","name":"eqWAlizer: incompatible_types","original":"app_a_test_helpers:fail()","replacement":null,"description":"```lang=error,counterexample\n`app_a_test_helpers:fail()`.\n\nExpression has type: 'error'\nContext expected type: 'ok'\n```\n\n> [docs on `incompatible_types`](https://fb.me/eqwalizer_errors#incompatible_types)","docPath":null}
|
||||
{"path":"app_a/src/app_a_errors_generated.erl","line":8,"char":10,"code":"ELP","severity":"error","name":"eqWAlizer: incompatible_types","original":"'wrong_ret'","replacement":null,"description":"```lang=error,counterexample\n`'wrong_ret'`.\n\nExpression has type: 'wrong_ret'\nContext expected type: 'foo'\n```\n\n> [docs on `incompatible_types`](https://fb.me/eqwalizer_errors#incompatible_types)","docPath":null}
|
||||
{"path":"app_a/src/app_a_lists.erl","line":576,"char":5,"code":"ELP","severity":"error","name":"eqWAlizer: incompatible_types","original":"flatmap(thing_to_list/1, List)","replacement":null,"description":"```lang=error,counterexample\n`flatmap(thing_to_list/1, List)`.\n\nExpression has type: [term()]\nContext expected type: string()\n```\n\n> [docs on `incompatible_types`](https://fb.me/eqwalizer_errors#incompatible_types)","docPath":null}
|
||||
|
|
@ -12,8 +12,8 @@
|
|||
{"path":"app_a/src/app_a_lists.erl","line":595,"char":29,"code":"ELP","severity":"error","name":"eqWAlizer: recursive_constraint","original":null,"replacement":null,"description":"```lang=error,counterexample\n\nRecursive constraint: DeepList\n```\n\n> [docs on `recursive_constraint`](https://fb.me/eqwalizer_errors#recursive_constraint)","docPath":null}
|
||||
{"path":"app_a/src/app_a_lists.erl","line":613,"char":29,"code":"ELP","severity":"error","name":"eqWAlizer: recursive_constraint","original":null,"replacement":null,"description":"```lang=error,counterexample\n\nRecursive constraint: DeepList\n```\n\n> [docs on `recursive_constraint`](https://fb.me/eqwalizer_errors#recursive_constraint)","docPath":null}
|
||||
{"path":"app_a/src/app_a_lists.erl","line":1114,"char":36,"code":"ELP","severity":"error","name":"eqWAlizer: incompatible_types","original":"H3","replacement":null,"description":"```lang=error,counterexample\n`H3`.\n\nExpression has type: term()\nContext expected type: [term()]\n```\n\n> [docs on `incompatible_types`](https://fb.me/eqwalizer_errors#incompatible_types)","docPath":null}
|
||||
{"path":"app_a/src/app_a_lists.erl","line":1305,"char":5,"code":"ELP","severity":"error","name":"eqWAlizer: incompatible_types","original":"filtermap(F, L)","replacement":null,"description":"```lang=error,counterexample\n`filtermap(F, L)`.\n\nExpression has type: [term()]\nContext expected type: [T | X]\n```\n```\nBecause in the expression's type:\n [\n Here the type is: term()\n Context expects type: T | X\n No candidate matches in the expected union.\n ]\n\n------------------------------ Detailed message ------------------------------\n\n [term()] is not compatible with [T | X]\n because\n term() is not compatible with T | X\n because\n term() is not compatible with T\n```\n> [docs on `incompatible_types`](https://fb.me/eqwalizer_errors#incompatible_types)","docPath":null}
|
||||
{"path":"app_a/src/app_a_lists.erl","line":1305,"char":15,"code":"ELP","severity":"error","name":"eqWAlizer: incompatible_types","original":"F","replacement":null,"description":"```lang=error,counterexample\n`F`.\n\nExpression has type: fun((T) -> boolean() | {'true', X})\nContext expected type: fun((term()) -> boolean() | {'true', term()})\n```\n```\nBecause in the expression's type:\n fun((\n Here the type is: term()\n Context expects type: T\n ) -> boolean() | {'true', X})\n\n------------------------------ Detailed message ------------------------------\n\n fun((T) -> boolean() | {'true', X}) is not compatible with fun((term()) -> boolean() | {'true', term()})\n because\n term() is not compatible with T\n```\n> [docs on `incompatible_types`](https://fb.me/eqwalizer_errors#incompatible_types)","docPath":null}
|
||||
{"path":"app_a/src/app_a_lists.erl","line":1305,"char":5,"code":"ELP","severity":"error","name":"eqWAlizer: incompatible_types","original":"filtermap(F, L)","replacement":null,"description":"```lang=error,counterexample\n`filtermap(F, L)`.\n\nExpression has type: [term()]\nContext expected type: [T | X]\n```\n```\nBecause in the expression's type:\n [\n Here the type is: term()\n Context expects type: T | X\n No candidate matches in the expected union.\n ]\n```\n> [docs on `incompatible_types`](https://fb.me/eqwalizer_errors#incompatible_types)","docPath":null}
|
||||
{"path":"app_a/src/app_a_lists.erl","line":1305,"char":15,"code":"ELP","severity":"error","name":"eqWAlizer: incompatible_types","original":"F","replacement":null,"description":"```lang=error,counterexample\n`F`.\n\nExpression has type: fun((T) -> boolean() | {'true', X})\nContext expected type: fun((term()) -> boolean() | {'true', term()})\n```\n```\nBecause in the expression's type:\n fun((\n Here the type is: term()\n Context expects type: T\n ) -> boolean() | {'true', X})\n```\n> [docs on `incompatible_types`](https://fb.me/eqwalizer_errors#incompatible_types)","docPath":null}
|
||||
{"path":"app_a/src/app_a_mod2.erl","line":22,"char":1,"code":"ELP","severity":"error","name":"eqWAlizer: type_alias_is_non_productive","original":null,"replacement":null,"description":"```lang=error,counterexample\n\nrecursive type invalid/0 is not productive\n```\n\n> [docs on `type_alias_is_non_productive`](https://fb.me/eqwalizer_errors#type_alias_is_non_productive)","docPath":null}
|
||||
{"path":"app_a/src/app_a_mod2.erl","line":31,"char":9,"code":"ELP","severity":"error","name":"eqWAlizer: incompatible_types","original":"'an_atom'","replacement":null,"description":"```lang=error,counterexample\n`'an_atom'`.\n\nExpression has type: 'an_atom'\nContext expected type: number()\n```\n\n> [docs on `incompatible_types`](https://fb.me/eqwalizer_errors#incompatible_types)","docPath":null}
|
||||
{"path":"app_a/test/app_a_test_helpers.erl","line":6,"char":11,"code":"ELP","severity":"error","name":"eqWAlizer: incompatible_types","original":"'wrong_ret'","replacement":null,"description":"```lang=error,counterexample\n`'wrong_ret'`.\n\nExpression has type: 'wrong_ret'\nContext expected type: 'error'\n```\n\n> [docs on `incompatible_types`](https://fb.me/eqwalizer_errors#incompatible_types)","docPath":null}
|
||||
|
|
|
|||
|
|
@ -2,6 +2,6 @@
|
|||
{"path":"app_a/src/app_a.erl","line":14,"char":5,"code":"ELP","severity":"error","name":"eqWAlizer: incompatible_types","original":"'error'","replacement":null,"description":"```lang=error,counterexample\n`'error'`.\n\nExpression has type: 'error'\nContext expected type: 'ok'\n```\n\n> [docs on `incompatible_types`](https://fb.me/eqwalizer_errors#incompatible_types)","docPath":null}
|
||||
{"path":"app_a/src/app_a.erl","line":18,"char":13,"code":"ELP","severity":"error","name":"eqWAlizer: incompatible_types","original":"'an_atom'","replacement":null,"description":"```lang=error,counterexample\n`'an_atom'`.\n\nExpression has type: 'an_atom'\nContext expected type: number()\n```\n\n> [docs on `incompatible_types`](https://fb.me/eqwalizer_errors#incompatible_types)","docPath":null}
|
||||
{"path":"app_a/src/app_a.erl","line":56,"char":5,"code":"ELP","severity":"error","name":"eqWAlizer: redundant_fixme","original":null,"replacement":null,"description":"```lang=error,counterexample\n\nredundant fixme\n```\n\n> [docs on `redundant_fixme`](https://fb.me/eqwalizer_errors#redundant_fixme)","docPath":null}
|
||||
{"path":"app_a/src/app_a.erl","line":78,"char":5,"code":"ELP","severity":"error","name":"eqWAlizer: incompatible_types","original":"X","replacement":null,"description":"```lang=error,counterexample\n`X`.\n\nExpression has type: #{k_extra => term(), k_ok => term(), k_req1 => term(), k_req2 => term(), k_wrong1 => pid(), k_wrong2 => pid()}\nContext expected type: #{k_ok => term(), k_req1 := atom(), k_req2 := atom(), k_req3 := atom(), k_wrong1 => atom(), k_wrong2 => atom()}\n```\n```\nBecause in the expression's type:\n Here the type is: #{k_req2 => ..., k_req1 => ..., ...}\n Context expects type: #{k_req3 := ..., k_req2 := ..., k_req1 := ..., ...}\n The type of the expression is missing the following required keys: k_req3, k_req2, k_req1.\n\n------------------------------ Detailed message ------------------------------\n\nkeys `k_req1`, `k_req2`, `k_req3` are declared as required in the latter but not in the former\n```\n> [docs on `incompatible_types`](https://fb.me/eqwalizer_errors#incompatible_types)","docPath":null}
|
||||
{"path":"app_a/src/app_a.erl","line":102,"char":5,"code":"ELP","severity":"error","name":"eqWAlizer: incompatible_types","original":"X","replacement":null,"description":"```lang=error,counterexample\n`X`.\n\nExpression has type: id(#{a := 'va', b := #{c := #{d => atom()}}})\nContext expected type: #{a := 'va', b := #{c := id(#{d := atom(), e := atom()})}}\n```\n```\nBecause in the expression's type:\n #{ b =>\n #{ c =>\n Here the type is: #{d => ..., ...}\n Context expects type: #{d := ..., e := ..., ...}\n The type of the expression is missing the following required keys: d, e.\n , ... }\n , ... }\n\n------------------------------ Detailed message ------------------------------\n\n id(#{a := 'va', b := #{c := #{d => atom()}}}) is not compatible with #{a := 'va', b := #{c := id(#{d := atom(), e := atom()})}}\n because\n #{a := 'va', b := #{c := #{d => atom()}}} is not compatible with #{a := 'va', b := #{c := id(#{d := atom(), e := atom()})}}\n because\n at key `b`:\n #{a := 'va', b := #{c := #{d => atom()}}} is not compatible with #{a := 'va', b := #{c := id(#{d := atom(), e := atom()})}}\n because\n #{c := #{d => atom()}} is not compatible with #{c := id(#{d := atom(), e := atom()})}\n```\n> [docs on `incompatible_types`](https://fb.me/eqwalizer_errors#incompatible_types)","docPath":null}
|
||||
{"path":"app_a/src/app_a.erl","line":125,"char":5,"code":"ELP","severity":"error","name":"eqWAlizer: incompatible_types","original":"X","replacement":null,"description":"```lang=error,counterexample\n`X`.\n\nExpression has type: id(#{a := 'va', b := #{c := #{d := pid(), e := pid()}}})\nContext expected type: #{a := 'va', b := #{c := id(#{d := atom(), e := atom()})}}\n```\n```\nBecause in the expression's type:\n #{ b =>\n #{ c =>\n #{ d =>\n Here the type is: pid()\n Context expects type: atom()\n , ... }\n , ... }\n , ... }\n\n------------------------------ Detailed message ------------------------------\n\n id(#{a := 'va', b := #{c := #{d := pid(), e := pid()}}}) is not compatible with #{a := 'va', b := #{c := id(#{d := atom(), e := atom()})}}\n because\n #{a := 'va', b := #{c := #{d := pid(), e := pid()}}} is not compatible with #{a := 'va', b := #{c := id(#{d := atom(), e := atom()})}}\n because\n at key `b`:\n #{a := 'va', b := #{c := #{d := pid(), e := pid()}}} is not compatible with #{a := 'va', b := #{c := id(#{d := atom(), e := atom()})}}\n because\n #{c := #{d := pid(), e := pid()}} is not compatible with #{c := id(#{d := atom(), e := atom()})}\n```\n> [docs on `incompatible_types`](https://fb.me/eqwalizer_errors#incompatible_types)","docPath":null}
|
||||
{"path":"app_a/src/app_a.erl","line":78,"char":5,"code":"ELP","severity":"error","name":"eqWAlizer: incompatible_types","original":"X","replacement":null,"description":"```lang=error,counterexample\n`X`.\n\nExpression has type: #{k_extra => term(), k_ok => term(), k_req1 => term(), k_req2 => term(), k_wrong1 => pid(), k_wrong2 => pid()}\nContext expected type: #{k_ok => term(), k_req1 := atom(), k_req2 := atom(), k_req3 := atom(), k_wrong1 => atom(), k_wrong2 => atom()}\n```\n```\nBecause in the expression's type:\n Here the type is: #{k_req2 => ..., k_req1 => ..., ...}\n Context expects type: #{k_req3 := ..., k_req2 := ..., k_req1 := ..., ...}\n The type of the expression is missing the following required keys: k_req3, k_req2, k_req1.\n```\n> [docs on `incompatible_types`](https://fb.me/eqwalizer_errors#incompatible_types)","docPath":null}
|
||||
{"path":"app_a/src/app_a.erl","line":102,"char":5,"code":"ELP","severity":"error","name":"eqWAlizer: incompatible_types","original":"X","replacement":null,"description":"```lang=error,counterexample\n`X`.\n\nExpression has type: id(#{a := 'va', b := #{c := #{d => atom()}}})\nContext expected type: #{a := 'va', b := #{c := id(#{d := atom(), e := atom()})}}\n```\n```\nBecause in the expression's type:\n #{ b =>\n #{ c =>\n Here the type is: #{d => ..., ...}\n Context expects type: #{d := ..., e := ..., ...}\n The type of the expression is missing the following required keys: d, e.\n , ... }\n , ... }\n```\n> [docs on `incompatible_types`](https://fb.me/eqwalizer_errors#incompatible_types)","docPath":null}
|
||||
{"path":"app_a/src/app_a.erl","line":125,"char":5,"code":"ELP","severity":"error","name":"eqWAlizer: incompatible_types","original":"X","replacement":null,"description":"```lang=error,counterexample\n`X`.\n\nExpression has type: id(#{a := 'va', b := #{c := #{d := pid(), e := pid()}}})\nContext expected type: #{a := 'va', b := #{c := id(#{d := atom(), e := atom()})}}\n```\n```\nBecause in the expression's type:\n #{ b =>\n #{ c =>\n #{ d =>\n Here the type is: pid()\n Context expects type: atom()\n , ... }\n , ... }\n , ... }\n```\n> [docs on `incompatible_types`](https://fb.me/eqwalizer_errors#incompatible_types)","docPath":null}
|
||||
|
|
|
|||
|
|
@ -44,10 +44,6 @@ Because in the expression's type:
|
|||
Context expects type: #{k_req3 := ..., k_req2 := ..., k_req1 := ..., ...}
|
||||
The type of the expression is missing the following required keys: k_req3, k_req2, k_req1.
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
keys `k_req1`, `k_req2`, `k_req3` are declared as required in the latter but not in the former
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ app_a/src/app_a.erl:102:5
|
||||
│
|
||||
|
|
@ -68,17 +64,6 @@ Because in the expression's type:
|
|||
, ... }
|
||||
, ... }
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
id(#{a := 'va', b := #{c := #{d => atom()}}}) is not compatible with #{a := 'va', b := #{c := id(#{d := atom(), e := atom()})}}
|
||||
because
|
||||
#{a := 'va', b := #{c := #{d => atom()}}} is not compatible with #{a := 'va', b := #{c := id(#{d := atom(), e := atom()})}}
|
||||
because
|
||||
at key `b`:
|
||||
#{a := 'va', b := #{c := #{d => atom()}}} is not compatible with #{a := 'va', b := #{c := id(#{d := atom(), e := atom()})}}
|
||||
because
|
||||
#{c := #{d => atom()}} is not compatible with #{c := id(#{d := atom(), e := atom()})}
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ app_a/src/app_a.erl:125:5
|
||||
│
|
||||
|
|
@ -100,15 +85,4 @@ Because in the expression's type:
|
|||
, ... }
|
||||
, ... }
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
id(#{a := 'va', b := #{c := #{d := pid(), e := pid()}}}) is not compatible with #{a := 'va', b := #{c := id(#{d := atom(), e := atom()})}}
|
||||
because
|
||||
#{a := 'va', b := #{c := #{d := pid(), e := pid()}}} is not compatible with #{a := 'va', b := #{c := id(#{d := atom(), e := atom()})}}
|
||||
because
|
||||
at key `b`:
|
||||
#{a := 'va', b := #{c := #{d := pid(), e := pid()}}} is not compatible with #{a := 'va', b := #{c := id(#{d := atom(), e := atom()})}}
|
||||
because
|
||||
#{c := #{d := pid(), e := pid()}} is not compatible with #{c := id(#{d := atom(), e := atom()})}
|
||||
|
||||
7 ERRORS
|
||||
|
|
|
|||
|
|
@ -50,14 +50,6 @@ Because in the expression's type:
|
|||
No candidate matches in the expected union.
|
||||
]
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
[term()] is not compatible with [T | X]
|
||||
because
|
||||
term() is not compatible with T | X
|
||||
because
|
||||
term() is not compatible with T
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ app_a/src/app_a_lists.erl:1305:15
|
||||
│
|
||||
|
|
@ -75,10 +67,4 @@ Because in the expression's type:
|
|||
Context expects type: T
|
||||
) -> boolean() | {'true', X})
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
fun((T) -> boolean() | {'true', X}) is not compatible with fun((term()) -> boolean() | {'true', term()})
|
||||
because
|
||||
term() is not compatible with T
|
||||
|
||||
7 ERRORS
|
||||
|
|
|
|||
|
|
@ -44,10 +44,6 @@ Because in the expression's type:
|
|||
Context expects type: #{k_req3 := ..., k_req2 := ..., k_req1 := ..., ...}
|
||||
The type of the expression is missing the following required keys: k_req3, k_req2, k_req1.
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
keys `k_req1`, `k_req2`, `k_req3` are declared as required in the latter but not in the former
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ app_a/src/app_a.erl:102:5
|
||||
│
|
||||
|
|
@ -68,17 +64,6 @@ Because in the expression's type:
|
|||
, ... }
|
||||
, ... }
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
id(#{a := 'va', b := #{c := #{d => atom()}}}) is not compatible with #{a := 'va', b := #{c := id(#{d := atom(), e := atom()})}}
|
||||
because
|
||||
#{a := 'va', b := #{c := #{d => atom()}}} is not compatible with #{a := 'va', b := #{c := id(#{d := atom(), e := atom()})}}
|
||||
because
|
||||
at key `b`:
|
||||
#{a := 'va', b := #{c := #{d => atom()}}} is not compatible with #{a := 'va', b := #{c := id(#{d := atom(), e := atom()})}}
|
||||
because
|
||||
#{c := #{d => atom()}} is not compatible with #{c := id(#{d := atom(), e := atom()})}
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ app_a/src/app_a.erl:125:5
|
||||
│
|
||||
|
|
@ -100,17 +85,6 @@ Because in the expression's type:
|
|||
, ... }
|
||||
, ... }
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
id(#{a := 'va', b := #{c := #{d := pid(), e := pid()}}}) is not compatible with #{a := 'va', b := #{c := id(#{d := atom(), e := atom()})}}
|
||||
because
|
||||
#{a := 'va', b := #{c := #{d := pid(), e := pid()}}} is not compatible with #{a := 'va', b := #{c := id(#{d := atom(), e := atom()})}}
|
||||
because
|
||||
at key `b`:
|
||||
#{a := 'va', b := #{c := #{d := pid(), e := pid()}}} is not compatible with #{a := 'va', b := #{c := id(#{d := atom(), e := atom()})}}
|
||||
because
|
||||
#{c := #{d := pid(), e := pid()}} is not compatible with #{c := id(#{d := atom(), e := atom()})}
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ app_a/src/app_a_errors_generated.erl:8:10
|
||||
│
|
||||
|
|
@ -171,14 +145,6 @@ Because in the expression's type:
|
|||
No candidate matches in the expected union.
|
||||
]
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
[term()] is not compatible with [T | X]
|
||||
because
|
||||
term() is not compatible with T | X
|
||||
because
|
||||
term() is not compatible with T
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ app_a/src/app_a_lists.erl:1305:15
|
||||
│
|
||||
|
|
@ -196,12 +162,6 @@ Because in the expression's type:
|
|||
Context expects type: T
|
||||
) -> boolean() | {'true', X})
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
fun((T) -> boolean() | {'true', X}) is not compatible with fun((term()) -> boolean() | {'true', term()})
|
||||
because
|
||||
term() is not compatible with T
|
||||
|
||||
error: type_alias_is_non_productive (See https://fb.me/eqwalizer_errors#type_alias_is_non_productive)
|
||||
┌─ app_a/src/app_a_mod2.erl:22:1
|
||||
│
|
||||
|
|
|
|||
|
|
@ -44,10 +44,6 @@ Because in the expression's type:
|
|||
Context expects type: #{k_req3 := ..., k_req2 := ..., k_req1 := ..., ...}
|
||||
The type of the expression is missing the following required keys: k_req3, k_req2, k_req1.
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
keys `k_req1`, `k_req2`, `k_req3` are declared as required in the latter but not in the former
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ app_a/src/app_a.erl:102:5
|
||||
│
|
||||
|
|
@ -68,17 +64,6 @@ Because in the expression's type:
|
|||
, ... }
|
||||
, ... }
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
id(#{a := 'va', b := #{c := #{d => atom()}}}) is not compatible with #{a := 'va', b := #{c := id(#{d := atom(), e := atom()})}}
|
||||
because
|
||||
#{a := 'va', b := #{c := #{d => atom()}}} is not compatible with #{a := 'va', b := #{c := id(#{d := atom(), e := atom()})}}
|
||||
because
|
||||
at key `b`:
|
||||
#{a := 'va', b := #{c := #{d => atom()}}} is not compatible with #{a := 'va', b := #{c := id(#{d := atom(), e := atom()})}}
|
||||
because
|
||||
#{c := #{d => atom()}} is not compatible with #{c := id(#{d := atom(), e := atom()})}
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ app_a/src/app_a.erl:125:5
|
||||
│
|
||||
|
|
@ -100,17 +85,6 @@ Because in the expression's type:
|
|||
, ... }
|
||||
, ... }
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
id(#{a := 'va', b := #{c := #{d := pid(), e := pid()}}}) is not compatible with #{a := 'va', b := #{c := id(#{d := atom(), e := atom()})}}
|
||||
because
|
||||
#{a := 'va', b := #{c := #{d := pid(), e := pid()}}} is not compatible with #{a := 'va', b := #{c := id(#{d := atom(), e := atom()})}}
|
||||
because
|
||||
at key `b`:
|
||||
#{a := 'va', b := #{c := #{d := pid(), e := pid()}}} is not compatible with #{a := 'va', b := #{c := id(#{d := atom(), e := atom()})}}
|
||||
because
|
||||
#{c := #{d := pid(), e := pid()}} is not compatible with #{c := id(#{d := atom(), e := atom()})}
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ app_a/src/app_a_errors_generated.erl:8:10
|
||||
│
|
||||
|
|
@ -171,14 +145,6 @@ Because in the expression's type:
|
|||
No candidate matches in the expected union.
|
||||
]
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
[term()] is not compatible with [T | X]
|
||||
because
|
||||
term() is not compatible with T | X
|
||||
because
|
||||
term() is not compatible with T
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ app_a/src/app_a_lists.erl:1305:15
|
||||
│
|
||||
|
|
@ -196,12 +162,6 @@ Because in the expression's type:
|
|||
Context expects type: T
|
||||
) -> boolean() | {'true', X})
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
fun((T) -> boolean() | {'true', X}) is not compatible with fun((term()) -> boolean() | {'true', term()})
|
||||
because
|
||||
term() is not compatible with T
|
||||
|
||||
error: type_alias_is_non_productive (See https://fb.me/eqwalizer_errors#type_alias_is_non_productive)
|
||||
┌─ app_a/src/app_a_mod2.erl:22:1
|
||||
│
|
||||
|
|
|
|||
|
|
@ -44,10 +44,6 @@ Because in the expression's type:
|
|||
Context expects type: #{k_req3 := ..., k_req2 := ..., k_req1 := ..., ...}
|
||||
The type of the expression is missing the following required keys: k_req3, k_req2, k_req1.
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
keys `k_req1`, `k_req2`, `k_req3` are declared as required in the latter but not in the former
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ app_a/src/app_a.erl:102:5
|
||||
│
|
||||
|
|
@ -68,17 +64,6 @@ Because in the expression's type:
|
|||
, ... }
|
||||
, ... }
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
id(#{a := 'va', b := #{c := #{d => atom()}}}) is not compatible with #{a := 'va', b := #{c := id(#{d := atom(), e := atom()})}}
|
||||
because
|
||||
#{a := 'va', b := #{c := #{d => atom()}}} is not compatible with #{a := 'va', b := #{c := id(#{d := atom(), e := atom()})}}
|
||||
because
|
||||
at key `b`:
|
||||
#{a := 'va', b := #{c := #{d => atom()}}} is not compatible with #{a := 'va', b := #{c := id(#{d := atom(), e := atom()})}}
|
||||
because
|
||||
#{c := #{d => atom()}} is not compatible with #{c := id(#{d := atom(), e := atom()})}
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ app_a/src/app_a.erl:125:5
|
||||
│
|
||||
|
|
@ -100,17 +85,6 @@ Because in the expression's type:
|
|||
, ... }
|
||||
, ... }
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
id(#{a := 'va', b := #{c := #{d := pid(), e := pid()}}}) is not compatible with #{a := 'va', b := #{c := id(#{d := atom(), e := atom()})}}
|
||||
because
|
||||
#{a := 'va', b := #{c := #{d := pid(), e := pid()}}} is not compatible with #{a := 'va', b := #{c := id(#{d := atom(), e := atom()})}}
|
||||
because
|
||||
at key `b`:
|
||||
#{a := 'va', b := #{c := #{d := pid(), e := pid()}}} is not compatible with #{a := 'va', b := #{c := id(#{d := atom(), e := atom()})}}
|
||||
because
|
||||
#{c := #{d := pid(), e := pid()}} is not compatible with #{c := id(#{d := atom(), e := atom()})}
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ app_a/test/app_a_SUITE.erl:18:5
|
||||
│
|
||||
|
|
@ -179,14 +153,6 @@ Because in the expression's type:
|
|||
No candidate matches in the expected union.
|
||||
]
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
[term()] is not compatible with [T | X]
|
||||
because
|
||||
term() is not compatible with T | X
|
||||
because
|
||||
term() is not compatible with T
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ app_a/src/app_a_lists.erl:1305:15
|
||||
│
|
||||
|
|
@ -204,12 +170,6 @@ Because in the expression's type:
|
|||
Context expects type: T
|
||||
) -> boolean() | {'true', X})
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
fun((T) -> boolean() | {'true', X}) is not compatible with fun((term()) -> boolean() | {'true', term()})
|
||||
because
|
||||
term() is not compatible with T
|
||||
|
||||
error: type_alias_is_non_productive (See https://fb.me/eqwalizer_errors#type_alias_is_non_productive)
|
||||
┌─ app_a/src/app_a_mod2.erl:22:1
|
||||
│
|
||||
|
|
|
|||
|
|
@ -44,10 +44,6 @@ Because in the expression's type:
|
|||
Context expects type: #{k_req3 := ..., k_req2 := ..., k_req1 := ..., ...}
|
||||
The type of the expression is missing the following required keys: k_req3, k_req2, k_req1.
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
keys `k_req1`, `k_req2`, `k_req3` are declared as required in the latter but not in the former
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ app_a/src/app_a.erl:102:5
|
||||
│
|
||||
|
|
@ -68,17 +64,6 @@ Because in the expression's type:
|
|||
, ... }
|
||||
, ... }
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
id(#{a := 'va', b := #{c := #{d => atom()}}}) is not compatible with #{a := 'va', b := #{c := id(#{d := atom(), e := atom()})}}
|
||||
because
|
||||
#{a := 'va', b := #{c := #{d => atom()}}} is not compatible with #{a := 'va', b := #{c := id(#{d := atom(), e := atom()})}}
|
||||
because
|
||||
at key `b`:
|
||||
#{a := 'va', b := #{c := #{d => atom()}}} is not compatible with #{a := 'va', b := #{c := id(#{d := atom(), e := atom()})}}
|
||||
because
|
||||
#{c := #{d => atom()}} is not compatible with #{c := id(#{d := atom(), e := atom()})}
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ app_a/src/app_a.erl:125:5
|
||||
│
|
||||
|
|
@ -100,17 +85,6 @@ Because in the expression's type:
|
|||
, ... }
|
||||
, ... }
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
id(#{a := 'va', b := #{c := #{d := pid(), e := pid()}}}) is not compatible with #{a := 'va', b := #{c := id(#{d := atom(), e := atom()})}}
|
||||
because
|
||||
#{a := 'va', b := #{c := #{d := pid(), e := pid()}}} is not compatible with #{a := 'va', b := #{c := id(#{d := atom(), e := atom()})}}
|
||||
because
|
||||
at key `b`:
|
||||
#{a := 'va', b := #{c := #{d := pid(), e := pid()}}} is not compatible with #{a := 'va', b := #{c := id(#{d := atom(), e := atom()})}}
|
||||
because
|
||||
#{c := #{d := pid(), e := pid()}} is not compatible with #{c := id(#{d := atom(), e := atom()})}
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ app_a/test/app_a_SUITE.erl:18:5
|
||||
│
|
||||
|
|
@ -179,14 +153,6 @@ Because in the expression's type:
|
|||
No candidate matches in the expected union.
|
||||
]
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
[term()] is not compatible with [T | X]
|
||||
because
|
||||
term() is not compatible with T | X
|
||||
because
|
||||
term() is not compatible with T
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ app_a/src/app_a_lists.erl:1305:15
|
||||
│
|
||||
|
|
@ -204,12 +170,6 @@ Because in the expression's type:
|
|||
Context expects type: T
|
||||
) -> boolean() | {'true', X})
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
fun((T) -> boolean() | {'true', X}) is not compatible with fun((term()) -> boolean() | {'true', term()})
|
||||
because
|
||||
term() is not compatible with T
|
||||
|
||||
error: type_alias_is_non_productive (See https://fb.me/eqwalizer_errors#type_alias_is_non_productive)
|
||||
┌─ app_a/src/app_a_mod2.erl:22:1
|
||||
│
|
||||
|
|
|
|||
|
|
@ -44,10 +44,6 @@ Because in the expression's type:
|
|||
Context expects type: #{k_req3 := ..., k_req2 := ..., k_req1 := ..., ...}
|
||||
The type of the expression is missing the following required keys: k_req3, k_req2, k_req1.
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
keys `k_req1`, `k_req2`, `k_req3` are declared as required in the latter but not in the former
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ app_a/src/app_a.erl:102:5
|
||||
│
|
||||
|
|
@ -68,17 +64,6 @@ Because in the expression's type:
|
|||
, ... }
|
||||
, ... }
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
id(#{a := 'va', b := #{c := #{d => atom()}}}) is not compatible with #{a := 'va', b := #{c := id(#{d := atom(), e := atom()})}}
|
||||
because
|
||||
#{a := 'va', b := #{c := #{d => atom()}}} is not compatible with #{a := 'va', b := #{c := id(#{d := atom(), e := atom()})}}
|
||||
because
|
||||
at key `b`:
|
||||
#{a := 'va', b := #{c := #{d => atom()}}} is not compatible with #{a := 'va', b := #{c := id(#{d := atom(), e := atom()})}}
|
||||
because
|
||||
#{c := #{d => atom()}} is not compatible with #{c := id(#{d := atom(), e := atom()})}
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ app_a/src/app_a.erl:125:5
|
||||
│
|
||||
|
|
@ -100,17 +85,6 @@ Because in the expression's type:
|
|||
, ... }
|
||||
, ... }
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
id(#{a := 'va', b := #{c := #{d := pid(), e := pid()}}}) is not compatible with #{a := 'va', b := #{c := id(#{d := atom(), e := atom()})}}
|
||||
because
|
||||
#{a := 'va', b := #{c := #{d := pid(), e := pid()}}} is not compatible with #{a := 'va', b := #{c := id(#{d := atom(), e := atom()})}}
|
||||
because
|
||||
at key `b`:
|
||||
#{a := 'va', b := #{c := #{d := pid(), e := pid()}}} is not compatible with #{a := 'va', b := #{c := id(#{d := atom(), e := atom()})}}
|
||||
because
|
||||
#{c := #{d := pid(), e := pid()}} is not compatible with #{c := id(#{d := atom(), e := atom()})}
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ app_a/src/app_a_errors_generated.erl:8:10
|
||||
│
|
||||
|
|
@ -171,14 +145,6 @@ Because in the expression's type:
|
|||
No candidate matches in the expected union.
|
||||
]
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
[term()] is not compatible with [T | X]
|
||||
because
|
||||
term() is not compatible with T | X
|
||||
because
|
||||
term() is not compatible with T
|
||||
|
||||
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
|
||||
┌─ app_a/src/app_a_lists.erl:1305:15
|
||||
│
|
||||
|
|
@ -196,12 +162,6 @@ Because in the expression's type:
|
|||
Context expects type: T
|
||||
) -> boolean() | {'true', X})
|
||||
|
||||
------------------------------ Detailed message ------------------------------
|
||||
|
||||
fun((T) -> boolean() | {'true', X}) is not compatible with fun((term()) -> boolean() | {'true', term()})
|
||||
because
|
||||
term() is not compatible with T
|
||||
|
||||
error: type_alias_is_non_productive (See https://fb.me/eqwalizer_errors#type_alias_is_non_productive)
|
||||
┌─ app_a/src/app_a_mod2.erl:22:1
|
||||
│
|
||||
|
|
|
|||
|
|
@ -268,7 +268,7 @@ fn test_e2e_eqwalizer_module() {
|
|||
"codeDescription": {
|
||||
"href": "https://fb.me/eqwalizer_errors#incompatible_types"
|
||||
},
|
||||
"message": "`X`.\nExpression has type: #{k_extra => term(), k_ok => term(), k_req1 => term(), k_req2 => term(), k_wrong1 => pid(), k_wrong2 => pid()}\nContext expected type: #{k_ok => term(), k_req1 := atom(), k_req2 := atom(), k_req3 := atom(), k_wrong1 => atom(), k_wrong2 => atom()}\n\nBecause in the expression's type:\n Here the type is: #{k_req2 => ..., k_req1 => ..., ...}\n Context expects type: #{k_req3 := ..., k_req2 := ..., k_req1 := ..., ...}\n The type of the expression is missing the following required keys: k_req3, k_req2, k_req1.\n\n------------------------------ Detailed message ------------------------------\n\nkeys `k_req1`, `k_req2`, `k_req3` are declared as required in the latter but not in the former\n See https://fb.me/eqwalizer_errors#incompatible_types",
|
||||
"message": "`X`.\nExpression has type: #{k_extra => term(), k_ok => term(), k_req1 => term(), k_req2 => term(), k_wrong1 => pid(), k_wrong2 => pid()}\nContext expected type: #{k_ok => term(), k_req1 := atom(), k_req2 := atom(), k_req3 := atom(), k_wrong1 => atom(), k_wrong2 => atom()}\n\nBecause in the expression's type:\n Here the type is: #{k_req2 => ..., k_req1 => ..., ...}\n Context expects type: #{k_req3 := ..., k_req2 := ..., k_req1 := ..., ...}\n The type of the expression is missing the following required keys: k_req3, k_req2, k_req1.\n See https://fb.me/eqwalizer_errors#incompatible_types",
|
||||
"range": {
|
||||
"end": {
|
||||
"character": 5,
|
||||
|
|
@ -287,7 +287,7 @@ fn test_e2e_eqwalizer_module() {
|
|||
"codeDescription": {
|
||||
"href": "https://fb.me/eqwalizer_errors#incompatible_types"
|
||||
},
|
||||
"message": "`X`.\nExpression has type: id(#{a := 'va', b := #{c := #{d => atom()}}})\nContext expected type: #{a := 'va', b := #{c := id(#{d := atom(), e := atom()})}}\n\nBecause in the expression's type:\n #{ b =>\n #{ c =>\n Here the type is: #{d => ..., ...}\n Context expects type: #{d := ..., e := ..., ...}\n The type of the expression is missing the following required keys: d, e.\n , ... }\n , ... }\n\n------------------------------ Detailed message ------------------------------\n\n id(#{a := 'va', b := #{c := #{d => atom()}}}) is not compatible with #{a := 'va', b := #{c := id(#{d := atom(), e := atom()})}}\n because\n #{a := 'va', b := #{c := #{d => atom()}}} is not compatible with #{a := 'va', b := #{c := id(#{d := atom(), e := atom()})}}\n because\n at key `b`:\n #{a := 'va', b := #{c := #{d => atom()}}} is not compatible with #{a := 'va', b := #{c := id(#{d := atom(), e := atom()})}}\n because\n #{c := #{d => atom()}} is not compatible with #{c := id(#{d := atom(), e := atom()})}\n See https://fb.me/eqwalizer_errors#incompatible_types",
|
||||
"message": "`X`.\nExpression has type: id(#{a := 'va', b := #{c := #{d => atom()}}})\nContext expected type: #{a := 'va', b := #{c := id(#{d := atom(), e := atom()})}}\n\nBecause in the expression's type:\n #{ b =>\n #{ c =>\n Here the type is: #{d => ..., ...}\n Context expects type: #{d := ..., e := ..., ...}\n The type of the expression is missing the following required keys: d, e.\n , ... }\n , ... }\n See https://fb.me/eqwalizer_errors#incompatible_types",
|
||||
"range": {
|
||||
"end": {
|
||||
"character": 5,
|
||||
|
|
@ -306,7 +306,7 @@ fn test_e2e_eqwalizer_module() {
|
|||
"codeDescription": {
|
||||
"href": "https://fb.me/eqwalizer_errors#incompatible_types"
|
||||
},
|
||||
"message": "`X`.\nExpression has type: id(#{a := 'va', b := #{c := #{d := pid(), e := pid()}}})\nContext expected type: #{a := 'va', b := #{c := id(#{d := atom(), e := atom()})}}\n\nBecause in the expression's type:\n #{ b =>\n #{ c =>\n #{ d =>\n Here the type is: pid()\n Context expects type: atom()\n , ... }\n , ... }\n , ... }\n\n------------------------------ Detailed message ------------------------------\n\n id(#{a := 'va', b := #{c := #{d := pid(), e := pid()}}}) is not compatible with #{a := 'va', b := #{c := id(#{d := atom(), e := atom()})}}\n because\n #{a := 'va', b := #{c := #{d := pid(), e := pid()}}} is not compatible with #{a := 'va', b := #{c := id(#{d := atom(), e := atom()})}}\n because\n at key `b`:\n #{a := 'va', b := #{c := #{d := pid(), e := pid()}}} is not compatible with #{a := 'va', b := #{c := id(#{d := atom(), e := atom()})}}\n because\n #{c := #{d := pid(), e := pid()}} is not compatible with #{c := id(#{d := atom(), e := atom()})}\n See https://fb.me/eqwalizer_errors#incompatible_types",
|
||||
"message": "`X`.\nExpression has type: id(#{a := 'va', b := #{c := #{d := pid(), e := pid()}}})\nContext expected type: #{a := 'va', b := #{c := id(#{d := atom(), e := atom()})}}\n\nBecause in the expression's type:\n #{ b =>\n #{ c =>\n #{ d =>\n Here the type is: pid()\n Context expects type: atom()\n , ... }\n , ... }\n , ... }\n See https://fb.me/eqwalizer_errors#incompatible_types",
|
||||
"range": {
|
||||
"end": {
|
||||
"character": 5,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue