Skip to content

Commit 0a9bcb0

Browse files
Add regression test for #64319 back in.
The regression test is originally from #64324 but was removed again after the fix in there turned out to break other things.
1 parent ce6995f commit 0a9bcb0

File tree

3 files changed

+53
-0
lines changed

3 files changed

+53
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
-include ../../run-make-fulldeps/tools.mk
2+
3+
# Different optimization levels imply different values for `-Zshare-generics`,
4+
# so try out a whole bunch of combinations to make sure everything is compatible
5+
all:
6+
# First up, try some defaults
7+
$(RUSTC) --crate-type rlib foo.rs
8+
$(RUSTC) --crate-type dylib bar.rs -C opt-level=3
9+
10+
# Next try mixing up some things explicitly
11+
$(RUSTC) --crate-type rlib foo.rs -Z share-generics=no
12+
$(RUSTC) --crate-type dylib bar.rs -Z share-generics=no
13+
$(RUSTC) --crate-type rlib foo.rs -Z share-generics=no
14+
$(RUSTC) --crate-type dylib bar.rs -Z share-generics=yes
15+
$(RUSTC) --crate-type rlib foo.rs -Z share-generics=yes
16+
$(RUSTC) --crate-type dylib bar.rs -Z share-generics=no
17+
$(RUSTC) --crate-type rlib foo.rs -Z share-generics=yes
18+
$(RUSTC) --crate-type dylib bar.rs -Z share-generics=yes
19+
20+
# Now combine a whole bunch of options together
21+
$(RUSTC) --crate-type rlib foo.rs
22+
$(RUSTC) --crate-type dylib bar.rs
23+
$(RUSTC) --crate-type dylib bar.rs -Z share-generics=no
24+
$(RUSTC) --crate-type dylib bar.rs -Z share-generics=yes
25+
$(RUSTC) --crate-type dylib bar.rs -C opt-level=1
26+
$(RUSTC) --crate-type dylib bar.rs -C opt-level=1 -Z share-generics=no
27+
$(RUSTC) --crate-type dylib bar.rs -C opt-level=1 -Z share-generics=yes
28+
$(RUSTC) --crate-type dylib bar.rs -C opt-level=2
29+
$(RUSTC) --crate-type dylib bar.rs -C opt-level=2 -Z share-generics=no
30+
$(RUSTC) --crate-type dylib bar.rs -C opt-level=2 -Z share-generics=yes
31+
$(RUSTC) --crate-type dylib bar.rs -C opt-level=3
32+
$(RUSTC) --crate-type dylib bar.rs -C opt-level=3 -Z share-generics=no
33+
$(RUSTC) --crate-type dylib bar.rs -C opt-level=3 -Z share-generics=yes
34+
$(RUSTC) --crate-type dylib bar.rs -C opt-level=s
35+
$(RUSTC) --crate-type dylib bar.rs -C opt-level=s -Z share-generics=no
36+
$(RUSTC) --crate-type dylib bar.rs -C opt-level=s -Z share-generics=yes
37+
$(RUSTC) --crate-type dylib bar.rs -C opt-level=z
38+
$(RUSTC) --crate-type dylib bar.rs -C opt-level=z -Z share-generics=no
39+
$(RUSTC) --crate-type dylib bar.rs -C opt-level=z -Z share-generics=yes
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
extern crate foo;
2+
3+
pub fn bar() {
4+
foo::foo();
5+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
pub fn foo() {
2+
bar::<usize>();
3+
}
4+
5+
pub fn bar<T>() {
6+
baz();
7+
}
8+
9+
fn baz() {}

0 commit comments

Comments
 (0)