Files
Nim/tests/generics/tbaddeprecated.nim
metagn e92d7681bb consistent use of scForceOpen for generic dot field symbols (#21738)
* always force open generic dot field symbols?

fixes #21724 but might break code

* alternative, should fix CI

* other alternative, add test for previous CI failure

* not needed

* make sure call doesn't compile too

* ok actual second test

* ok final actual correct test

* apply performance idea

* don't make fromDotExpr static
2023-05-05 07:28:06 +02:00

56 lines
1.3 KiB
Nim

discard """
output: '''
not deprecated
not deprecated
not error
not error
'''
"""
# issue #21724
block: # deprecated
{.push warningAsError[Deprecated]: on.}
type
SomeObj = object
hey: bool
proc hey() {.deprecated: "Shouldn't use this".} = echo "hey"
proc gen(o: auto) =
doAssert not compiles(o.hey())
if o.hey:
echo "not deprecated"
gen(SomeObj(hey: true))
doAssert not (compiles do:
proc hey(o: SomeObj) {.deprecated: "Shouldn't use this".} = echo "hey"
proc gen2(o: auto) =
if o.hey():
echo "not deprecated"
gen2(SomeObj(hey: true)))
proc hey(o: SomeObj) {.deprecated: "Shouldn't use this".} = echo "hey"
proc gen3(o: auto) =
if o.hey:
echo "not deprecated"
gen3(SomeObj(hey: true))
{.pop.}
block: # error
type
SomeObj = object
hey: bool
proc hey() {.error: "Shouldn't use this".} = echo "hey"
proc gen(o: auto) =
doAssert not compiles(o.hey())
if o.hey:
echo "not error"
gen(SomeObj(hey: true))
doAssert not (compiles do:
proc hey(o: SomeObj) {.error: "Shouldn't use this".} = echo "hey"
proc gen2(o: auto) =
if o.hey():
echo "not error"
gen2(SomeObj(hey: true)))
proc hey(o: SomeObj) {.error: "Shouldn't use this".} = echo "hey"
proc gen3(o: auto) =
if o.hey:
echo "not error"
gen3(SomeObj(hey: true))