Skip to content

0.2.0

Compare
Choose a tag to compare
@erszcz erszcz released this 03 Dec 19:45
· 342 commits to master since this release
cad344f

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