diff options
Diffstat (limited to 'compiler')
-rw-r--r-- | compiler/sem.nim | 1 | ||||
-rw-r--r-- | compiler/semexprs.nim | 7 | ||||
-rw-r--r-- | compiler/semstmts.nim | 3 |
3 files changed, 4 insertions, 7 deletions
diff --git a/compiler/sem.nim b/compiler/sem.nim index 119393e25..194f88809 100644 --- a/compiler/sem.nim +++ b/compiler/sem.nim @@ -444,6 +444,7 @@ proc semAfterMacroCall(c: PContext, call, macroResult: PNode, const errMissingGenericParamsForTemplate = "'$1' has unspecified generic parameters" + errFloatToString = "cannot convert '$1' to '$2'" proc semMacroExpr(c: PContext, n, nOrig: PNode, sym: PSym, flags: TExprFlags = {}): PNode = diff --git a/compiler/semexprs.nim b/compiler/semexprs.nim index 735f2646f..765110d56 100644 --- a/compiler/semexprs.nim +++ b/compiler/semexprs.nim @@ -514,11 +514,8 @@ proc changeType(c: PContext; n: PNode, newType: PType, check: bool) = localError(c.config, n.info, "cannot convert " & $value & " to " & typeToString(newType)) of nkFloatLit..nkFloat64Lit: - if check: - echo newType.kind - if not floatRangeCheck(n.floatVal, newType): - localError(c.config, n.info, "cannot convert " & $n.floatVal & - " to " & typeToString(newType)) + if check and not floatRangeCheck(n.floatVal, newType): + localError(c.config, n.info, errFloatToString % [$n.floatVal, typeToString(newType)]) else: discard n.typ = newType diff --git a/compiler/semstmts.nim b/compiler/semstmts.nim index 9c67fa565..5a9c92647 100644 --- a/compiler/semstmts.nim +++ b/compiler/semstmts.nim @@ -293,8 +293,7 @@ proc fitRemoveHiddenConv(c: PContext, typ: PType, n: PNode): PNode = result.info = n.info result.typ = typ if not floatRangeCheck(result.floatVal, typ): - localError(c.config, n.info, "cannot convert " & $result.floatVal & - " to " & typeToString(typ)) + localError(c.config, n.info, errFloatToString % [$n.floatVal, typeToString(typ)]) else: changeType(c, r1, typ, check=true) result = r1 |