mirror of
https://github.com/nim-lang/Nim.git
synced 2025-12-30 09:54:49 +00:00
* fixes #17369 * megatest is green for --cpu:arm64 * docgen output includes more tags/raises * implemented 'effectsOf' * algorithm.nim: uses new effectsOf annotation * closes #18376 * closes #17475 * closes #13905 * allow effectsOf: [a, b] * added a test case * parameters that are not ours cannot be declared as .effectsOf * documentation * manual: added the 'sort' example * bootstrap with the new better options
28 lines
479 B
Nim
28 lines
479 B
Nim
discard """
|
|
errormsg: "cmpE can raise an unlisted exception: Exception"
|
|
line: 27
|
|
"""
|
|
|
|
{.push warningAsError[Effect]: on.}
|
|
|
|
{.experimental: "strictEffects".}
|
|
|
|
import algorithm
|
|
|
|
type
|
|
MyInt = distinct int
|
|
|
|
var toSort = @[MyInt 1, MyInt 2, MyInt 3]
|
|
|
|
proc cmpN(a, b: MyInt): int =
|
|
cmp(a.int, b.int)
|
|
|
|
proc harmless {.raises: [].} =
|
|
toSort.sort cmpN
|
|
|
|
proc cmpE(a, b: MyInt): int {.raises: [Exception].} =
|
|
cmp(a.int, b.int)
|
|
|
|
proc harmfull {.raises: [].} =
|
|
toSort.sort cmpE
|