Skip to content

Small L1/L3 correctness gaps (defined interfaces, embedded-interface panics, builtin callees, symlinks) #24

Closed as not planned

Description

@sinha108

Describe the bug
Several small correctness gaps, each rare, found by the reviews of PR #16:

  1. type I2 I1 (a defined type over an interface) gets kind: interface but no methods or base types; its method set is not populated from the underlying interface.
  2. Panic detection misses a method value taken through a struct that embeds an interface (s.M where s embeds a nil interface), so no exception edge is added.
  3. A method value on a receiver whose type failed to type-check is recorded as a field path (req.Set) in ddg var. Cosmetic.
  4. Calls on builtin-scope types, such as err.Error(), get a junk internal callee signature (.error.Error). The emitted callee is correctly null, but the internal value is wrong.
  5. Library detection compares paths with filepath.Abs but not EvalSymlinks, so a symlinked project directory can misclassify files.

To Reproduce
Each item names its construct. Fixtures for 1–4 fit in testdata/dataflow.

Expected behavior

  1. Methods and base types populated.
  2. An exception edge.
  3. A method use, not a field.
  4. No signature recorded.
  5. Symlinks resolved before comparing.

Logs
Not applicable.

Additional context
Low priority; grouped to avoid five tiny issues. Split any that grows.

Activity

  1. sinha108 commented on Oct 25, 2026

    @sinha108
    ContributorAuthor

    Consolidated into #28, which carries this issue's full detail.

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

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions