Skip to content

Commit 6cdfc29

Browse files
committed
[typelowering] Use the RawASTType when looking up TypeLowerings.
This ensures that trivial moveonlywrapped values are not treated as trivial thus enabling us to track ownership for them.
1 parent 1228265 commit 6cdfc29

File tree

1 file changed

+5
-1
lines changed

1 file changed

+5
-1
lines changed

lib/SIL/IR/TypeLowering.cpp

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2558,7 +2558,11 @@ TypeConverter::getTypeLowering(SILType type,
25582558
CanGenericSignature sig) {
25592559
// The type lowering for a type parameter relies on its context.
25602560
assert(sig || !type.getASTType()->hasTypeParameter());
2561-
auto loweredType = type.getASTType();
2561+
2562+
// We use the Raw AST type to ensure that moveonlywrapped values use the move
2563+
// only type lowering. This ensures that trivial moveonlywrapped values are
2564+
// not trivial.
2565+
auto loweredType = type.getRawASTType();
25622566
auto isTypeExpansionSensitive = loweredType->hasOpaqueArchetype()
25632567
? IsTypeExpansionSensitive
25642568
: IsNotTypeExpansionSensitive;

0 commit comments

Comments
 (0)