Module uvls::core::resolve

source ยท
Expand description

Path resolving on file level

Imports between files allow for multiple possible meanings hence depth first search is required This also containes functions for attribute aggregates and path-symbol binding and type checking

  • resolve_file: Type resolving for an AstDocument
  • resolve_*: nameresultion under various conditions.

Structsยง

Enumsยง

Traitsยง

Functionsยง

  • commit_expr ๐Ÿ”’
    Fix types
  • Best effort type resolve for a single tree-sitter expression
  • Find possible types
  • Find all symboles from origin under path
  • Find all attributes in orgin under context, allso gives the prefix for each attribut
  • resolve_constraint ๐Ÿ”’
    Since there can be multiple possible interpretations, two pases are used for equations. First pass: Gather a set of all possible types for each equation side. Second pass: Pick a common type and resolve each expression with the choosen type We could simply forbid alias import and feature names but thats boring.
  • Best effort tupe resolving
  • Find all symboles from origin under path while keeping track of what sections path are bound to what symbol
  • select_type ๐Ÿ”’

Type Aliasesยง