mirror of
https://github.com/nim-lang/Nim.git
synced 2025-12-29 17:34:43 +00:00
* 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
56 lines
1.3 KiB
Nim
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))
|