diff options
| author | bstrie <bstrie@thinwsl> | 2020-12-09 18:26:42 -0500 |
|---|---|---|
| committer | bstrie <bstrie@thinwsl> | 2020-12-16 13:21:24 -0500 |
| commit | 1e1ca28f395b4c43cc2781676dafffd4f3269989 (patch) | |
| tree | d6e6fe077ae1416f3e3876f06a51738655214416 /compiler/rustc_passes/src | |
| parent | 2ba7ca2bbbff6cd424aebc654308febc00b9497a (diff) | |
| download | rust-1e1ca28f395b4c43cc2781676dafffd4f3269989.tar.gz rust-1e1ca28f395b4c43cc2781676dafffd4f3269989.zip | |
Allow `since="TBD"` for rustc_deprecated
Diffstat (limited to 'compiler/rustc_passes/src')
| -rw-r--r-- | compiler/rustc_passes/src/stability.rs | 44 |
1 files changed, 24 insertions, 20 deletions
diff --git a/compiler/rustc_passes/src/stability.rs b/compiler/rustc_passes/src/stability.rs index f6bbbd80bf1..3c2462aab26 100644 --- a/compiler/rustc_passes/src/stability.rs +++ b/compiler/rustc_passes/src/stability.rs @@ -182,28 +182,32 @@ impl<'a, 'tcx> Annotator<'a, 'tcx> { for (dep_v, stab_v) in dep_since.as_str().split('.').zip(stab_since.as_str().split('.')) { - if let (Ok(dep_v), Ok(stab_v)) = (dep_v.parse::<u64>(), stab_v.parse()) { - match dep_v.cmp(&stab_v) { - Ordering::Less => { - self.tcx.sess.span_err( - item_sp, - "An API can't be stabilized \ - after it is deprecated", - ); + match stab_v.parse::<u64>() { + Err(_) => { + self.tcx.sess.span_err(item_sp, "Invalid stability version found"); + break; + } + Ok(stab_vp) => match dep_v.parse::<u64>() { + Ok(dep_vp) => match dep_vp.cmp(&stab_vp) { + Ordering::Less => { + self.tcx.sess.span_err( + item_sp, + "An API can't be stabilized after it is deprecated", + ); + break; + } + Ordering::Equal => continue, + Ordering::Greater => break, + }, + Err(_) => { + if dep_v != "TBD" { + self.tcx + .sess + .span_err(item_sp, "Invalid deprecation version found"); + } break; } - Ordering::Equal => continue, - Ordering::Greater => break, - } - } else { - // Act like it isn't less because the question is now nonsensical, - // and this makes us not do anything else interesting. - self.tcx.sess.span_err( - item_sp, - "Invalid stability or deprecation \ - version found", - ); - break; + }, } } } |
