Add a comment to Compiler::compile()
.
`Compiler::compile()` is different to all the other `Compiler` methods because it lacks a `Queries` entry. It only has one call site, which is in a test that doesn't need its specific characteristics. This patch replaces that call with a call to `Compile::link()`, which is similar enough for the test's purposes. It also notes that the method is an illustrative example of how `Compiler` can be used.
This commit is contained in:
parent
d264a56068
commit
2521189438
@ -275,6 +275,11 @@ pub fn link(&self) -> Result<&Query<()>> {
|
||||
})
|
||||
}
|
||||
|
||||
// This method is different to all the other methods in `Compiler` because
|
||||
// it lacks a `Queries` entry. It's also not currently used. It does serve
|
||||
// as an example of how `Compiler` can be used, with additional steps added
|
||||
// between some passes. And see `rustc_driver::run_compiler` for a more
|
||||
// complex example.
|
||||
pub fn compile(&self) -> Result<()> {
|
||||
self.prepare_outputs()?;
|
||||
|
||||
@ -286,12 +291,12 @@ pub fn compile(&self) -> Result<()> {
|
||||
|
||||
self.global_ctxt()?;
|
||||
|
||||
// Drop AST after creating GlobalCtxt to free memory
|
||||
// Drop AST after creating GlobalCtxt to free memory.
|
||||
mem::drop(self.expansion()?.take());
|
||||
|
||||
self.ongoing_codegen()?;
|
||||
|
||||
// Drop GlobalCtxt after starting codegen to free memory
|
||||
// Drop GlobalCtxt after starting codegen to free memory.
|
||||
mem::drop(self.global_ctxt()?.take());
|
||||
|
||||
self.link().map(|_| ())
|
||||
|
@ -62,6 +62,7 @@ fn compile(code: String, output: PathBuf, sysroot: PathBuf) {
|
||||
};
|
||||
|
||||
interface::run_compiler(config, |compiler| {
|
||||
compiler.compile().ok();
|
||||
// This runs all the passes prior to linking, too.
|
||||
compiler.link().ok();
|
||||
});
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user