diff options
author | Andreas Rumpf <rumpf_a@web.de> | 2016-12-21 11:09:47 +0100 |
---|---|---|
committer | Andreas Rumpf <rumpf_a@web.de> | 2016-12-21 11:09:47 +0100 |
commit | 06a8d37f9a6e194351c58c6668df4a4e69c5f470 (patch) | |
tree | 057ca9511083296a56f5f67c076e358d794654ab | |
parent | c166394024a1f985c08bd4143936112f0ec07e25 (diff) | |
download | Nim-06a8d37f9a6e194351c58c6668df4a4e69c5f470.tar.gz |
fixes #5135
-rw-r--r-- | compiler/sighashes.nim | 5 | ||||
-rw-r--r-- | tests/template/tconfusinglocal.nim | 4 | ||||
-rw-r--r-- | tests/template/tsighash_regression.nim | 5 |
3 files changed, 14 insertions, 0 deletions
diff --git a/compiler/sighashes.nim b/compiler/sighashes.nim index e7737e44a..145d3ff5a 100644 --- a/compiler/sighashes.nim +++ b/compiler/sighashes.nim @@ -281,6 +281,11 @@ proc hashNonProc*(s: PSym): SigHash = c &= it.name.s c &= "." it = it.owner + # for bug #5135 we also take the position into account, but only + # for parameters, because who knows what else position dependency + # might cause: + if s.kind == skParam: + c &= s.position md5Final c, result.Md5Digest proc hashOwner*(s: PSym): SigHash = diff --git a/tests/template/tconfusinglocal.nim b/tests/template/tconfusinglocal.nim index 9b2cdc954..50bf8f4b2 100644 --- a/tests/template/tconfusinglocal.nim +++ b/tests/template/tconfusinglocal.nim @@ -1,4 +1,8 @@ +# bug #5135 +proc fail*[E](e: E): void = + raise newException(Exception, e) + # bug #4875 type Bar = object mFoo: int diff --git a/tests/template/tsighash_regression.nim b/tests/template/tsighash_regression.nim new file mode 100644 index 000000000..bf1f4dfe4 --- /dev/null +++ b/tests/template/tsighash_regression.nim @@ -0,0 +1,5 @@ + +import tconfusinglocal + + +fail "foo" |