about summary refs log tree commit diff
path: root/src/test
diff options
context:
space:
mode:
authorMazdak Farrokhzad <twingoow@gmail.com>2019-01-26 18:21:41 +0100
committerGitHub <noreply@github.com>2019-01-26 18:21:41 +0100
commit5e6c2f40d05df697364162d640d3198b2190a076 (patch)
tree08c89e57bf2389d20da9fca6995542be5f8a5372 /src/test
parentccd428befd2d90736a7c8d05ba35c430f59c9a11 (diff)
parent09d073a4c59dee09f69f3cb144c3067a153c30e6 (diff)
downloadrust-5e6c2f40d05df697364162d640d3198b2190a076.tar.gz
rust-5e6c2f40d05df697364162d640d3198b2190a076.zip
Rollup merge of #57407 - mehcode:stabilize-extern-crate-self, r=Centril
Stabilize extern_crate_self

Fixes #56409
Diffstat (limited to 'src/test')
-rw-r--r--src/test/ui/feature-gates/feature-gate-extern_crate_self.rs3
-rw-r--r--src/test/ui/feature-gates/feature-gate-extern_crate_self.stderr11
-rw-r--r--src/test/ui/imports/extern-crate-self/extern-crate-self-fail.rs (renamed from src/test/ui/imports/extern-crate-self-fail.rs)2
-rw-r--r--src/test/ui/imports/extern-crate-self/extern-crate-self-fail.stderr (renamed from src/test/ui/imports/extern-crate-self-fail.stderr)4
-rw-r--r--src/test/ui/imports/extern-crate-self/extern-crate-self-macro-alias.rs16
-rw-r--r--src/test/ui/imports/extern-crate-self/extern-crate-self-macro-item.rs12
-rw-r--r--src/test/ui/imports/extern-crate-self/extern-crate-self-macro-self.rs16
-rw-r--r--src/test/ui/imports/extern-crate-self/extern-crate-self-pass.rs (renamed from src/test/ui/imports/extern-crate-self-pass.rs)2
8 files changed, 46 insertions, 20 deletions
diff --git a/src/test/ui/feature-gates/feature-gate-extern_crate_self.rs b/src/test/ui/feature-gates/feature-gate-extern_crate_self.rs
deleted file mode 100644
index 2161932c2f6..00000000000
--- a/src/test/ui/feature-gates/feature-gate-extern_crate_self.rs
+++ /dev/null
@@ -1,3 +0,0 @@
-extern crate self as foo; //~ ERROR `extern crate self` is unstable
-
-fn main() {}
diff --git a/src/test/ui/feature-gates/feature-gate-extern_crate_self.stderr b/src/test/ui/feature-gates/feature-gate-extern_crate_self.stderr
deleted file mode 100644
index 530015b2cb7..00000000000
--- a/src/test/ui/feature-gates/feature-gate-extern_crate_self.stderr
+++ /dev/null
@@ -1,11 +0,0 @@
-error[E0658]: `extern crate self` is unstable (see issue #56409)
-  --> $DIR/feature-gate-extern_crate_self.rs:1:1
-   |
-LL | extern crate self as foo; //~ ERROR `extern crate self` is unstable
-   | ^^^^^^^^^^^^^^^^^^^^^^^^^
-   |
-   = help: add #![feature(extern_crate_self)] to the crate attributes to enable
-
-error: aborting due to previous error
-
-For more information about this error, try `rustc --explain E0658`.
diff --git a/src/test/ui/imports/extern-crate-self-fail.rs b/src/test/ui/imports/extern-crate-self/extern-crate-self-fail.rs
index eab7b7032aa..defa0e294bd 100644
--- a/src/test/ui/imports/extern-crate-self-fail.rs
+++ b/src/test/ui/imports/extern-crate-self/extern-crate-self-fail.rs
@@ -1,5 +1,3 @@
-#![feature(extern_crate_self)]
-
 extern crate self; //~ ERROR `extern crate self;` requires renaming
 
 #[macro_use] //~ ERROR `macro_use` is not supported on `extern crate self`
diff --git a/src/test/ui/imports/extern-crate-self-fail.stderr b/src/test/ui/imports/extern-crate-self/extern-crate-self-fail.stderr
index 0ca0d89eaf0..b47d10343f6 100644
--- a/src/test/ui/imports/extern-crate-self-fail.stderr
+++ b/src/test/ui/imports/extern-crate-self/extern-crate-self-fail.stderr
@@ -1,11 +1,11 @@
 error: `extern crate self;` requires renaming
-  --> $DIR/extern-crate-self-fail.rs:3:1
+  --> $DIR/extern-crate-self-fail.rs:1:1
    |
 LL | extern crate self; //~ ERROR `extern crate self;` requires renaming
    | ^^^^^^^^^^^^^^^^^^ help: try: `extern crate self as name;`
 
 error: `macro_use` is not supported on `extern crate self`
-  --> $DIR/extern-crate-self-fail.rs:5:1
+  --> $DIR/extern-crate-self-fail.rs:3:1
    |
 LL | #[macro_use] //~ ERROR `macro_use` is not supported on `extern crate self`
    | ^^^^^^^^^^^^
diff --git a/src/test/ui/imports/extern-crate-self/extern-crate-self-macro-alias.rs b/src/test/ui/imports/extern-crate-self/extern-crate-self-macro-alias.rs
new file mode 100644
index 00000000000..79683522888
--- /dev/null
+++ b/src/test/ui/imports/extern-crate-self/extern-crate-self-macro-alias.rs
@@ -0,0 +1,16 @@
+// run-pass
+
+// Test that a macro can correctly expand the alias
+// in an `extern crate self as ALIAS` item.
+
+fn the_answer() -> usize { 42 }
+
+macro_rules! alias_self {
+    ($alias:ident) => { extern crate self as $alias; }
+}
+
+alias_self!(the_alias);
+
+fn main() {
+    assert_eq!(the_alias::the_answer(), 42);
+}
diff --git a/src/test/ui/imports/extern-crate-self/extern-crate-self-macro-item.rs b/src/test/ui/imports/extern-crate-self/extern-crate-self-macro-item.rs
new file mode 100644
index 00000000000..9c9397999ff
--- /dev/null
+++ b/src/test/ui/imports/extern-crate-self/extern-crate-self-macro-item.rs
@@ -0,0 +1,12 @@
+// compile-pass
+
+// Test that `extern crate self;` is accepted
+// syntactically as an item for use in a macro.
+
+macro_rules! accept_item { ($x:item) => {} }
+
+accept_item! {
+    extern crate self;
+}
+
+fn main() {}
diff --git a/src/test/ui/imports/extern-crate-self/extern-crate-self-macro-self.rs b/src/test/ui/imports/extern-crate-self/extern-crate-self-macro-self.rs
new file mode 100644
index 00000000000..009a92e8776
--- /dev/null
+++ b/src/test/ui/imports/extern-crate-self/extern-crate-self-macro-self.rs
@@ -0,0 +1,16 @@
+// run-pass
+
+// Test that a macro can correctly expand `self` in
+// an `extern crate self as ALIAS` item.
+
+fn the_answer() -> usize { 42 }
+
+macro_rules! extern_something {
+    ($alias:ident) => { extern crate $alias as the_alias; }
+}
+
+extern_something!(self);
+
+fn main() {
+    assert_eq!(the_alias::the_answer(), 42);
+}
diff --git a/src/test/ui/imports/extern-crate-self-pass.rs b/src/test/ui/imports/extern-crate-self/extern-crate-self-pass.rs
index bf255bb6b81..6f6343a6148 100644
--- a/src/test/ui/imports/extern-crate-self-pass.rs
+++ b/src/test/ui/imports/extern-crate-self/extern-crate-self-pass.rs
@@ -1,7 +1,5 @@
 // compile-pass
 
-#![feature(extern_crate_self)]
-
 extern crate self as foo;
 
 struct S;