Skip to content

Releases: ivov/lisette

lisette-v0.5.0

24 Jun 21:57
668f724

Choose a tag to compare

Fixes

  • fix: treat ref-type aliases as underlying ref #858 ab1d9fd
  • fix: point go name collision at import alias not path #854 bbad1ee
  • fix: pin internal crate deps exactly and enable semver check #851 3e7f019
  • fix: infer ref binding type when a match arm diverges #849 5aaad1e

Internals

  • refactor: unify pattern-collection effect channel #857 38d16b7
  • refactor: dedupe lsp and passes walks via children() #856 95e8c9a
  • perf: parallelize source-tree dir walk #855 eacc21e
  • chore: rebuild playground and fix stale wasm bindings #852 4b78ffc

lisette-v0.4.4

23 Jun 22:46
2e0f410

Choose a tag to compare

Features

  • feat: capstone test runner #844 a8c2a70
  • feat: in-test logging with t.log #841 9c124a5
  • feat: group test report sections by source file #838 14b6d73
  • feat: discover tests in unimported modules #833 3b7da4e
  • feat: expose unexported go structs as opaque handles #826 4d377ce
  • feat: use geometric glyphs for diagnostics #824 20515fe
  • feat: add --failed flag to lis test #823 6df3852
  • feat: lint manual bit rotation #822 9f7c383
  • feat: lints for redundant f-string nesting and conversions #820 b8c78a4
  • feat: support skipping tests with t.skip #819 aa29884
  • feat: infer TestContext for bare test function param #816 22f4980
  • feat: lint for needless negative count in strings.SplitN #815 0a14d5b
  • feat: rework test report aesthetics #812 efda033
  • feat: lints for enum-name and constructor-name repetition #811 2c20bc0
  • feat: lints for redundant field names and needless struct updates #805 e9038b5
  • feat: add --filter to lis test and support test titles #802 7515779
  • feat: add let assert for refutable test bindings #800 1dcb5fa
  • feat: decompose failing asserts into operand values #797 066e252
  • feat: recognize assert keyword #796 3f859ce
  • feat: lint redundant rebinding of a variable to itself #793 c8ed3d7
  • feat: lint if-let used as an equality check #792 e3e4edf
  • feat: targeted diagnostic for go's make() syntax #791 904ef20
  • feat: lints for while-let, bool-assign, single-element loops #789 240c9af
  • feat: render failing #[test] results as source diagnostics #788 e583f2c
  • feat: improve DX for for and while loops in value position #785 e318ada
  • feat: lints for redundant guards, wildcards, duplicate match arms #784 b8a5c7b
  • feat: introduce TestContext for test functions #783 630ef8c
  • feat: support iterating over iter.Seq and iter.Seq2 in for loops #782 62b3239
  • feat: tighten emitted go output for go-interop result calls #780 bb7091d
  • feat: lints for collapsible match and else-if nesting #779 dab7d5d
  • feat: glow up lis doc #778 451f97a
  • feat: render a grouped report for lis test #777 4881724
  • feat: lints for multiply-by-minus-one and misrefactored assignment #770 d24755f
  • feat: run test functions via lis test #769 f27d2ec

Fixes

  • fix: allow if/else branches to widen to an interface #843 8016767
  • fix: catch mismatched match/select arms in value position #842 703754a
  • fix: improve type-argument handling for VarArgs #831 b53cf2f
  • fix: recover from invalid attribute arguments #836 0933af3
  • fix: print test report to stdout like go test #835 3e2769b
  • fix: wrap long t.skip reasons instead of overflowing #834 383fe03
  • fix: derive subtest tree from t.run source names #832 94ea076
  • fix: truncate large assert operand values in test reports #830 16f7c1c
  • fix: reserve test wrapper handle names to avoid shadowing #829 173d7b8
  • fix: render subtest panics with a source frame #827 5e154cc
  • fix: resolve go subpackage import after cache clear #821 7726cb4
  • fix: preserve value-less const declarations when formatting #817 1c39c0a
  • fix: stop versioned go imports colliding on version segment #807 643e38f
  • fix: relax length comparison lint to skip non-empty checks #806 95767d4
  • fix: make stdlib typedef extraction concurrency-safe #799 e95f500
  • fix: reconstruct go type args for collapsed generics #781 98ea506
  • fix: emit valid go for a shift expression cast to float #775 a84f102
  • fix: em...
Read more

lisette-v0.4.3

17 Jun 21:41
3b4c105

