2021-12-03 00:03:32 +00:00
|
|
|
#![cfg(feature = "macros")]
|
|
|
|
|
2020-06-26 09:35:34 +00:00
|
|
|
#[rustversion::stable]
|
2022-06-08 04:59:18 +00:00
|
|
|
#[cfg(not(target_arch = "wasm32"))] // Not possible to invoke compiler from wasm
|
2019-06-04 05:17:07 +00:00
|
|
|
#[test]
|
|
|
|
fn test_compile_errors() {
|
2021-04-27 07:13:27 +00:00
|
|
|
// stable - require all tests to pass
|
|
|
|
_test_compile_errors()
|
|
|
|
}
|
|
|
|
|
2022-02-14 20:31:59 +00:00
|
|
|
#[cfg(not(feature = "nightly"))]
|
2022-06-08 04:59:18 +00:00
|
|
|
#[cfg(not(target_arch = "wasm32"))] // We are building wasm Python with pthreads disabled
|
2021-04-27 07:13:27 +00:00
|
|
|
#[rustversion::nightly]
|
|
|
|
#[test]
|
|
|
|
fn test_compile_errors() {
|
|
|
|
// nightly - don't care if test output is potentially wrong, to avoid churn in PyO3's CI thanks
|
|
|
|
// to diagnostics changing on nightly.
|
|
|
|
let _ = std::panic::catch_unwind(_test_compile_errors);
|
|
|
|
}
|
|
|
|
|
2022-02-14 20:31:59 +00:00
|
|
|
#[cfg(feature = "nightly")]
|
2022-06-08 04:59:18 +00:00
|
|
|
#[cfg(not(target_arch = "wasm32"))] // Not possible to invoke compiler from wasm
|
2022-02-14 20:31:59 +00:00
|
|
|
#[rustversion::nightly]
|
|
|
|
#[test]
|
|
|
|
fn test_compile_errors() {
|
|
|
|
// nightly - don't care if test output is potentially wrong, to avoid churn in PyO3's CI thanks
|
|
|
|
// to diagnostics changing on nightly.
|
|
|
|
_test_compile_errors()
|
|
|
|
}
|
|
|
|
|
2022-02-08 15:56:19 +00:00
|
|
|
#[cfg(not(feature = "nightly"))]
|
2021-04-27 07:13:27 +00:00
|
|
|
fn _test_compile_errors() {
|
2019-06-04 05:17:07 +00:00
|
|
|
let t = trybuild::TestCases::new();
|
2022-02-08 15:56:19 +00:00
|
|
|
|
2020-06-26 09:35:34 +00:00
|
|
|
t.compile_fail("tests/ui/invalid_macro_args.rs");
|
2020-09-03 15:27:24 +00:00
|
|
|
t.compile_fail("tests/ui/invalid_need_module_arg_position.rs");
|
2020-06-26 09:35:34 +00:00
|
|
|
t.compile_fail("tests/ui/invalid_property_args.rs");
|
|
|
|
t.compile_fail("tests/ui/invalid_pyclass_args.rs");
|
2021-11-16 19:31:30 +00:00
|
|
|
t.compile_fail("tests/ui/invalid_pyclass_enum.rs");
|
|
|
|
t.compile_fail("tests/ui/invalid_pyclass_item.rs");
|
2021-12-21 07:01:11 +00:00
|
|
|
#[cfg(not(Py_LIMITED_API))]
|
|
|
|
t.compile_fail("tests/ui/invalid_pymethods_buffer.rs");
|
2020-06-27 13:49:46 +00:00
|
|
|
t.compile_fail("tests/ui/invalid_pymethod_names.rs");
|
2021-11-19 13:33:56 +00:00
|
|
|
t.compile_fail("tests/ui/invalid_pymodule_args.rs");
|
2020-06-26 09:35:34 +00:00
|
|
|
t.compile_fail("tests/ui/reject_generics.rs");
|
2021-12-31 13:11:02 +00:00
|
|
|
t.compile_fail("tests/ui/invalid_pymethod_proto_args.rs");
|
2022-01-06 07:59:10 +00:00
|
|
|
t.compile_fail("tests/ui/invalid_pymethod_proto_args_py.rs");
|
2020-06-26 09:35:34 +00:00
|
|
|
|
2020-12-31 15:46:54 +00:00
|
|
|
tests_rust_1_49(&t);
|
2021-10-22 22:16:39 +00:00
|
|
|
tests_rust_1_56(&t);
|
2021-12-03 23:29:02 +00:00
|
|
|
tests_rust_1_57(&t);
|
2022-01-13 21:43:51 +00:00
|
|
|
tests_rust_1_58(&t);
|
2022-04-07 21:56:15 +00:00
|
|
|
tests_rust_1_60(&t);
|
2022-07-02 15:08:01 +00:00
|
|
|
tests_rust_1_62(&t);
|
2021-02-10 15:07:25 +00:00
|
|
|
|
2020-12-31 15:46:54 +00:00
|
|
|
#[rustversion::since(1.49)]
|
|
|
|
fn tests_rust_1_49(t: &trybuild::TestCases) {
|
2021-04-17 21:22:06 +00:00
|
|
|
t.compile_fail("tests/ui/deprecations.rs");
|
2020-08-28 02:29:38 +00:00
|
|
|
}
|
2020-12-31 15:46:54 +00:00
|
|
|
#[rustversion::before(1.49)]
|
|
|
|
fn tests_rust_1_49(_t: &trybuild::TestCases) {}
|
2021-05-06 22:07:19 +00:00
|
|
|
|
2021-10-22 22:16:39 +00:00
|
|
|
#[rustversion::since(1.56)]
|
|
|
|
fn tests_rust_1_56(t: &trybuild::TestCases) {
|
|
|
|
t.compile_fail("tests/ui/invalid_closure.rs");
|
2022-07-02 15:08:01 +00:00
|
|
|
|
2021-10-22 22:16:39 +00:00
|
|
|
t.compile_fail("tests/ui/pyclass_send.rs");
|
2021-05-06 22:07:19 +00:00
|
|
|
}
|
2021-07-30 22:30:56 +00:00
|
|
|
|
2021-10-22 22:16:39 +00:00
|
|
|
#[rustversion::before(1.56)]
|
|
|
|
fn tests_rust_1_56(_t: &trybuild::TestCases) {}
|
2021-12-03 23:29:02 +00:00
|
|
|
|
|
|
|
#[rustversion::since(1.57)]
|
|
|
|
fn tests_rust_1_57(t: &trybuild::TestCases) {
|
|
|
|
t.compile_fail("tests/ui/invalid_argument_attributes.rs");
|
|
|
|
t.compile_fail("tests/ui/invalid_frompy_derive.rs");
|
|
|
|
t.compile_fail("tests/ui/static_ref.rs");
|
|
|
|
t.compile_fail("tests/ui/wrong_aspyref_lifetimes.rs");
|
|
|
|
}
|
|
|
|
|
|
|
|
#[rustversion::before(1.57)]
|
|
|
|
fn tests_rust_1_57(_t: &trybuild::TestCases) {}
|
2022-01-13 21:43:51 +00:00
|
|
|
|
|
|
|
#[rustversion::since(1.58)]
|
|
|
|
fn tests_rust_1_58(t: &trybuild::TestCases) {
|
|
|
|
t.compile_fail("tests/ui/invalid_pyfunctions.rs");
|
|
|
|
t.compile_fail("tests/ui/invalid_pymethods.rs");
|
|
|
|
t.compile_fail("tests/ui/not_send.rs");
|
2022-02-08 15:56:19 +00:00
|
|
|
t.compile_fail("tests/ui/not_send2.rs");
|
|
|
|
t.compile_fail("tests/ui/not_send3.rs");
|
2021-07-30 22:30:56 +00:00
|
|
|
#[cfg(Py_LIMITED_API)]
|
|
|
|
t.compile_fail("tests/ui/abi3_nativetype_inheritance.rs");
|
2021-05-06 22:07:19 +00:00
|
|
|
}
|
2021-10-22 22:16:39 +00:00
|
|
|
|
2022-01-13 21:43:51 +00:00
|
|
|
#[rustversion::before(1.58)]
|
|
|
|
fn tests_rust_1_58(_t: &trybuild::TestCases) {}
|
2022-04-07 21:56:15 +00:00
|
|
|
|
|
|
|
#[rustversion::since(1.60)]
|
|
|
|
fn tests_rust_1_60(t: &trybuild::TestCases) {
|
2022-06-01 08:07:00 +00:00
|
|
|
t.compile_fail("tests/ui/invalid_intern_arg.rs");
|
2022-06-11 11:20:43 +00:00
|
|
|
t.compile_fail("tests/ui/invalid_frozen_pyclass_borrow.rs");
|
2022-04-07 21:56:15 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
#[rustversion::before(1.60)]
|
|
|
|
fn tests_rust_1_60(_t: &trybuild::TestCases) {}
|
2022-07-02 15:08:01 +00:00
|
|
|
|
|
|
|
#[rustversion::since(1.62)]
|
|
|
|
fn tests_rust_1_62(t: &trybuild::TestCases) {
|
|
|
|
t.compile_fail("tests/ui/invalid_pymethod_receiver.rs");
|
|
|
|
t.compile_fail("tests/ui/invalid_result_conversion.rs");
|
|
|
|
t.compile_fail("tests/ui/missing_intopy.rs");
|
|
|
|
}
|
|
|
|
|
|
|
|
#[rustversion::before(1.62)]
|
|
|
|
fn tests_rust_1_62(_t: &trybuild::TestCases) {}
|
2019-06-04 05:17:07 +00:00
|
|
|
}
|
2022-02-08 15:56:19 +00:00
|
|
|
|
|
|
|
#[cfg(feature = "nightly")]
|
|
|
|
fn _test_compile_errors() {
|
|
|
|
let t = trybuild::TestCases::new();
|
|
|
|
|
|
|
|
t.compile_fail("tests/ui/not_send_auto_trait.rs");
|
|
|
|
t.compile_fail("tests/ui/not_send_auto_trait2.rs");
|
|
|
|
t.compile_fail("tests/ui/send_wrapper.rs");
|
|
|
|
}
|