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.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

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