mirror of
https://github.com/nim-lang/Nim.git
synced 2025-12-28 17:04:41 +00:00
(cherry picked from commit 04c48e3c5b)
This commit is contained in:
@@ -454,6 +454,7 @@ proc foldArrayAccess(m: PSym, n: PNode; idgen: IdGenerator; g: ModuleGraph): PNo
|
||||
|
||||
proc foldFieldAccess(m: PSym, n: PNode; idgen: IdGenerator; g: ModuleGraph): PNode =
|
||||
# a real field access; proc calls have already been transformed
|
||||
if n[1].kind != nkSym: return nil
|
||||
var x = getConstExpr(m, n[0], idgen, g)
|
||||
if x == nil or x.kind notin {nkObjConstr, nkPar, nkTupleConstr}: return
|
||||
|
||||
|
||||
16
tests/whenstmt/t19426.nim
Normal file
16
tests/whenstmt/t19426.nim
Normal file
@@ -0,0 +1,16 @@
|
||||
type
|
||||
MyInt = object
|
||||
bitWidth: int
|
||||
|
||||
template toRealType*(t: MyInt): typedesc =
|
||||
when t.bitWidth == 32: int32
|
||||
elif t.bitWidth == 64: int64
|
||||
else: {.error.}
|
||||
|
||||
proc doFail(T: typedesc): T = default(T)
|
||||
|
||||
proc test =
|
||||
const myInt = MyInt(bitWidth:32)
|
||||
discard doFail(toRealType(myInt))
|
||||
|
||||
test()
|
||||
Reference in New Issue
Block a user