Changelog generated with github-changelog
,
the following command for each pair of tags, and a bit of manual editing:
changelog -m --branch master josefs gradualizer 0.1.3 0.2.0 >> CHANGELOG.md
2023-06-16 - 0.3.0
Release highlights:
- Improve map exhaustiveness checking #524 by @xxdavid
- Fix all remaining self-check errors #521 by @erszcz
- Fix intersection-typed function calls with union-typed arguments #514 by @erszcz
- Experimental constraint solver #450 by @erszcz
Full list of merged PRs:
- Binary comprehension #201 by @NelsonVides
- Improve map exhaustiveness checking #524 by @xxdavid
- Log changes to variable types in #env.venv #541 by @erszcz
- Disallow timeouts in tests #535 by @xxdavid
- Add known problem: not checking for unreachable clauses with intersections #539 by @xxdavid
- Add
apps
option to rebar3 commands #538 by @gonzalobf - Add some Rebar3 plugin debug logging #532 by @erszcz
- Fix var binds in guard sequences #533 by @erszcz
- Document the compat_seen function #528 by @xxdavid
- fold guard chain #525 by @bartekgorny
- Fix all remaining self-check errors #521 by @erszcz
- New known problem: refine bound vars with guards #520 by @erszcz
- Fix handling of module_info for arities > 1 #500 by @xxdavid
- Don't discard annotation in instantiate/2 #517 by @erszcz
- Join var binds in add_type_pat_union/3 with least upper bound not greatest lower bound #512 by @erszcz
- Fix intersection-typed function calls with union-typed arguments #514 by @erszcz
- Print inferred argument types on call_intersect error #491 by @erszcz
- Fix exhaustiveness checking for union types #505 by @xxdavid
- Make the solver results deterministic #511 by @erszcz
- Type refinement of map keys and values #509 by @zuiderkwast
- Drop invalid lists:filtermap/2 known problem #506 by @erszcz
- Fix yet more self check errors #504 by @erszcz
- Constraint solver limitation known problem test and a workaround #503 by @erszcz
- Fix more self check errors #502 by @erszcz
- Experimental constraint solver #450 by @erszcz
- Require all functions in src/typechecker.erl to have specs #499 by @erszcz
- Fix specs introduced with Mod:module_info/1,2 support #498 by @erszcz
- Add support for module_info functions #496 by @xxdavid
- Add a Hex badge to README #495 by @erszcz
2022-12-02 - 0.2.0
Release highlights:
- Use ExDoc #456
- Function intersections #461
- Fix more infinite loops #458
- Add
gradualizer_tracer
for efficient troubleshooting #454 - Enable Dialyzer and ETC cross checks #429
- Fix some self-gradualization errors #408
- Point README at Gradient instead of discontinued Gradualixir #396
- Property based tests to find bugs #363
- Add a GitHub Actions CI workflow #343
- Non-trivial sum type exhaustiveness checking #330
Full list of merged PRs:
- Add known problem for unsupported maybe expression #489
- Override filename specs #487
- Use ExDoc #456
- Define some shell utils for interactive work with Gradualizer #455
- Move test from
test/known_problems/should_pass/intersection.erl
totest/should_pass/intersection_pass.erl
#486 - Expand
erlang:'++'
function specs #485 - Function intersections #461
- fix GitHub reference in rebar3 example README #482
- Override the spec of
erlang:error/3
too #481 - Fix
erlang:error/2
spec #478 - add xref ignores to header file defining
::
/:::
#475 - Expand user types in record unions #469
- Handle
non_neg_integer() + pos_integer() :: pos_integer()
properly #465 - Fix integer user type alias #463
- Add
install-asdf
rule to Makefile #459 - Housekeeping #460
- Fix more infinite loops #458
- Fix map type inference #457
- Add
gradualizer_tracer
for efficient troubleshooting #454 - Housekeeping #453
- Fix some infinite loops #452
- Fix crash when a record union contains
any()
#447 merge_with
in OTP 24! #335- Add specs for
++/2
and--/2
#440 - Propagate var binds across list comprehension filters #444
- Remove
.envrc
#443 - Fix more self check errors #441
- Fix
gradualizer_int:int_type_to_range/1
crash #439 - Fix record field access type check crash #436
- Add examples of list comprehension generators being
none()
#434 - Export function in tests to fix a Dialyzer error #431
- Fix Dialyzer warning in tests #430
- Enable Dialyzer and ETC cross checks #429
- Another batch of type error fixes #427
- Simplify
refinable(#{})
#424 - Make an empty
map()
refinable #420 - Make
binary()
, akaString.t()
in Elixir, refinable #392 - Fix false nonexhaustive record patterns warning #419
- Fix some self-gradualization errors #408
- Redefine
top()
tonone()
to clean up remaining compilation warnings #402 - Always throw
call_undef
with raw module, function, and arity #415 - Fix list exhaustiveness checking regressions #404
- Salvage exhaustiveness checking improvements #403
- Check exhaustiveness argument-wise #391
- Point README at Gradient instead of discontinued Gradualixir #396
- Fix variable bind before a record pattern match in function head #397
- Fix
pp_type({var, ..., _})
#401 - Fix for map pattern "doesn't have type any()" warning #389
- Temporary measure: break cycles by timing out #383
- Recover position information for
undef
/not_exported
type errors #384 - Provide the git commit sha when asked for
--version
in CLI #385 - Fix typos #377
- Call
remove_pos
only where a type comes into the system #375 - Property based tests to find bugs #363
- Allow giving include path to erl files imported into db #344
- Add a GitHub Actions CI workflow #343
- Non-trivial sum type exhaustiveness checking #330
- Extract type env from typechecker.erl and convert it to a map #333
2021-02-18 - 0.1.3
- Record update missing fields fix #314
- Any type fix within complex patterns #315
- should_fail/intersection_with_any - one more example #305
- Compile test data before gradualizing #303
2020-11-06 - 0.1.2
- Expand dirs in rebar so exclusion works #296
2020-11-02 - 0.1.1
- Warning and shadowing #293
2020-10-19 - 0.1.0
- Record refinement #271
- Bit syntax integer signedness #283
- More tests for opaque types #277
- Allow type refinement in the presence of matching opaque types. #276
- Increase coverage #260
- Normalize annotated types #228
- Returning incorrectly typed map should fail #238
- Accept var in update_map_type #237
- Add failing named_record_arg/1 test #225
- Fix broken CLI features and add CLI tests #189