Resolution handler#1068
Conversation
a7ce31a to
a61d9e9
Compare
fd31a02 to
06381f9
Compare
ec49518 to
5430d93
Compare
685f878 to
1069810
Compare
f28fd37 to
d0b347d
Compare
caa2daf to
f97a007
Compare
f97a007 to
bee0e97
Compare
109a9dd to
2154b82
Compare
2154b82 to
6b7285d
Compare
6b7285d to
638b370
Compare
638b370 to
805bc7d
Compare
805bc7d to
561a00e
Compare
dd37913 to
fcd1b03
Compare
6e25b2d to
74e6d42
Compare
250ff12 to
7e78a71
Compare
I think we should drop support for specifying a custom core lib, and only support a custom std lib (when we figure out what the std lib should be). Core should be limited to things that wouldn't be interesting to replace. The compiler depends on core containing a certain set of traits and impls. |
micahscopes
left a comment
There was a problem hiding this comment.
Overall looks good to me! Only changes I'd suggest are organizational:
- keeping the tree structure out of
commoncrate since it's part of a pretty specific feature - using less generic names for the dependency graph stuff in common
There was a problem hiding this comment.
What's your thinking for keeping this in common vs in fe or in the resolver?
There was a problem hiding this comment.
this is used in both the driver and fe crates to format trees. fe is off the table due to driver needing it and seeing as this module just deals with the printing of dependency trees I don't think it belongs in the resolver crate.
There was a problem hiding this comment.
The naming in here seems pretty generic, any reason not to have more specific naming, even just at the module level? So that we could have something like dependencies::Graph or dependency_info::Graph? Or were you thinking this could potentially be useful for creating lots of different kinds of graphs, not just for dependencies?
There was a problem hiding this comment.
I think this makes sense. the dependency tree formatting stuff could also be moved into that module, which would maybe make things a bit cleaner.
There was a problem hiding this comment.
Loving all these consolidations 😎
This adds support for ingot dependencies on the file system. It includes significant changes to the resolver that make it more flexible. The new resolver is used in the driver crate to transitively initialize ingots and their dependencies via the
init_ingotfunction. This driver function is used by both the language server and check subcommand to setup the input database. The resolver is also used directly in the tree subcommand to generate a tree representation of dependencies, without the overhead that would come from using theinit_ingotfunction.Followup items:
--coreflag.