Skip to content

Commit

Permalink
print warning when calling failed (#521)
Browse files Browse the repository at this point in the history
`failed` cannot return true for futures that don't forward exceptions
  • Loading branch information
arnetheduck authored Mar 8, 2024
1 parent 17b7a76 commit 47cc177
Showing 1 changed file with 11 additions and 2 deletions.
13 changes: 11 additions & 2 deletions chronos/internal/raisesfutures.nim
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@ import
std/[macros, sequtils],
../futures

{.push raises: [].}

type
InternalRaisesFuture*[T, E] = ref object of Future[T]
## Future with a tuple of possible exception types
Expand Down Expand Up @@ -205,13 +207,20 @@ macro checkRaises*[T: CatchableError](
`warning`
assert(`runtimeChecker`, `errorMsg`)

proc error*[T](future: InternalRaisesFuture[T, void]): ref CatchableError {.
func failed*[T](future: InternalRaisesFuture[T, void]): bool {.inline.} =
## Determines whether ``future`` finished with an error.
static:
warning("No exceptions possible with this operation, `failed` always returns false")

false

func error*[T](future: InternalRaisesFuture[T, void]): ref CatchableError {.
raises: [].} =
static:
warning("No exceptions possible with this operation, `error` always returns nil")
nil

proc readError*[T](future: InternalRaisesFuture[T, void]): ref CatchableError {.
func readError*[T](future: InternalRaisesFuture[T, void]): ref CatchableError {.
raises: [ValueError].} =
static:
warning("No exceptions possible with this operation, `readError` always raises")
Expand Down

0 comments on commit 47cc177

Please sign in to comment.