lean4-htt/tests/elab/async_select_timer.lean
Sofia Rodrigues 2e48cd293a
refactor: move Async and Http from Internal to Std (#13511)
This PR moves Async and Http from Internal to Std
2026-04-23 19:55:22 +00:00

32 lines
697 B
Text
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import Std.Async.Timer
open Std Async
def test1 : Async Nat := do
let s1 ← Sleep.mk 1000
let s2 ← Sleep.mk 1500
Selectable.one #[
.case (s2.selector) fun _ => return 2,
.case (s1.selector) fun _ => return 1,
]
/-- info: 1 -/
#guard_msgs in
#eval test1 |>.block
def test2 : Async Nat := do
Selectable.one #[
.case (← Selector.sleep 1500) fun _ => return 2,
.case (← Selector.sleep 1000) fun _ => return 1,
]
/-- info: 1 -/
#guard_msgs in
#eval EAsync.block <| show Async _ from do
test2
/-- error: Selectable.one requires at least one Selectable -/
#guard_msgs in
#eval EAsync.block <| show Async _ from do
let foo ← Selectable.one (α := Unit) #[]