AnyHashable type-erasing behaves differently on Linux #77508
Labels
bug
A deviation from expected or documented behavior. Also: expected but undesirable behavior.
casting
Feature: explicit casting (is, as, as? and as!)
Foundation
Linux
Platform: Linux
transfer candidate
The issue may belong in another repository
Description
On the linux build of Swift,
AnyHashable
does not appear to have the type-erasing semantics that it does on macOS and iOS. On those platforms, any type of integer converted to anAnyHashable
can then be converted to any other type of integer (providing it fits), whereas on linux, you can only convert it back to the original type.Reproduction
Expected behavior
Expected the
as? Int8
to succeed and returnOptional<Int8>(1)
on all platforms. It only succeeds on macOS and iOS, and returnsnil
on linux.Environment
Swift version 5.10.1 (swift-5.10.1-RELEASE)
Ubuntu 22.04.5 LTS
Additional information
Tested using the following github actions job: tomsci/LuaSwift#7
The issue was found during the development of tomsci/LuaSwift#6 which necessitated a lot of additional code to compensate for the difference in behaviour of AnyHashable.
The text was updated successfully, but these errors were encountered: