Skip to content

Commit

Permalink
Rollup merge of rust-lang#49985 - zackmdavis:0, r=estebank
Browse files Browse the repository at this point in the history
don't see issue #0

The unstable-feature attribute requires an issue (neglecting it is
E0547), which gets used in the error messages. Unfortunately, there are
some cases where "0" is apparently used a placeholder where no issue
exists, directing the user to see the (nonexistent) issue #0. (It would
have been better to either let `issue` be optional—compare to how issue
is an `Option<u32>` in the feature-gate declarations in
libsyntax/feature-gate.rs—or actually require that an issue be created.)
Rather than endeavoring to change how `#[unstable]` works at this time
(given competing contributor and reviewer priorities), this simple patch
proposes the less-ambitious solution of just not adding the "(see
issue)" note when the number is zero.

Resolves rust-lang#49983.
  • Loading branch information
kennytm committed Apr 24, 2018
2 parents 6b1ed8e + e77110e commit 7c552a2
Show file tree
Hide file tree
Showing 3 changed files with 30 additions and 4 deletions.
7 changes: 3 additions & 4 deletions src/libsyntax/feature_gate.rs
Original file line number Diff line number Diff line change
Expand Up @@ -1242,10 +1242,9 @@ fn leveled_feature_err<'a>(sess: &'a ParseSess, feature: &str, span: Span, issue
GateIssue::Library(lib) => lib,
};

let explanation = if let Some(n) = issue {
format!("{} (see issue #{})", explain, n)
} else {
explain.to_owned()
let explanation = match issue {
None | Some(0) => explain.to_owned(),
Some(n) => format!("{} (see issue #{})", explain, n)
};

let mut err = match level {
Expand Down
16 changes: 16 additions & 0 deletions src/test/ui/feature-gate/issue-49983-see-issue-0.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
// Copyright 2018 The Rust Project Developers. See the COPYRIGHT
// file at the top-level directory of this distribution and at
// http://rust-lang.org/COPYRIGHT.
//
// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
// option. This file may not be copied, modified, or distributed
// except according to those terms.

extern crate core;

// error should not say "(see issue #0)"
#[allow(unused_imports)] use core::ptr::Unique; //~ ERROR use of unstable library feature

fn main() {}
11 changes: 11 additions & 0 deletions src/test/ui/feature-gate/issue-49983-see-issue-0.stderr
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
error[E0658]: use of unstable library feature 'ptr_internals': use NonNull instead and consider PhantomData<T> (if you also use #[may_dangle]), Send, and/or Sync
--> $DIR/issue-49983-see-issue-0.rs:14:30
|
LL | #[allow(unused_imports)] use core::ptr::Unique; //~ ERROR use of unstable library feature
| ^^^^^^^^^^^^^^^^^
|
= help: add #![feature(ptr_internals)] to the crate attributes to enable

error: aborting due to previous error

For more information about this error, try `rustc --explain E0658`.

0 comments on commit 7c552a2

Please sign in to comment.