63cfedb73b
We have a lot of tests with filenames honoring particular issues by number. Typically, these are called issue-${issue_no}.rs (note the hyphen): ``` $ find . -regextype posix-egrep -regex '.*/issue-[0-9]*.rs' | wc 1289 1289 35935 ``` We also had a much smaller number of files that are like this, but don't have a hyphen in between the substring `issue` and the number: ``` $ find . -regextype posix-egrep -regex '.*/issue[0-9]*.rs' ./debuginfo/issue14411.rs ./debuginfo/issue12886.rs ./debuginfo/issue13213.rs ./debuginfo/issue22656.rs ./debuginfo/issue7712.rs ./compile-fail/issue32829.rs ./run-pass/issue24353.rs ./run-pass/issue34796.rs ./run-pass/issue18173.rs ./run-pass/issue22346.rs ./run-pass/auxiliary/issue13507.rs ./run-pass/issue26127.rs ./run-pass/issue22008.rs ./run-pass/issue34569.rs ./run-pass/issue29927.rs ./run-pass/issue36260.rs ``` Some would argue that the inconsistency is æsthetically displeasing, hence this trivial patch. (Note that run-pass/auxiliary/issue13507.rs has an excuse; it's `use`d in run-pass/issue-13507-2.rs; the matter of there being two different compile-fail tests with different name conventions for issue #32829 is also neglected here for the sake of keeping this trivial cleanup patch as trivial as possible for ease of review.)
37 lines
1.2 KiB
Rust
37 lines
1.2 KiB
Rust
// Copyright 2016 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.
|
|
|
|
// This test case exposes conditions where the encoding of a trait object type
|
|
// with projection predicates would differ between this crate and the upstream
|
|
// crate, because the predicates were encoded in different order within each
|
|
// crate. This led to different symbol hashes of functions using these type,
|
|
// which in turn led to linker errors because the two crates would not agree on
|
|
// the symbol name.
|
|
// The fix was to make the order in which predicates get encoded stable.
|
|
|
|
// aux-build:issue34796aux.rs
|
|
extern crate issue34796aux;
|
|
|
|
fn mk<T>() -> T { loop {} }
|
|
|
|
struct Data<T, E> {
|
|
data: T,
|
|
error: E,
|
|
}
|
|
|
|
fn main() {
|
|
issue34796aux::bar(|()| {
|
|
Data::<(), std::io::Error> {
|
|
data: mk(),
|
|
error: mk(),
|
|
}
|
|
})
|
|
}
|