flux-rs / flux

Refinement Types for Rust
MIT License
581 stars 17 forks source link

Implement global resolver #610

Closed nilehmann closed 5 months ago

nilehmann commented 5 months ago

Implement name resolution by walking down the hir and collecting names. This is a best-effort implementation and doesn't capture all the edges from rust name resolution and it can lead to false positives. Still, it allows us to infer names in simple cases where the names cannot be grabbed directly from the item being resolved. This doesn't remove the table-based local resolver, that one is still used as the primary source. In the future, if we improve the global resolver enough, we may remove the table resolver.