Revert 'Stabilize -Znext-solver=coherence'
This commit is contained in:
parent
5bce6d48ff
commit
e866f8a97d
104 changed files with 578 additions and 392 deletions
|
@ -842,11 +842,6 @@ pub struct NextSolverConfig {
|
|||
/// This is only `true` if `coherence` is also enabled.
|
||||
pub globally: bool,
|
||||
}
|
||||
impl Default for NextSolverConfig {
|
||||
fn default() -> Self {
|
||||
NextSolverConfig { coherence: true, globally: false }
|
||||
}
|
||||
}
|
||||
|
||||
#[derive(Clone)]
|
||||
pub enum Input {
|
||||
|
|
|
@ -403,7 +403,7 @@ mod desc {
|
|||
pub(crate) const parse_unpretty: &str = "`string` or `string=string`";
|
||||
pub(crate) const parse_treat_err_as_bug: &str = "either no value or a non-negative number";
|
||||
pub(crate) const parse_next_solver_config: &str =
|
||||
"either `globally` (when used without an argument), `coherence` (default) or `no`";
|
||||
"a comma separated list of solver configurations: `globally` (default), and `coherence`";
|
||||
pub(crate) const parse_lto: &str =
|
||||
"either a boolean (`yes`, `no`, `on`, `off`, etc), `thin`, `fat`, or omitted";
|
||||
pub(crate) const parse_linker_plugin_lto: &str =
|
||||
|
@ -1105,16 +1105,27 @@ mod parse {
|
|||
}
|
||||
}
|
||||
|
||||
pub(crate) fn parse_next_solver_config(slot: &mut NextSolverConfig, v: Option<&str>) -> bool {
|
||||
pub(crate) fn parse_next_solver_config(
|
||||
slot: &mut Option<NextSolverConfig>,
|
||||
v: Option<&str>,
|
||||
) -> bool {
|
||||
if let Some(config) = v {
|
||||
*slot = match config {
|
||||
"no" => NextSolverConfig { coherence: false, globally: false },
|
||||
"coherence" => NextSolverConfig { coherence: true, globally: false },
|
||||
"globally" => NextSolverConfig { coherence: true, globally: true },
|
||||
_ => return false,
|
||||
};
|
||||
let mut coherence = false;
|
||||
let mut globally = true;
|
||||
for c in config.split(',') {
|
||||
match c {
|
||||
"globally" => globally = true,
|
||||
"coherence" => {
|
||||
globally = false;
|
||||
coherence = true;
|
||||
}
|
||||
_ => return false,
|
||||
}
|
||||
}
|
||||
|
||||
*slot = Some(NextSolverConfig { coherence: coherence || globally, globally });
|
||||
} else {
|
||||
*slot = NextSolverConfig { coherence: true, globally: true };
|
||||
*slot = Some(NextSolverConfig { coherence: true, globally: true });
|
||||
}
|
||||
|
||||
true
|
||||
|
@ -1867,7 +1878,7 @@ options! {
|
|||
"the size at which the `large_assignments` lint starts to be emitted"),
|
||||
mutable_noalias: bool = (true, parse_bool, [TRACKED],
|
||||
"emit noalias metadata for mutable references (default: yes)"),
|
||||
next_solver: NextSolverConfig = (NextSolverConfig::default(), parse_next_solver_config, [TRACKED],
|
||||
next_solver: Option<NextSolverConfig> = (None, parse_next_solver_config, [TRACKED],
|
||||
"enable and configure the next generation trait solver used by rustc"),
|
||||
nll_facts: bool = (false, parse_bool, [UNTRACKED],
|
||||
"dump facts from NLL analysis into side files (default: no)"),
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue