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 @@ impl Compiler {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 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<()> {
|
pub fn compile(&self) -> Result<()> {
|
||||||
self.prepare_outputs()?;
|
self.prepare_outputs()?;
|
||||||
|
|
||||||
@ -286,12 +291,12 @@ impl Compiler {
|
|||||||
|
|
||||||
self.global_ctxt()?;
|
self.global_ctxt()?;
|
||||||
|
|
||||||
// Drop AST after creating GlobalCtxt to free memory
|
// Drop AST after creating GlobalCtxt to free memory.
|
||||||
mem::drop(self.expansion()?.take());
|
mem::drop(self.expansion()?.take());
|
||||||
|
|
||||||
self.ongoing_codegen()?;
|
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());
|
mem::drop(self.global_ctxt()?.take());
|
||||||
|
|
||||||
self.link().map(|_| ())
|
self.link().map(|_| ())
|
||||||
|
@ -62,6 +62,7 @@ fn compile(code: String, output: PathBuf, sysroot: PathBuf) {
|
|||||||
};
|
};
|
||||||
|
|
||||||
interface::run_compiler(config, |compiler| {
|
interface::run_compiler(config, |compiler| {
|
||||||
compiler.compile().ok();
|
// This runs all the passes prior to linking, too.
|
||||||
|
compiler.link().ok();
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user