mirror of
https://github.com/nim-lang/Nim.git
synced 2026-02-13 06:43:52 +00:00
* fixes #21027; cast expressions need a type
* Apply suggestions from code review
Thanks to @beef331
(cherry picked from commit 1564ae650f)
This commit is contained in:
@@ -361,6 +361,8 @@ proc semCast(c: PContext, n: PNode): PNode =
|
||||
let castedExpr = semExprWithType(c, n[1])
|
||||
if castedExpr.kind == nkClosedSymChoice:
|
||||
errorUseQualifier(c, n[1].info, castedExpr)
|
||||
if targetType == nil:
|
||||
localError(c.config, n.info, "Invalid usage of cast, cast requires a type to convert to, e.g., cast[int](0d).")
|
||||
if tfHasMeta in targetType.flags:
|
||||
localError(c.config, n[0].info, "cannot cast to a non concrete type: '$1'" % $targetType)
|
||||
if not isCastable(c, targetType, castedExpr.typ, n.info):
|
||||
|
||||
5
tests/types/t21027.nim
Normal file
5
tests/types/t21027.nim
Normal file
@@ -0,0 +1,5 @@
|
||||
discard """
|
||||
errormsg: "Invalid usage of cast, cast requires a type to convert to, e.g., cast[int](0d)."
|
||||
"""
|
||||
# bug #21027
|
||||
let x: uint64 = cast(5)
|
||||
Reference in New Issue
Block a user