diff --git a/examples/demo/demo.odin b/examples/demo/demo.odin index fd15b2a97..d65c83059 100644 --- a/examples/demo/demo.odin +++ b/examples/demo/demo.odin @@ -746,6 +746,34 @@ map_type :: proc() { } +implicit_selector_expression :: proc() { + fmt.println("# implicit selector expression"); + + Foo :: enum {A, B, C}; + + f: Foo; + f = .A; + + BAR :: bit_set[Foo]{.B, .C}; + + switch f { + case .A: + fmt.println("HERE"); + case .B: + fmt.println("NEVER"); + case .C: + fmt.println("FOREVER"); + } + + my_map := make(map[Foo]int); + defer delete(my_map); + + my_map[.A] = 123; + my_map[Foo.B] = 345; + + fmt.println(my_map[.A] + my_map[Foo.B] + my_map[.C]); +} + explicit_procedure_overloading :: proc() { fmt.println("# explicit procedure overloading"); @@ -940,6 +968,7 @@ main :: proc() { named_proc_return_parameters(); using_enum(); map_type(); + implicit_selector_expression(); explicit_procedure_overloading(); complete_switch(); cstring_example();