Choose a tag to compare

  • feat: enable cgo for third-party go packages #760 f097c20
  • fix: fall back to constructor heuristic on inconclusive nil analysis #761 50ab4e0
  • feat: lint for an operand and its own negation #759 c2d91fb
  • feat: recognize and validate #[test] functions #758 ad379b2
  • fix: take recursive-enum constructor fields by value #751 1de2f4e
  • refactor: drop the string-setup path from emit #757 d30936d
  • feat: discover .test.lis files and isolate them from production #756 8d4390b
  • feat: lints for slice membership and emptiness checks #755 519f424
  • feat: lints for unnecessary eager and lazy evaluation #754 0bd336e
  • chore: update fuzz lockfile #750 33d6fbe
  • refactor: extract the post-inference passes into their own crate #749 4c41014
  • feat: go-to-definition for prelude symbols #748 a56fd02
  • refactor: decouple inference from the post-inference passes #747 ac3a457
  • feat: inlay hint additons #742 ebd6ef2
  • feat: introduce #[equality] attribute #746 3a273a3
  • fix: reject VarArgs in non-last parameter position #743 ab535ad
  • feat: lints for needless question mark and manual option zip #744 4a40051

lisette-v0.4.2

15 Jun 22:25
a0e24cd

Choose a tag to compare

  • refactor: rename info summary count label to advisories #741 410b75e
  • feat: inlay hints for parameter names at call sites #740 70fb4a1
  • ci: build bindgen unoptimized to speed up stdlib check #739 4d8d558
  • feat: show parameter names in LSP signature help #738 0bc93c7
  • feat: lints for option/result combinator simplifications #737 63807bf
  • ci: cache the go build output for e2e suite #736 6a004df
  • feat: deep equality for slices and maps of equatable types #735 f331d8f
  • ci: run on main to warm the pull request cache #734 7b727d1
  • feat: lints for option/result match simplifications #733 6fccf25
  • ci: split unit tests from main suite #732 559b60c
  • fix: track equals liveness per receiver type #731 edb638c
  • fix: reject unrepresentable receiver method bounds #730 8a18611
  • refactor: prep for semantics crate split #729 bc16ce7
  • feat: lint for botched variable swaps #728 c5a4cc6
  • feat: lint for min/max clamp mistakes #726 4b54e8a

lisette-v0.4.1

14 Jun 21:13
15bba77

Choose a tag to compare

  • test: render remaining emit snapshot descriptions as yaml blocks #725 414e81b
  • fix: correct UFCS lowering and generic type args #724 2ce2570
  • feat: lint for float comparison hazards and NaN casts #723 6a316fe
  • feat: add LSP inlay type hints for let bindings #722 c61d141
  • feat: lint for faulty bit masks and equal operands #721 b23d692
  • refactor: tighten bindgen for maintainability #720 efde06b
  • ci: stop requiring zed extension version bump on grammar change #718 13a3231
  • refactor: rework cli styling #717 27d427e
  • chore: rebuild playground #716 66677a1
  • feat: add equals method for slices and maps #715 2c69536
  • feat: flag impossible, redundant, and combinable comparisons #712 8fbcb7f

lisette-v0.4.0

13 Jun 15:40
89dabd3

Choose a tag to compare

This version contains breaking changes.

  • feat: advise against recompiling a regexp in a loop #710 b88540d
  • feat: go-to-definition for go stdlib symbols #684 5126fad
  • fix: stop generated imports from colliding with user names #709 d627ae1
  • feat: warn on leaked context from uncalled cancel func #708 b39bc39
  • feat: support method expressions on promoted methods #707 6dc0e2c
  • feat!: make lis build produce a binary #706 6f0b0f5
  • feat: warn on use of deprecated Go APIs #705 252aade
  • chore: remove benchmark crate #704 9885735
  • refactor!: rename --debug to --sourcemap #703 c5245f4
  • feat: allow suppressing more lints via #[allow] #702 ce4c0fa
  • refactor!: drop impl for interface embedding in favor of embed #701 15563f9
  • feat: warn when os.Exit skips a defer #700 2d22251
  • refactor: finish migrating emit statements to structured IR #699 e3701db
  • perf: run independent pass groups concurrently #698 06a0aa2
  • perf: stop cloning function bodies during emit #696 cbe4d70

lisette-v0.3.4

11 Jun 23:18
964f940

