1234567891011121314151617181920212223242526272829303132 |
- discard """
- matrix: "-u:nimPreviewNonVarDestructor;"
- """
- type DistinctSeq* = distinct seq[int]
- # `=destroy`(cast[ptr DistinctSeq](0)[])
- var x = @[].DistinctSeq
- `=destroy`(x)
- import std/options
- # bug #24801
- type
- B[T] = object
- case r: bool
- of false:
- v: ref int
- of true:
- x: T
- E = distinct seq[int]
- U = ref object of RootObj
- G = ref object of U
- proc a(): E = default(E)
- method c(_: U): seq[E] {.base.} = discard
- proc p(): seq[E] = c(default(U))
- method c(_: G): seq[E] = discard E(newSeq[seq[int]](1)[0])
- method y(_: U) {.base.} =
- let s = default(B[tuple[f: B[int], w: B[int]]])
- discard some(s.x)
|