remove a special case in sigmatch; distinct pointer types no longer match nil type (#20251)

* remove a special case in sigmatch; distinct pointer types no longer match `nil` type

* add tests

* fixes tests

* Update changelog.md

Co-authored-by: konsumlamm <44230978+konsumlamm@users.noreply.github.com>

Co-authored-by: Andreas Rumpf <rumpf_a@web.de>
Co-authored-by: konsumlamm <44230978+konsumlamm@users.noreply.github.com>
This commit is contained in:
ringabout 2022-08-24 01:27:20 +08:00 • committed by GitHub
commit 1182216381
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 30 additions and 15 deletions

View file

@ -0,0 +1,23 @@
discard """
cmd: "nim check $file"
action: reject
nimout: '''
tdistinct_nil.nim(23, 4) Error: type mismatch: got <typeof(nil)>
but expected one of:
proc foo(x: DistinctPointer)
first type mismatch at position: 1
required type for x: DistinctPointer
but expression 'nil' is of type: typeof(nil)
expression: foo(nil)
'''
"""
type
DistinctPointer = distinct pointer
proc foo(x: DistinctPointer) =
discard
foo(DistinctPointer(nil))
foo(nil)