mirror of
https://github.com/vlang/v.git
synced 2023-08-10 21:13:21 +03:00
cgen: handle is for interfaces
This commit is contained in:
@@ -26,7 +26,7 @@ fn (c Cat) name_detailed(pet_name string) string {
|
||||
return '$pet_name the ${typeof(c)}, breed:${c.breed}'
|
||||
}
|
||||
|
||||
fn (c mut Cat) set_breed(new string) {
|
||||
fn (mut c Cat) set_breed(new string) {
|
||||
c.breed = new
|
||||
}
|
||||
|
||||
@@ -49,12 +49,11 @@ fn (d Dog) name_detailed(pet_name string) string {
|
||||
return '$pet_name the ${typeof(d)}, breed:${d.breed}'
|
||||
}
|
||||
|
||||
fn (d mut Dog) set_breed(new string) {
|
||||
fn (mut d Dog) set_breed(new string) {
|
||||
println('Nah')
|
||||
}
|
||||
|
||||
// do not add to Dog the utility function 'str', so the default one will be used, as a sample
|
||||
|
||||
fn test_todo() {
|
||||
if true {
|
||||
} else {
|
||||
@@ -66,9 +65,9 @@ fn perform_speak(a Animal) {
|
||||
assert true
|
||||
name := a.name()
|
||||
assert name == 'Dog' || name == 'Cat'
|
||||
// if a is Dog {
|
||||
// assert name == 'Dog'
|
||||
// }
|
||||
if a is Dog {
|
||||
assert name == 'Dog'
|
||||
}
|
||||
println(a.name())
|
||||
println('Got animal of type: ${typeof(a)}') // TODO: get implementation type (if possible)
|
||||
// assert a is Dog || a is Cat // TODO: enable when available
|
||||
@@ -151,7 +150,7 @@ fn test_perform_name_detailed() {
|
||||
perform_speak(cat_persian2)
|
||||
cat_persian2_str := cat_persian2.str()
|
||||
println("Persian Cat 2: '$cat_persian2_str' ...")
|
||||
assert cat_persian2_str == "Custom string conversion for Cat: Persian"
|
||||
assert cat_persian2_str == 'Custom string conversion for Cat: Persian'
|
||||
println('Test (dummy/empty) on array of animals ...')
|
||||
handle_animals([dog, cat])
|
||||
handle_animals_mutable([dog, cat])
|
||||
|
||||
Reference in New Issue
Block a user