summaryrefslogtreecommitdiff
path: root/src/resolver.rs
Commit message (Collapse)AuthorAge
* Fix compilation on rust nightly 1.87.0Ben Bridle2025-03-01
| | | | The API of the extract_if method has changed to also take a range.
* Correctly record references resolved by each definitionBen Bridle2025-02-13
| | | | | Definitions were incorrectly not having resolved references associated with them.
* Create struct for reporting unused definitionsBen Bridle2025-02-13
|
* Report redefinition errorsBen Bridle2025-02-13
| | | | | Previously, the Resolver::error method was only checking for undefined symbols, and not also checking for redefined symbols.
* Create struct for reporting in detail the symbols in a resolverBen Bridle2025-02-10
| | | | This is used for debugging symbol definition and resolution issues.
* Track related symbols in resolverBen Bridle2025-02-10
| | | | | | | | As well as the already-implemented tracking of the existing definition of redefinitions, the resolver will now also track the definition that resolves each reference, and the references resolved by each definition. Instead of using tuples to hold this information, named wrapper structs have been created for each category.
* Log when a source file is merged into the resolverBen Bridle2025-02-08
|
* Support namespaces when resolving symbolsBen Bridle2025-02-08
| | | | | | A definition can resolve a reference in the same or a deeper namespace, allowing for proper scoping and shadowing. Multiple definitions in the same namespace cannot share a name.
* Implement source unit compilation, symbol resolution, error reportingBen Bridle2025-02-05
This library can now carry out all stages of assembly from collecting source fragments to resolving symbols to pruning unused libraries to generating a single compiled source file. Pretty-printing of state has also been implemented in this library. The source tree hierarchy, symbol resolution errors, and file read errors can all be printed in a tidy format.