Skip to content

Commit 78a8127

Browse files
committed
Add tests
1 parent 9faf796 commit 78a8127

File tree

4 files changed

+70
-0
lines changed

4 files changed

+70
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
// Copyright 2016 The Rust Project Developers. See the COPYRIGHT
2+
// file at the top-level directory of this distribution and at
3+
// http://rust-lang.org/COPYRIGHT.
4+
//
5+
// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
6+
// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
7+
// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
8+
// option. This file may not be copied, modified, or distributed
9+
// except according to those terms.
10+
11+
#![feature(pub_restricted, type_macros)]
12+
13+
mod foo {
14+
type T = ();
15+
struct S1(pub(foo) (), pub(T), pub(crate) (), pub(((), T)));
16+
struct S2(pub((foo)) ()); //~ ERROR expected one of `+` or `,`, found `(`
17+
//~| ERROR expected one of `+`, `;`, or `where`, found `(`
18+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
// Copyright 2016 The Rust Project Developers. See the COPYRIGHT
2+
// file at the top-level directory of this distribution and at
3+
// http://rust-lang.org/COPYRIGHT.
4+
//
5+
// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
6+
// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
7+
// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
8+
// option. This file may not be copied, modified, or distributed
9+
// except according to those terms.
10+
11+
#![feature(pub_restricted, type_macros)]
12+
13+
macro_rules! define_struct {
14+
($t:ty) => {
15+
struct S1(pub $t);
16+
struct S2(pub (foo) ());
17+
struct S3(pub $t ()); //~ ERROR expected one of `+` or `,`, found `(`
18+
//~| ERROR expected one of `+`, `;`, or `where`, found `(`
19+
}
20+
}
21+
22+
mod foo {
23+
define_struct! { (foo) }
24+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
// Copyright 2016 The Rust Project Developers. See the COPYRIGHT
2+
// file at the top-level directory of this distribution and at
3+
// http://rust-lang.org/COPYRIGHT.
4+
//
5+
// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
6+
// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
7+
// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
8+
// option. This file may not be copied, modified, or distributed
9+
// except according to those terms.
10+
11+
#![feature(pub_restricted, type_macros)]
12+
13+
macro_rules! define_struct {
14+
($t:ty) => {
15+
struct S1(pub($t));
16+
struct S2(pub (foo) ());
17+
struct S3(pub($t) ()); //~ ERROR expected one of `+` or `,`, found `(`
18+
//~| ERROR expected one of `+`, `;`, or `where`, found `(`
19+
}
20+
}
21+
22+
mod foo {
23+
define_struct! { foo }
24+
}

src/test/compile-fail/privacy/restricted/ty-params.rs

+4
Original file line numberDiff line numberDiff line change
@@ -17,4 +17,8 @@ macro_rules! m {
1717
struct S<T>(T);
1818
m!{ S<u8> } //~ ERROR type or lifetime parameters in visibility path
1919

20+
mod foo {
21+
struct S(pub(foo<T>) ()); //~ ERROR type or lifetime parameters in visibility path
22+
}
23+
2024
fn main() {}

0 commit comments

Comments
 (0)