v / vlib / v2 / gen / cleanc / tests / interface_is_concrete_method_call.v
24 lines · 18 sloc · 296 bytes · 09cc0c5133d075ee6dcff29286dce7eb7d4421da
Raw
1module main
2
3interface Backend {
4 foo()
5}
6
7struct MetalBackend {}
8
9fn (m MetalBackend) foo() {}
10
11fn (m MetalBackend) bar() {
12 println('bar')
13}
14
15fn make_backend() Backend {
16 return MetalBackend{}
17}
18
19fn main() {
20 mut backend := make_backend()
21 if mut backend is MetalBackend {
22 backend.bar()
23 }
24}
25