* remove deprecated pragma syntax from 0.20.0 closes #4651, closes #16653 with a cheap fix for now due to how early `tfFinal` is set * remove type pragma between name and generics * undo removal, try removing bind expression (0.8.14) * fix test, unremove bind expr * remove again * Update changelog.md Co-authored-by: konsumlamm <44230978+konsumlamm@users.noreply.github.com> * dependencies @ HEAD & weave test dependencies * try fix package ci Co-authored-by: konsumlamm <44230978+konsumlamm@users.noreply.github.com>
20 lines
483 B
Nim
20 lines
483 B
Nim
type
|
|
TAnimal{.inheritable.}=object
|
|
PAnimal=ref TAnimal
|
|
|
|
TDog=object of TAnimal
|
|
PDog=ref TDog
|
|
|
|
TCat=object of TAnimal
|
|
PCat=ref TCat
|
|
|
|
TAnimalArray=array[0..2,PAnimal]
|
|
|
|
proc newDog():PDog = new(result)
|
|
proc newCat():PCat = new(result)
|
|
proc test(a:openArray[PAnimal])=
|
|
echo("dummy")
|
|
|
|
#test(newDog(),newCat()) #does not work
|
|
var myarray:TAnimalArray=[newDog(),newCat(),newDog()] #does not work
|
|
#var myarray2:TAnimalArray=[newDog(),newDog(),newDog()] #does not work either
|