summary refs log tree commit diff stats
path: root/changelog.md
diff options
context:
space:
mode:
authorFlaviu Tamas <tamasflaviu@gmail.com>2018-11-18 21:41:40 -0500
committerFlaviu Tamas <tamasflaviu@gmail.com>2018-12-11 22:15:57 +0000
commitc0a47f7e22039100123eea34a3cb2c956a9eb829 (patch)
tree0745dc548a41f9f2798a66f68507b56014915ab3 /changelog.md
parent22b3e9df27fc65ec49b8ba8ea8de492917988e3d (diff)
downloadNim-c0a47f7e22039100123eea34a3cb2c956a9eb829.tar.gz
Rework nil/option for nre in light of ""==nil
Fixes #9243
Diffstat (limited to 'changelog.md')
-rw-r--r--changelog.md19
1 files changed, 19 insertions, 0 deletions
diff --git a/changelog.md b/changelog.md
index 093ea7ae2..9c1b218f5 100644
--- a/changelog.md
+++ b/changelog.md
@@ -31,6 +31,25 @@
 
 - `options.UnpackError` is no longer a ref type and inherits from `System.Defect` instead of `System.ValueError`.
 
+- nre's `RegexMatch.{captureBounds,captures}[]`  no longer return `Option` or
+  `nil`/`""`, respectivly. Use the newly added `n in p.captures` method to
+  check if a group is captured, otherwise you'll recieve an exception.
+
+- nre's `RegexMatch.{captureBounds,captures}.toTable` no longer accept a
+  default parameter. Instead uncaptured entries are left empty. Use
+  `Table.getOrDefault()` if you need defaults.
+
+- nre's `RegexMatch.captures.{items,toSeq}` now returns an `Option[string]`
+  instead of a `string`. With the removal of `nil` strings, this is the only
+  way to indicate a missing match. Inside your loops, instead of `capture ==
+  ""` or `capture == nil`, use `capture.isSome` to check if a capture is
+  present, and `capture.get` to get its value.
+
+- nre's `replace()` no longer throws `ValueError` when the replacement string
+  has missing captures. It instead throws `KeyError` for named captures, and
+  `IndexError` for un-named captures. This is consistant with
+  `RegexMatch.{captureBounds,captures}[]`.
+
 #### Breaking changes in the compiler
 
 - The compiler now implements the "generic symbol prepass" for `when` statements