From 3dc302662e2665a0c1467a290c689f40d8a2e263 Mon Sep 17 00:00:00 2001 From: metagn Date: Tue, 20 Sep 2022 15:58:22 +0300 Subject: [PATCH] clarify distinct pointer type `nil` change (#20376) * clarify distinct pointer type `nil` change * Update changelog.md [skip ci] Co-authored-by: Clay Sweetser * remove extra quote [skip ci] Co-authored-by: Clay Sweetser --- changelog.md | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/changelog.md b/changelog.md index 9364ab573a..3281f65264 100644 --- a/changelog.md +++ b/changelog.md @@ -29,7 +29,15 @@ - `nimPreviewDotLikeOps` is going to be removed or deprecated. - The `{.this.}` pragma, deprecated since 0.19, has been removed. -- `nil` is no longer a valid value for distinct pointer types. +- `nil` literals can no longer be directly assigned to variables or fields of `distinct` pointer types. They must be converted instead. + ```nim + type Foo = distinct ptr int + + # Before: + var x: Foo = nil + # After: + var x: Foo = Foo(nil) + ``` - Removed two type pragma syntaxes deprecated since 0.20, namely `type Foo = object {.final.}`, and `type Foo {.final.} [T] = object`.