Skip to content

Latest commit

 

History

History
159 lines (133 loc) · 12.5 KB

CHANGELOG.md

File metadata and controls

159 lines (133 loc) · 12.5 KB

Gradualizer Changelog

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 to test/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(), aka String.t() in Elixir, refinable #392
  • Fix false nonexhaustive record patterns warning #419
  • Fix some self-gradualization errors #408
  • Redefine top() to none() 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