Locale.MeasurementSystem ignored by MeasurmentFormatter

I've customized the US locale with a metric measurement system, but when selectin natural unit style, I still got an imperial formatted distance string. (feet, miles etc) this also reproduces in the playground The expected behavior here is for the formatter to use the measurement system in the Locale object

I've found this too - using XCode 14.3 with an iOS 16.4 simulator, and a real iPhone 13 mini on iOS 16.6, both set to UK region with a metric measurement system.

let distance = Measurement(value: 22855.54, unit: .meters)
Text(distance, format: .measurement(width: .wide, usage: .road))

formats as 14 miles.

In the XCode debugger at a breakpoint where the Text is constructed:

(lldb) p String("\(distance)")
(String) $R0 = "22855.54 m"
(lldb) p Locale.current.measurementSystem
(Foundation.Locale.MeasurementSystem) $R1 = (_identifier = "metric", _normalizedIdentifier = "metric")
Locale.MeasurementSystem ignored by MeasurmentFormatter
 
 
Q