Skip to content

Commit

Permalink
fix typos and deprecation warnings for tconvariancerules.nim (nim-lan…
Browse files Browse the repository at this point in the history
  • Loading branch information
krux02 authored Mar 27, 2020
1 parent 289b31e commit 142c59f
Showing 1 changed file with 20 additions and 21 deletions.
41 changes: 20 additions & 21 deletions tests/cpp/tcovariancerules.nim
Original file line number Diff line number Diff line change
Expand Up @@ -28,9 +28,9 @@ template reject(x) =

import macros

macro skipElse(n: untyped): typed = n[0]
macro skipElse(n: untyped): untyped = n[0]

template acceptWithCovariance(x, otherwise): typed =
template acceptWithCovariance(x, otherwise): untyped =
when nimEnableCovariance:
x
else:
Expand Down Expand Up @@ -79,16 +79,16 @@ proc wantsCovariantSeq2(s: seq[AnimalRef]) =
proc wantsCovariantSeq3(s: seq[RefAlias[Animal]]) =
for a in s: echo a.x

proc wantsCovariantOperArray(s: openarray[ref Animal]) =
proc wantsCovariantOpenArray(s: openarray[ref Animal]) =
for a in s: echo a.x

proc modifiesCovariantOperArray(s: var openarray[ref Animal]) =
proc modifiesCovariantOpenArray(s: var openarray[ref Animal]) =
for a in s: echo a.x

proc modifiesDerivedOperArray(s: var openarray[ref Dog]) =
proc modifiesDerivedOpenArray(s: var openarray[ref Dog]) =
for a in s: echo a.x

proc wantsNonCovariantOperArray(s: openarray[Animal]) =
proc wantsNonCovariantOpenArray(s: openarray[Animal]) =
for a in s: echo a.x

proc wantsCovariantArray(s: array[2, ref Animal]) =
Expand Down Expand Up @@ -199,15 +199,15 @@ accept:
wantsCovariantSeq3(@[AnimalRef(cat), dog])
wantsCovariantSeq3(@[cat, dog])

wantsCovariantOperArray([cat, dog])
wantsCovariantOpenArray([cat, dog])

acceptWithCovariance:
wantsCovariantSeq1(@[cat, cat])
wantsCovariantSeq2(@[dog, makeDerivedRef("dog X")])
# XXX: wantsCovariantSeq3(@[cat, cat])

wantsCovariantOperArray(@[cat, cat])
wantsCovariantOperArray([dog, dog])
wantsCovariantOpenArray(@[cat, cat])
wantsCovariantOpenArray([dog, dog])
else:
echo "cat"
echo "cat"
Expand All @@ -226,7 +226,7 @@ accept:
modifiesDerivedArray(dogRefsArray)
modifiesDerivedSeq(dogRefs)

reject modifiesCovariantSeq(dogRefs)
reject modifiesCovariantSeqd(ogRefs)
reject modifiesCovariantSeq(addr(dogRefs))
reject modifiesCovariantSeq(dogRefs.addr)

Expand All @@ -245,19 +245,19 @@ when false:
wantsNonCovariantArray animalValuesArray

reject wantsNonCovariantSeq(dogRefs)
reject modifiesCovariantOperArray(dogRefs)
reject modifiesCovariantOpenArray(dogRefs)
reject wantsNonCovariantArray(dogRefsArray)
reject wantsNonCovariantSeq(dogValues)
reject wantsNonCovariantArray(dogValuesArray)
reject modifiesValueArray()

modifiesDerivedOperArray dogRefs
reject modifiesDerivedOperArray(dogValues)
reject modifiesDerivedOperArray(animalRefs)
modifiesDerivedOpenArray dogRefs
reject modifiesDerivedOpenArray(dogValues)
reject modifiesDerivedOpenArray(animalRefs)

reject wantsNonCovariantOperArray(animalRefs)
reject wantsNonCovariantOperArray(dogRefs)
reject wantsNonCovariantOperArray(dogValues)
reject wantsNonCovariantOpenArray(animalRefs)
reject wantsNonCovariantOpenArray(dogRefs)
reject wantsNonCovariantOpenArray(dogValues)

var animalRefSeq: seq[ref Animal]

Expand Down Expand Up @@ -300,12 +300,12 @@ template <class T> struct ARR { typedef T DataType[2]; DataType data; };
""".}

type
MyPtr {.importcpp: "'0 *"} [out T] = object
MyPtr[out T] {.importcpp: "'0 *"} = object

MySeq {.importcpp: "ARR<'0>", nodecl} [out T] = object
MySeq[out T] {.importcpp: "ARR<'0>", nodecl} = object
data: array[2, T]

MyAction {.importcpp: "FN<'0>::type"} [in T] = object
MyAction[in T] {.importcpp: "FN<'0>::type"} = object

var
cAnimal: MyPtr[Animal]
Expand Down Expand Up @@ -415,4 +415,3 @@ reject usesAddressOfAnimalRefSeq(addr cAnimalValues)
reject usesAddressOfAnimalRefSeq(addr cDogValues)
accept usesAddressOfAnimalRefSeq(addr cAnimals)
reject usesAddressOfAnimalRefSeq(addr cDogs)

0 comments on commit 142c59f

Please sign in to comment.