Implement .use keyword as an alias of clone
This commit is contained in:
parent
0cf8dbc96c
commit
05c516446a
36 changed files with 247 additions and 24 deletions
|
@ -14,6 +14,8 @@ ty_utils_borrow_not_supported = borrowing is not supported in generic constants
|
|||
|
||||
ty_utils_box_not_supported = allocations are not allowed in generic constants
|
||||
|
||||
ty_utils_by_use_not_supported = .use is not allowed in generic constants
|
||||
|
||||
ty_utils_closure_and_return_not_supported = closures and function keywords are not supported in generic constants
|
||||
|
||||
ty_utils_const_block_not_supported = const blocks are not supported in generic constants
|
||||
|
|
|
@ -230,7 +230,9 @@ fn recurse_build<'tcx>(
|
|||
error(GenericConstantTooComplexSub::LoopNotSupported(node.span))?
|
||||
}
|
||||
ExprKind::Box { .. } => error(GenericConstantTooComplexSub::BoxNotSupported(node.span))?,
|
||||
|
||||
ExprKind::ByUse { .. } => {
|
||||
error(GenericConstantTooComplexSub::ByUseNotSupported(node.span))?
|
||||
}
|
||||
ExprKind::Unary { .. } => unreachable!(),
|
||||
// we handle valid unary/binary ops above
|
||||
ExprKind::Binary { .. } => {
|
||||
|
@ -317,6 +319,7 @@ impl<'a, 'tcx> IsThirPolymorphic<'a, 'tcx> {
|
|||
| thir::ExprKind::Box { .. }
|
||||
| thir::ExprKind::If { .. }
|
||||
| thir::ExprKind::Call { .. }
|
||||
| thir::ExprKind::ByUse { .. }
|
||||
| thir::ExprKind::Deref { .. }
|
||||
| thir::ExprKind::Binary { .. }
|
||||
| thir::ExprKind::LogicalOp { .. }
|
||||
|
|
|
@ -55,6 +55,8 @@ pub(crate) enum GenericConstantTooComplexSub {
|
|||
BoxNotSupported(#[primary_span] Span),
|
||||
#[label(ty_utils_binary_not_supported)]
|
||||
BinaryNotSupported(#[primary_span] Span),
|
||||
#[label(ty_utils_by_use_not_supported)]
|
||||
ByUseNotSupported(#[primary_span] Span),
|
||||
#[label(ty_utils_logical_op_not_supported)]
|
||||
LogicalOpNotSupported(#[primary_span] Span),
|
||||
#[label(ty_utils_assign_not_supported)]
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue