Skip to content

v0.8.4 — Blocks Rails runs on an instance are read there even from a concern's ClassMethods; a call in a block of unknown self is never ruled out; memoized readers and X.new bodies type their callers. Store v54: trekr reindexes once after upgrading.

Choose a tag to compare

@dpep dpep released this 01 Oct 16:09
· 461 commits to main since this release
58dba19
  • The index format changed: trekr reindexes each checkout once after
    upgrading.
  • A call on a memoized or attr_reader accessor is typed.
    url_builder.verify(…) with def url_builder; @url_builder ||= UrlBuilder.new; end is now confirmed for UrlBuilder#verify and ruled
    out for other classes' verify; so is a reader of an @x every write of
    which (in its file) is X.new, and one whose body is X.new. Not when
    writes disagree, an attr_accessor lets anyone set it, or a subclass
    overrides the reader.
  • A callback or rescue_from block in a concern's class method runs on
    the includer's instance
    : rescue_from Error do … respond_error(e) end
    inside module ClassMethods (or class_methods do) now counts as a call
    of the concern's respond_error, so --dead no longer calls it
    unreferenced.
  • A call inside a block handed to a DSL is never ruled out as "no such
    method".
    A block passed to anything but Ruby's own methods may run on
    another object (draw do, a scope proc, a gem's configure block), so
    --refs lists such a call as possible and --dead counts it, instead
    of treating its target as unreferenced.
  • x = Class.new(Base) no longer types x as an instance of Class, which
    ruled out the class methods sent to it.