Skip to content

Ensure visitor semantics are preserved from javac #1

@ljnelson

Description

@ljnelson

javac has a chaotic pile of mostly poorly thought-out visitors:

This means you have to pay attention to see, for example, whether captured type variables are actually handled by the visitTypeVar(TypeVar, Object) method instead.

They're all used so infrequently even within javac itself that they're borderline useless.

This visitor hierarchy makes for staggering mental load. When you're looking at an operation that uses a visitor, you have to keep all these rules in your head and also have to understand which methods are overridden by superclasses in order to understand the actual processing logic.

This issue will remain open until I'm satisfied that the various bits of logic here are successfully de-visitorized while retaining the properties of each kind of visitor.

Metadata

Metadata

Assignees

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