ImplicitEqualsOverOptional.yql 1.0 KB

123456789101112131415161718192021222324252627282930
  1. (
  2. (let config (DataSource 'config))
  3. (let world (Configure! world config 'PureDataSource 'yt))
  4. (let res_sink (DataSink 'result))
  5. # result is true for all tests below
  6. # Int32 -> Uint64?? (false)
  7. (let value (Int32 '"-1"))
  8. (let commonType (OptionalType (OptionalType (DataType 'Uint64))))
  9. (let imlicitEqualsResult (Exists (StrictCast value commonType)))
  10. (let world (Write! world res_sink (Key) imlicitEqualsResult '('('type))))
  11. # Just(Int32) -> Uint64?? (false)
  12. (let value (Just (Int32 '"-1")))
  13. (let commonType (OptionalType (OptionalType (DataType 'Uint64))))
  14. (let imlicitEqualsResult (Exists (StrictCast value commonType)))
  15. (let world (Write! world res_sink (Key) imlicitEqualsResult '('('type))))
  16. # Nothing(Int32)? -> Uint64?? (true)
  17. (let value (Just (Nothing (OptionalType (DataType 'Int32)))))
  18. (let commonType (OptionalType (OptionalType (DataType 'Uint64))))
  19. (let imlicitEqualsResult (Exists (StrictCast value commonType)))
  20. (let world (Write! world res_sink (Key) imlicitEqualsResult '('('type))))
  21. (let world (Commit! world res_sink))
  22. (return world)
  23. )