Skip to content

Make Symbol BaseType resolution entirely lazy #193

@aBothe

Description

@aBothe

When resolving symbols, just return a DSymbol featuring information where a future resolver may get a basetype from.

The information required for later symbol evaluation is essentially a clone of the ResolutionContext that was passed to the place where the first symbol should be resolved.
ResolutionContext References to caches shall be kept original in order to avoid unnecessary double resolutions.

  • What about template parameters and deduced types in general? Will they share some sort of DeducedTypeDictionary?
  • What about fully resolving template parameters when trying to deduce symbols? - Well, just keep resolving them, and if any of its symbolic value is needed, it'll be resolved later on.
  • What kinds of visitors shall be changed so they'll not visit the base type unnecessarily?
  • What about the anticipated immutabitility of AbstractTypes? Screw immutability, we want performance + the results are being discarded on the next fly to resolve stuff later on anyway!

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions