diff options
author | Araq <rumpf_a@web.de> | 2020-05-02 13:37:57 +0200 |
---|---|---|
committer | Andreas Rumpf <rumpf_a@web.de> | 2020-05-02 22:31:19 +0200 |
commit | 87ac28d19ac9740d871ac85a8c79178344c6b7b3 (patch) | |
tree | c5eda6ef081a806983b9c957d359f16c3964e2dd /compiler | |
parent | 4301a7bdf06159501f8affc3e7f8de80a196cd4f (diff) | |
download | Nim-87ac28d19ac9740d871ac85a8c79178344c6b7b3.tar.gz |
fixes #14159 [backport:1.2]
Diffstat (limited to 'compiler')
-rw-r--r-- | compiler/dfa.nim | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/compiler/dfa.nim b/compiler/dfa.nim index e4cadde5b..0cefec285 100644 --- a/compiler/dfa.nim +++ b/compiler/dfa.nim @@ -639,8 +639,10 @@ proc isAnalysableFieldAccess*(orig: PNode; owner: PSym): bool = of nkHiddenDeref, nkDerefExpr: # We "own" sinkparam[].loc but not ourVar[].location as it is a nasty # pointer indirection. + # bug #14159, we cannot reason about sinkParam[].location as it can + # still be shared for tyRef. n = n[0] - return n.kind == nkSym and n.sym.owner == owner and (isSinkParam(n.sym) or + return n.kind == nkSym and n.sym.owner == owner and ( n.sym.typ.skipTypes(abstractInst-{tyOwned}).kind in {tyOwned}) else: break |