Skip to content

Commit edee13a

Browse files
committed
Take the leaf type into account for max size
1 parent 59c53b7 commit edee13a

File tree

1 file changed

+10
-0
lines changed

1 file changed

+10
-0
lines changed

stdlib/public/core/KeyPath.swift

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3725,6 +3725,16 @@ internal struct InstantiateKeyPathBuffer: KeyPathPatternVisitor {
37253725
leafMetadataRef: MetadataReference,
37263726
kvcCompatibilityString: UnsafeRawPointer?) {
37273727
self.genericEnvironment = genericEnvironment
3728+
3729+
let leaf = _resolveKeyPathMetadataReference(
3730+
leafMetadataRef,
3731+
genericEnvironment: genericEnvironment,
3732+
arguments: patternArgs
3733+
)
3734+
3735+
let size = _openExistential(leaf, do: _getTypeSize(_:))
3736+
3737+
maxSize = Swift.max(maxSize, size)
37283738
}
37293739

37303740
mutating func visitStoredComponent(kind: KeyPathStructOrClass,

0 commit comments

Comments
 (0)