mirror of
https://github.com/nim-lang/Nim.git
synced 2026-06-07 04:14:19 +00:00
fix when statements in inheritable generic objects (#13667) [backport]
This commit is contained in:
@@ -804,7 +804,7 @@ proc addInheritedFieldsAux(c: PContext, check: var IntSet, pos: var int,
|
||||
addInheritedFieldsAux(c, check, pos, lastSon(n[i]))
|
||||
else: internalError(c.config, n.info, "addInheritedFieldsAux(record case branch)")
|
||||
of nkRecList, nkRecWhen, nkElifBranch, nkElse:
|
||||
for i in 0..<n.len:
|
||||
for i in int(n.kind == nkElifBranch)..<n.len:
|
||||
addInheritedFieldsAux(c, check, pos, n[i])
|
||||
of nkSym:
|
||||
incl(check, n.sym.name.id)
|
||||
|
||||
@@ -82,3 +82,14 @@ proc newArrayAnimationSampler*[T](): ArrayAnimationSampler[T] =
|
||||
|
||||
discard newArrayAnimationSampler[Foo6]()
|
||||
discard newArrayAnimationSampler[AnotherFoo]()
|
||||
|
||||
type
|
||||
DefaultIsNone* = pointer | ptr | ref | proc {.nimcall.} | cstring | cstringArray
|
||||
OptionKind* {.pure.} = enum None, Some
|
||||
OptionA* [T] = object of RootObj
|
||||
when T is DefaultIsNone:
|
||||
value: T
|
||||
else:
|
||||
value: T
|
||||
kind: OptionKind
|
||||
SomeA* [T] = object of OptionA[T]
|
||||
|
||||
Reference in New Issue
Block a user