mirror of
https://github.com/rust-lang/rust.git
synced 2026-05-29 20:46:07 +03:00
Add tests for JSON non-inlining
This commit is contained in:
@@ -0,0 +1,22 @@
|
||||
// Regression test for <https://github.com/rust-lang/rust/issues/98007>.
|
||||
|
||||
#![feature(no_core)]
|
||||
#![no_core]
|
||||
|
||||
mod auto {
|
||||
mod action_row {
|
||||
pub struct ActionRowBuilder;
|
||||
}
|
||||
|
||||
#[doc(hidden)]
|
||||
pub mod builders {
|
||||
pub use super::action_row::ActionRowBuilder;
|
||||
}
|
||||
}
|
||||
|
||||
// @count doc_hidden_failure.json "$.index[*][?(@.name=='builders')]" 2
|
||||
pub use auto::*;
|
||||
|
||||
pub mod builders {
|
||||
pub use crate::auto::builders::*;
|
||||
}
|
||||
@@ -0,0 +1 @@
|
||||
pub struct Foo;
|
||||
@@ -3,15 +3,16 @@
|
||||
#![no_core]
|
||||
#![feature(no_core)]
|
||||
|
||||
// @!has glob_extern.json "$.index[*][?(@.name=='mod1')]"
|
||||
// @is glob_extern.json "$.index[*][?(@.name=='mod1')].kind" \"module\"
|
||||
// @is glob_extern.json "$.index[*][?(@.name=='mod1')].inner.is_stripped" "true"
|
||||
mod mod1 {
|
||||
extern "C" {
|
||||
// @set public_fn_id = - "$.index[*][?(@.name=='public_fn')].id"
|
||||
// @has - "$.index[*][?(@.name=='public_fn')].id"
|
||||
pub fn public_fn();
|
||||
// @!has - "$.index[*][?(@.name=='private_fn')]"
|
||||
fn private_fn();
|
||||
}
|
||||
}
|
||||
|
||||
// @has - "$.index[*][?(@.name=='glob_extern')].inner.items[*]" $public_fn_id
|
||||
// @is - "$.index[*][?(@.kind=='import')].inner.glob" true
|
||||
pub use mod1::*;
|
||||
|
||||
@@ -3,9 +3,11 @@
|
||||
#![no_core]
|
||||
#![feature(no_core)]
|
||||
|
||||
// @!has glob_private.json "$.index[*][?(@.name=='mod1')]"
|
||||
// @is glob_private.json "$.index[*][?(@.name=='mod1')].kind" \"module\"
|
||||
// @is glob_private.json "$.index[*][?(@.name=='mod1')].inner.is_stripped" "true"
|
||||
mod mod1 {
|
||||
// @!has - "$.index[*][?(@.name=='mod2')]"
|
||||
// @is - "$.index[*][?(@.name=='mod2')].kind" \"module\"
|
||||
// @is - "$.index[*][?(@.name=='mod2')].inner.is_stripped" "true"
|
||||
mod mod2 {
|
||||
// @set m2pub_id = - "$.index[*][?(@.name=='Mod2Public')].id"
|
||||
pub struct Mod2Public;
|
||||
@@ -13,15 +15,18 @@ mod mod2 {
|
||||
// @!has - "$.index[*][?(@.name=='Mod2Private')]"
|
||||
struct Mod2Private;
|
||||
}
|
||||
|
||||
// @has - "$.index[*][?(@.kind=='import' && @.inner.name=='mod2')]"
|
||||
pub use self::mod2::*;
|
||||
|
||||
// @set m1pub_id = - "$.index[*][?(@.name=='Mod1Public')].id"
|
||||
pub struct Mod1Public;
|
||||
|
||||
// @!has - "$.index[*][?(@.name=='Mod1Private')]"
|
||||
struct Mod1Private;
|
||||
}
|
||||
|
||||
// @has - "$.index[*][?(@.kind=='import' && @.inner.name=='mod1')]"
|
||||
pub use mod1::*;
|
||||
|
||||
// @has - "$.index[*][?(@.name=='glob_private')].inner.items[*]" $m2pub_id
|
||||
// @has - "$.index[*][?(@.name=='glob_private')].inner.items[*]" $m1pub_id
|
||||
// @has - "$.index[*][?(@.name=='mod2')].inner.items[*]" $m2pub_id
|
||||
// @has - "$.index[*][?(@.name=='mod1')].inner.items[*]" $m1pub_id
|
||||
|
||||
@@ -1,15 +1,17 @@
|
||||
#![feature(no_core)]
|
||||
#![no_core]
|
||||
|
||||
// @is in_root_and_mod.json "$.index[*][?(@.name=='foo')].kind" \"module\"
|
||||
// @is in_root_and_mod.json "$.index[*][?(@.name=='foo')].inner.is_stripped" "true"
|
||||
mod foo {
|
||||
// @set foo_id = in_root_and_mod.json "$.index[*][?(@.name=='Foo')].id"
|
||||
// @has - "$.index[*][?(@.name=='Foo')]"
|
||||
pub struct Foo;
|
||||
}
|
||||
|
||||
// @has - "$.index[*][?(@.name=='in_root_and_mod')].inner.items[*]" $foo_id
|
||||
// @has - "$.index[*][?(@.kind=='import' && @.inner.source=='foo::Foo')]"
|
||||
pub use foo::Foo;
|
||||
|
||||
pub mod bar {
|
||||
// @has - "$.index[*][?(@.name=='bar')].inner.items[*]" $foo_id
|
||||
// @has - "$.index[*][?(@.kind=='import' && @.inner.source=='crate::foo::Foo')]"
|
||||
pub use crate::foo::Foo;
|
||||
}
|
||||
|
||||
@@ -0,0 +1,18 @@
|
||||
// aux-build:pub-struct.rs
|
||||
|
||||
// Test for the ICE in rust/83057
|
||||
// Am external type re-exported with different attributes shouldn't cause an error
|
||||
|
||||
#![no_core]
|
||||
#![feature(no_core)]
|
||||
|
||||
extern crate pub_struct as foo;
|
||||
|
||||
#[doc(inline)]
|
||||
pub use foo::Foo;
|
||||
|
||||
pub mod bar {
|
||||
pub use foo::Foo;
|
||||
}
|
||||
|
||||
// @count private_twice_one_inline.json "$.index[*][?(@.kind=='import')]" 2
|
||||
@@ -0,0 +1,17 @@
|
||||
// Test for the ICE in rust/83720
|
||||
// A pub-in-private type re-exported under two different names shouldn't cause an error
|
||||
|
||||
#![no_core]
|
||||
#![feature(no_core)]
|
||||
|
||||
// @is private_two_names.json "$.index[*][?(@.name=='style')].kind" \"module\"
|
||||
// @is private_two_names.json "$.index[*][?(@.name=='style')].inner.is_stripped" "true"
|
||||
mod style {
|
||||
// @has - "$.index[*](?(@.name=='Color'))"
|
||||
pub struct Color;
|
||||
}
|
||||
|
||||
// @has - "$.index[*][?(@.kind=='import' && @.inner.name=='Color')]"
|
||||
pub use style::Color;
|
||||
// @has - "$.index[*][?(@.kind=='import' && @.inner.name=='Colour')]"
|
||||
pub use style::Color as Colour;
|
||||
@@ -2,13 +2,13 @@
|
||||
|
||||
#![no_core]
|
||||
#![feature(no_core)]
|
||||
// @!has rename_private.json "$.index[*][?(@.name=='inner')]"
|
||||
|
||||
// @is rename_private.json "$.index[*][?(@.name=='inner')].kind" \"module\"
|
||||
// @is rename_private.json "$.index[*][?(@.name=='inner')].inner.is_stripped" "true"
|
||||
mod inner {
|
||||
// @!has - "$.index[*][?(@.name=='Public')]"
|
||||
// @has - "$.index[*][?(@.name=='Public')]"
|
||||
pub struct Public;
|
||||
}
|
||||
|
||||
// @set newname_id = - "$.index[*][?(@.name=='NewName')].id"
|
||||
// @is - "$.index[*][?(@.name=='NewName')].kind" \"struct\"
|
||||
// @has - "$.index[*][?(@.name=='rename_private')].inner.items[*]" $newname_id
|
||||
// @is - "$.index[*][?(@.kind=='import')].inner.name" \"NewName\"
|
||||
pub use inner::Public as NewName;
|
||||
|
||||
@@ -1,15 +1,13 @@
|
||||
// Regression test for https://github.com/rust-lang/rust/issues/97432.
|
||||
// Regression test for <https://github.com/rust-lang/rust/issues/97432>.
|
||||
|
||||
#![feature(no_core)]
|
||||
#![no_std]
|
||||
#![no_core]
|
||||
|
||||
// @has same_type_reexported_more_than_once.json
|
||||
// @set trait_id = - "$.index[*][?(@.name=='Trait')].id"
|
||||
// @has - "$.index[*][?(@.name=='same_type_reexported_more_than_once')].inner.items[*]" $trait_id
|
||||
// @has - "$.index[*][?(@.name=='Trait')]"
|
||||
pub use inner::Trait;
|
||||
// @set reexport_id = - "$.index[*][?(@.name=='Reexport')].id"
|
||||
// @has - "$.index[*][?(@.name=='same_type_reexported_more_than_once')].inner.items[*]" $reexport_id
|
||||
// @has - "$.index[*].inner[?(@.name=='Reexport')].id"
|
||||
pub use inner::Trait as Reexport;
|
||||
|
||||
mod inner {
|
||||
|
||||
@@ -1,13 +1,15 @@
|
||||
// edition:2018
|
||||
|
||||
#![no_core]
|
||||
#![feature(no_core)]
|
||||
|
||||
// @!has simple_private.json "$.index[*][?(@.name=='inner')]"
|
||||
// @is simple_private.json "$.index[*][?(@.name=='inner')].kind" \"module\"
|
||||
// @is simple_private.json "$.index[*][?(@.name=='inner')].inner.is_stripped" "true"
|
||||
mod inner {
|
||||
// @set pub_id = - "$.index[*][?(@.name=='Public')].id"
|
||||
pub struct Public;
|
||||
}
|
||||
|
||||
// @has - "$.index[*][?(@.name=='simple_private')].inner.items[*]" $pub_id
|
||||
// @is - "$.index[*][?(@.kind=='import')].inner.name" \"Public\"
|
||||
pub use inner::Public;
|
||||
|
||||
// @has - "$.index[*][?(@.name=='inner')].inner.items[*]" $pub_id
|
||||
|
||||
@@ -0,0 +1,15 @@
|
||||
// Regression test for <https://github.com/rust-lang/rust/issues/96161>.
|
||||
// ignore-tidy-linelength
|
||||
|
||||
#![feature(no_core)]
|
||||
#![no_core]
|
||||
|
||||
mod secret {
|
||||
pub struct Secret;
|
||||
}
|
||||
|
||||
// @is return_private.json "$.index[*][?(@.name=='get_secret')].kind" \"function\"
|
||||
// @is return_private.json "$.index[*][?(@.name=='get_secret')].inner.decl.output.inner.name" \"secret::Secret\"
|
||||
pub fn get_secret() -> secret::Secret {
|
||||
secret::Secret
|
||||
}
|
||||
@@ -0,0 +1,21 @@
|
||||
#![no_core]
|
||||
#![feature(no_core)]
|
||||
|
||||
// @!has stripped_modules.json "$.index[*][?(@.name=='no_pub_inner')]"
|
||||
mod no_pub_inner {
|
||||
fn priv_inner() {}
|
||||
}
|
||||
|
||||
// @!has - "$.index[*][?(@.name=='pub_inner_unreachable')]"
|
||||
mod pub_inner_unreachable {
|
||||
// @!has - "$.index[*][?(@.name=='pub_inner_1')]"
|
||||
pub fn pub_inner_1() {}
|
||||
}
|
||||
|
||||
// @has - "$.index[*][?(@.name=='pub_inner_reachable')]"
|
||||
mod pub_inner_reachable {
|
||||
// @has - "$.index[*][?(@.name=='pub_inner_2')]"
|
||||
pub fn pub_inner_2() {}
|
||||
}
|
||||
|
||||
pub use pub_inner_reachable::pub_inner_2;
|
||||
Reference in New Issue
Block a user