diff options
| author | Michael Goulet <michael@errs.io> | 2024-12-21 17:05:40 +0000 |
|---|---|---|
| committer | Michael Goulet <michael@errs.io> | 2024-12-22 21:57:57 +0000 |
| commit | 9a1c5eb5b385adb3cd04af0049cbf5c225cefdc3 (patch) | |
| tree | 02737d1b8386b3d999cbd1778e315b539f2f6826 /src | |
| parent | b22856d192567a55a1d2788fbc3084e3f9cb220f (diff) | |
Begin to implement type system layer of unsafe binders
Diffstat (limited to 'src')
| -rw-r--r-- | src/librustdoc/clean/mod.rs | 2 | ||||
| -rw-r--r-- | src/librustdoc/passes/collect_intra_doc_links.rs | 1 | ||||
| -rw-r--r-- | src/tools/clippy/clippy_lints/src/dereference.rs | 3 | ||||
| -rw-r--r-- | src/tools/clippy/clippy_utils/src/visitors.rs | 4 |
4 files changed, 8 insertions, 2 deletions
diff --git a/src/librustdoc/clean/mod.rs b/src/librustdoc/clean/mod.rs index 9d0c0f687c7..4d46f0e75c8 100644 --- a/src/librustdoc/clean/mod.rs +++ b/src/librustdoc/clean/mod.rs @@ -2255,12 +2255,14 @@ pub(crate) fn clean_middle_ty<'tcx>( } } + ty::UnsafeBinder(_) => todo!("FIXME(unsafe_binders)"), ty::Closure(..) => panic!("Closure"), ty::CoroutineClosure(..) => panic!("CoroutineClosure"), ty::Coroutine(..) => panic!("Coroutine"), ty::Placeholder(..) => panic!("Placeholder"), ty::CoroutineWitness(..) => panic!("CoroutineWitness"), ty::Infer(..) => panic!("Infer"), + ty::Error(_) => FatalError.raise(), } } diff --git a/src/librustdoc/passes/collect_intra_doc_links.rs b/src/librustdoc/passes/collect_intra_doc_links.rs index c9d1ceb0a91..3c1d0c35bef 100644 --- a/src/librustdoc/passes/collect_intra_doc_links.rs +++ b/src/librustdoc/passes/collect_intra_doc_links.rs @@ -559,6 +559,7 @@ impl<'tcx> LinkCollector<'_, 'tcx> { | ty::Coroutine(..) | ty::CoroutineWitness(..) | ty::Dynamic(..) + | ty::UnsafeBinder(_) | ty::Param(_) | ty::Bound(..) | ty::Placeholder(_) diff --git a/src/tools/clippy/clippy_lints/src/dereference.rs b/src/tools/clippy/clippy_lints/src/dereference.rs index e3959903fdd..821312a9e40 100644 --- a/src/tools/clippy/clippy_lints/src/dereference.rs +++ b/src/tools/clippy/clippy_lints/src/dereference.rs @@ -877,7 +877,8 @@ impl TyCoercionStability { | ty::CoroutineClosure(..) | ty::Never | ty::Tuple(_) - | ty::Alias(ty::Projection, _) => Self::Deref, + | ty::Alias(ty::Projection, _) + | ty::UnsafeBinder(_) => Self::Deref, }; } } diff --git a/src/tools/clippy/clippy_utils/src/visitors.rs b/src/tools/clippy/clippy_utils/src/visitors.rs index 71499b1293a..afceeec2272 100644 --- a/src/tools/clippy/clippy_utils/src/visitors.rs +++ b/src/tools/clippy/clippy_utils/src/visitors.rs @@ -677,6 +677,9 @@ pub fn for_each_unconsumed_temporary<'tcx, B>( ExprKind::Type(e, _) => { helper(typeck, consume, e, f)?; }, + ExprKind::UnsafeBinderCast(_, e, _) => { + helper(typeck, consume, e, f)?; + }, // Either drops temporaries, jumps out of the current expression, or has no sub expression. ExprKind::DropTemps(_) @@ -694,7 +697,6 @@ pub fn for_each_unconsumed_temporary<'tcx, B>( | ExprKind::Continue(_) | ExprKind::InlineAsm(_) | ExprKind::OffsetOf(..) - | ExprKind::UnsafeBinderCast(..) | ExprKind::Err(_) => (), } ControlFlow::Continue(()) |