Choose a tag to compare

  • docs: document embedding imported Go types #695 d027dbd
  • fix: adjust diagnostics for var #694 8617a15
  • feat: promote methods through unexported Go embeds #693 14e9316
  • fix: enforce sealing of imported Go interfaces #692 b1db049
  • test: render snapshot descriptions as yaml literal blocks #691 ff2c70a
  • feat: add lis emit to CLI #689 f130d63
  • refactor: reshape lis run onto build-then-exec #688 bd807f9
  • feat: broaden imported types accepted as embed targets #687 a3edafa
  • chore: upgrade to insta 1.48.0 #686 eb77a81
  • perf: parallelize module registration #685 d197b78
  • refactor: replace text-scanned liveness with structural tracking #683 35aa700
  • fix: reject non-comparable interface and unknown equality #682 ddd6bc0
  • refactor: de-flatten imported struct embeds #681 1bd8dfc
  • feat: broaden match-to-if-let lint coverage #680 244fe2a
  • perf: dispatch ast walk checks by expression kind #679 202244a
  • perf: memoize global enum layouts and generic constraints in emit #677 1827dc0
  • test: add imported types to embed harness #676 aeeca19
  • feat: embedding for generic structs #674 2fef804
  • perf: freeze types in place instead of rebuilding the ast #673 156652c
  • fix: reject namespace used as a value #671 c9e1eec
  • feat: hover and go-to-definition on promoted members #667 f181b25

lisette-v0.3.3

08 Jun 21:39
ee5e6e4

Choose a tag to compare

  • feat: support embedding in native structs #666 eec2ea2
  • refactor: replace impl with embed for interface embedding #664 18d7902
  • test: differential harness for struct and interface embedding #663 b580f92
  • fix: skip manual_map_or lint on side-effecting match arms #662 ecb5ed8
  • fix: type unexported singleton vars by their implemented interface #661 be8e0f2
  • fix: prevent go types from shadowing prelude generics #660 e0f036b
  • feat: add Result.wrap_err to attach context to errors #658 668cab7
  • fix: keep f-string interpolations single-line #657 ee4f66a

lisette-v0.3.2

07 Jun 20:54
b2a1478

Choose a tag to compare

  • fix: cross-module reference tracking in unused lints #651 64b9dc7
  • refactor: introduce embed keyword #650 cd78bfb
  • feat: lint for type limit comparison #648 f8757f5
  • fix: classify compound wrappers by qualified id #646 192df75
  • refactor: store type attributes as a map #647 7063de2
  • feat: bind go anonymous struct types #644 3a44617
  • feat: add redundant else lint #643 8f8b584
  • feat: add manual find simplification lint #642 6e44a27
  • fix: tuple-struct and newtype pattern exhaustiveness #641 1fd5350
  • test: move sync tests in-process #640 85d8c44
  • fix: zero-fill emit for newtype and tuple-struct fields #637 8b68e65

lisette-v0.3.1

06 Jun 21:14
0c29b27

Choose a tag to compare

  • feat: add map_or_else to Result #633 d5939f7
  • feat: add manual map_or simplification lint #632 fc4e772
  • fix: exclude #[display] struct fields from the unused-field lint #631 100d37d
  • fix: stop lis doc mangling third-party module paths #630 f376290
  • fix: suggest cmp.Ordered bound when comparing unbounded generics #629 a17a67a
  • refactor: continue collapsing emit layer into IR #628 ae8ca07
  • fix: resolve shadowed builtin types in type position #627 3109a37
  • fix: stack overflow when zero-filling a function-alias field #626 127d4e1
  • feat: add collapsible if lint #625 fc77943
  • feat: reject legacy octal integer literals #624 94c1747
  • feat: add single-arm select lint #622 80e1837
  • feat: add manual strings.ReplaceAll lint #621 2a88406
  • feat: add redundant slice bounds lint #620 eb6f3f4
  • feat: add redundant Sprintf lint #619 e515873
  • refactor: dedupe emit coercion, call, and abi helpers #618 f3db058
  • feat: add manual bytes.Equal lint #616 d909ca0
  • docs: clarify interop directions #617 6b78dba
  • feat: add manual time.Until lint #615 1d8000d
  • feat: add manual time.Since lint #614 375a226
  • feat: offer lsp attribute completions on #[ #613 9f28fff
  • refactor: make the scope stack the single source for return context #611 244a089
  • perf: share function signatures via Arc instead of deep-cloning #610 3687940
  • feat: add inefficient comparison lint #609 d67fda2
  • fix: pin generic impl type params during interface satisfaction #608 f7b8201
  • perf: cache module field projections, skip redundant type resolves #607 267f64f
  • fix: enforce pointer-receiver rule through generic bounds #606 8c46015
  • refactor: add misplaced attribute diagnostic #605 ae95f55
  • perf: stop cloning function and lambda signatures twice #604 63987ec
  • refactor: rebuild tree-sitter parser if stale in nvim #603 84b56f6
  • feat: add goos/goarch unknown-value comparison lint #602 9e7a38f
  • perf: cut allocations in semantic analysis hot paths #601 cdfa21c
  • feat: add integer division to zero lint #599 814bbb3