Skip to content

Java type parameters are emitted as type-reference nodes #1517

Description

@oleksii-tumanov

Context

Follow-up to #1511. On v8 (0.8.51), declared Java type parameters become sourceless type nodes and references edges.

Reproducer

class Base<X> {}

class Box<T> extends Base<T> {
    T value;
    List<T> values;

    <U> U convert(T input, List<U> mapped) {
        return null;
    }
}

Cache result

Label-normalized relevant excerpt from graphify-out/cache/ast/v0.8.51/<content-hash>.json:

{
  "nodes": [
    {"label": "T", "source_file": ""},
    {"label": "U", "source_file": ""}
  ],
  "edges": [
    {"source": "Box", "target": "T", "relation": "references", "context": "generic_arg"},
    {"source": "Box", "target": "T", "relation": "references", "context": "field"},
    {"source": "convert", "target": "T", "relation": "references", "context": "parameter_type"},
    {"source": "convert", "target": "U", "relation": "references", "context": "return_type"}
  ]
}

Expected

Do not create nodes or reference edges for declared T and U. Keep real relationships to Base and List.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions