Skip to content

Printer: synthetic members are not filtered from output #115

Description

@rochala

Compiler-generated members show up in get/get-external output, drowning out the real API.

Repro:

cellar get-external com.lihaoyi:os-lib_3:latest os.proc
cellar get-external com.lihaoyi:requests_3:latest requests.Requester

Observed (mixed into real members):

def call$default$2Map[Predef.String, Predef.String]   // default-getter methods
def stream$default$22Function1[StreamHeaders, Unit]
symbol[Mirror.MirroredElemLabels]                      // Mirror synthetics on case-class companions
symbol[Mirror.MirroredLabel]
def <clinit>(): Unit                                   // static initializer (StringUtils)
def <init>(): Unit                                     // repeated several times in one listing

For requests.Requester the synthetic $default$N getters outnumber the real methods, so with --limit 8 the listing shows almost nothing but synthetics.

Expected: default-parameter getters, Mirror synthetics, <clinit>, and duplicate constructors are filtered (or at least hidden by default behind a flag). Default arguments would ideally surface as = <default> markers on the corresponding parameters instead.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions