Skip to content

Releases: ivov/lisette

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

lisette-v0.3.0

04 Jun 22:54
902550b

Choose a tag to compare

This version contains breaking changes.

  • refactor: stop threading store through inference signatures #597 4890ad5
  • feat: add out-of-domain value lint for closed named primitives #596 c434c3a
  • refactor: share context and walk across checks and lints #595 40f5264
  • feat: add non-negative length comparison lint #593 c268079
  • feat: catch x % 1 in redundant operation lint #592 7f26440
  • ci: flag breaking changes in github release notes #591 823ba05
  • refactor!: rename --format to --output in lis check #590 6b886fe
  • refactor!: remove value enums #588 260463c
  • feat: add redundant operation simplification lint #589 5b834b0
  • feat: add negated equality simplification lint #586 6edc4bf
  • fix: lsp hover improvements #583 c536ba2
  • feat: add let-and-return simplification lint #585 fde3b5b
  • feat: lint match on bool that should be if/else #584 b08193d
  • feat: add match-to-let simplification lint #582 e27c9b7
  • feat: add redundant assert_type lint #580 802bbfd
  • refactor!: rename attributes to #[iterate] and #[display] #578 ba0503e

lisette-v0.2.17

02 Jun 23:03
c38883b

Choose a tag to compare

  • feat: add manual emptiness check lint #577 6dd1cb1
  • feat: add manual compound assignment lint #576 3e569d9
  • fix: make newtype structs and bool-backed named types nominal #575 c3b2f75
  • fix: lsp goto-def on type alias with same name as origin type name #569 801ce11
  • feat: gate stringer synthesis on #[displayable] #574 a9333a9
  • fix: make string value enums nominal #573 6066322
  • fix: make numeric value enums nominal #572 081757a
  • feat: introduce #[displayable] attribute #571 d7acbed
  • refactor: suggest WaitGroup.Go in waitgroup warning #570 190180b
  • refactor: route stringer synthesis through a single gate #568 e60bde0
  • refactor: set up opt-in stringer capability #567 1557c7c
  • fix: lsp autocomplete via non-generic type aliases #563 3ea55c0
  • refactor: reclassify diagnostics #566 afc5027
  • feat: advisory info diagnostics #565 bb13b0a
  • feat: warn on lost url query mutation #564 a5f94c6
  • feat: warn on match with identical arms #562 1a44853
  • feat: warn on closures replaceable by the function itself #561 07fd58a
  • feat: add manual_map lint #560 4c0bcd3
  • feat: add manual_unwrap_or lint #558 0c19819