Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'crates/hir-ty/src/tests/regression.rs')
-rw-r--r--crates/hir-ty/src/tests/regression.rs93
1 files changed, 14 insertions, 79 deletions
diff --git a/crates/hir-ty/src/tests/regression.rs b/crates/hir-ty/src/tests/regression.rs
index 43fe14126e..69c7a81548 100644
--- a/crates/hir-ty/src/tests/regression.rs
+++ b/crates/hir-ty/src/tests/regression.rs
@@ -1600,85 +1600,6 @@ fn f(s: S) {
}
#[test]
-fn rust_161_option_clone() {
- check_types(
- r#"
-//- minicore: option, drop
-
-fn test(o: &Option<i32>) {
- o.my_clone();
- //^^^^^^^^^^^^ Option<i32>
-}
-
-pub trait MyClone: Sized {
- fn my_clone(&self) -> Self;
-}
-
-impl<T> const MyClone for Option<T>
-where
- T: ~const MyClone + ~const Drop + ~const Destruct,
-{
- fn my_clone(&self) -> Self {
- match self {
- Some(x) => Some(x.my_clone()),
- None => None,
- }
- }
-}
-
-impl const MyClone for i32 {
- fn my_clone(&self) -> Self {
- *self
- }
-}
-
-pub trait Destruct {}
-
-impl<T: ?Sized> const Destruct for T {}
-"#,
- );
-}
-
-#[test]
-fn rust_162_option_clone() {
- check_types(
- r#"
-//- minicore: option, drop
-
-fn test(o: &Option<i32>) {
- o.my_clone();
- //^^^^^^^^^^^^ Option<i32>
-}
-
-pub trait MyClone: Sized {
- fn my_clone(&self) -> Self;
-}
-
-impl<T> const MyClone for Option<T>
-where
- T: ~const MyClone + ~const Destruct,
-{
- fn my_clone(&self) -> Self {
- match self {
- Some(x) => Some(x.my_clone()),
- None => None,
- }
- }
-}
-
-impl const MyClone for i32 {
- fn my_clone(&self) -> Self {
- *self
- }
-}
-
-#[lang = "destruct"]
-pub trait Destruct {}
-"#,
- );
-}
-
-#[test]
fn tuple_struct_pattern_with_unmatched_args_crash() {
check_infer(
r#"
@@ -2040,3 +1961,17 @@ fn main() {
"#,
)
}
+
+#[test]
+fn cfg_first_trait_param_16141() {
+ check_no_mismatches(
+ r#"
+//- minicore: sized, coerce_unsized
+trait Bar {
+ fn bar(&self) {}
+}
+
+impl<#[cfg(feature = "a-feature")] A> Bar for (){}
+"#,
+ )
+}