Skip to content

Commit

Permalink
Warn on pub extern crate.
Browse files Browse the repository at this point in the history
Temporary 'fix' for rust-lang#26775
  • Loading branch information
nrc committed Sep 18, 2015
1 parent d16129b commit 269c59d
Show file tree
Hide file tree
Showing 2 changed files with 30 additions and 5 deletions.
17 changes: 12 additions & 5 deletions src/libsyntax/parse/parser.rs
Original file line number Diff line number Diff line change
Expand Up @@ -5116,12 +5116,19 @@ impl<'a> Parser<'a> {
try!(self.expect(&token::Semi));

let last_span = self.last_span;

if visibility == ast::Public {
self.span_warn(mk_sp(lo, last_span.hi),
"`pub extern crate` does not work as expected and should not be used. \
Likely to become an error. Prefer `extern crate` and `pub use`.");
}

Ok(self.mk_item(lo,
last_span.hi,
ident,
ItemExternCrate(maybe_path),
visibility,
attrs))
last_span.hi,
ident,
ItemExternCrate(maybe_path),
visibility,
attrs))
}

/// Parse `extern` for foreign ABIs
Expand Down
18 changes: 18 additions & 0 deletions src/test/compile-fail/warn-pub-extern-crate.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
// Copyright 2015 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.

// Check that `pub extern crate` gives a warning.


pub extern crate core; //~WARN `pub extern crate` does not work
//~^ ERROR core

fn main() {
}

0 comments on commit 269c59d

Please sign in to comment.