From e40ff24c23c9010d66282fa8a3489fe6fa7dc1de Mon Sep 17 00:00:00 2001 From: Timothee Cour Date: Fri, 12 Feb 2021 08:10:20 -0800 Subject: typeToString: type float => typedesc[float] (#17011) * typeToString: type float => typedesc[float] * fixup * fix tests --- changelog.md | 2 ++ compiler/types.nim | 3 ++- tests/array/t9932.nim | 4 ++-- tests/bind/tinvalidbindtypedesc.nim | 2 +- tests/errmsgs/t8610.nim | 4 ++-- tests/errmsgs/tconceptconstraint.nim | 2 +- tests/errmsgs/tgenericconstraint.nim | 2 +- tests/errmsgs/twrong_at_operator.nim | 8 ++++---- tests/metatype/typedesc_as_value.nim | 2 +- tests/typerel/ttypedesc_as_genericparam1.nim | 2 +- tests/typerel/ttypenoval.nim | 2 +- tests/typerel/ttypenovalue.nim | 2 +- tests/typerel/typedescs2.nim | 4 ++-- 13 files changed, 21 insertions(+), 18 deletions(-) diff --git a/changelog.md b/changelog.md index 5d801082a..a4833bbd3 100644 --- a/changelog.md +++ b/changelog.md @@ -162,6 +162,8 @@ provided by the operating system. - The required name of case statement macros for the experimental `caseStmtMacros` feature has changed from `match` to `` `case` ``. +- `typedesc[Foo]` now renders as such instead of `type Foo` in compiler messages. + ## Compiler changes - Added `--declaredlocs` to show symbol declaration location in messages. diff --git a/compiler/types.nim b/compiler/types.nim index 10ff1d09d..6a7b4dbc9 100644 --- a/compiler/types.nim +++ b/compiler/types.nim @@ -448,6 +448,7 @@ proc rangeToStr(n: PNode): string = const typeToStr: array[TTypeKind, string] = ["None", "bool", "char", "empty", "Alias", "typeof(nil)", "untyped", "typed", "typeDesc", + # xxx typeDesc=>typedesc: typedesc is declared as such, and is 10x more common. "GenericInvocation", "GenericBody", "GenericInst", "GenericParam", "distinct $1", "enum", "ordinal[$1]", "array[$1, $2]", "object", "tuple", "set[$1]", "range[$1]", "ptr ", "ref ", "var ", "seq[$1]", "proc", @@ -550,7 +551,7 @@ proc typeToString(typ: PType, prefer: TPreferedDesc = preferName): string = result.add(']') of tyTypeDesc: if t[0].kind == tyNone: result = "typedesc" - else: result = "type " & typeToString(t[0]) + else: result = "typedesc[" & typeToString(t[0]) & "]" of tyStatic: if prefer == preferGenericArg and t.n != nil: result = t.n.renderTree diff --git a/tests/array/t9932.nim b/tests/array/t9932.nim index 1e09c487b..e3c8abba3 100644 --- a/tests/array/t9932.nim +++ b/tests/array/t9932.nim @@ -1,9 +1,9 @@ discard """ cmd: "nim check $file" -errormsg: "invalid type: 'type int' in this context: 'array[0..0, type int]' for var" +errormsg: "invalid type: 'typedesc[int]' in this context: 'array[0..0, typedesc[int]]' for var" nimout: ''' t9932.nim(10, 5) Error: invalid type: 'type' in this context: 'array[0..0, type]' for var -t9932.nim(11, 5) Error: invalid type: 'type int' in this context: 'array[0..0, type int]' for var +t9932.nim(11, 5) Error: invalid type: 'typedesc[int]' in this context: 'array[0..0, typedesc[int]]' for var ''' """ diff --git a/tests/bind/tinvalidbindtypedesc.nim b/tests/bind/tinvalidbindtypedesc.nim index 4bcd4e39d..1c71c8daf 100644 --- a/tests/bind/tinvalidbindtypedesc.nim +++ b/tests/bind/tinvalidbindtypedesc.nim @@ -1,5 +1,5 @@ discard """ - errormsg: "type mismatch: got " + errormsg: "type mismatch: got " line: 10 """ diff --git a/tests/errmsgs/t8610.nim b/tests/errmsgs/t8610.nim index d3405bc91..ec99beae5 100644 --- a/tests/errmsgs/t8610.nim +++ b/tests/errmsgs/t8610.nim @@ -1,5 +1,5 @@ discard """ - errormsg: "invalid type: 'type int' for const" + errormsg: "invalid type: 'typedesc[int]' for const" """ -## issue #8610 +## bug #8610 const Foo = int diff --git a/tests/errmsgs/tconceptconstraint.nim b/tests/errmsgs/tconceptconstraint.nim index 9ab1708c7..b1977acbc 100644 --- a/tests/errmsgs/tconceptconstraint.nim +++ b/tests/errmsgs/tconceptconstraint.nim @@ -2,7 +2,7 @@ discard """ errormsg: "cannot instantiate B" line: 20 nimout: ''' -got: +got: but expected: ''' """ diff --git a/tests/errmsgs/tgenericconstraint.nim b/tests/errmsgs/tgenericconstraint.nim index e3093fead..b7272e787 100644 --- a/tests/errmsgs/tgenericconstraint.nim +++ b/tests/errmsgs/tgenericconstraint.nim @@ -2,7 +2,7 @@ discard """ errormsg: "cannot instantiate B" line: 14 nimout: ''' -got: +got: but expected: ''' """ diff --git a/tests/errmsgs/twrong_at_operator.nim b/tests/errmsgs/twrong_at_operator.nim index ebf6d966b..d7bfca415 100644 --- a/tests/errmsgs/twrong_at_operator.nim +++ b/tests/errmsgs/twrong_at_operator.nim @@ -1,17 +1,17 @@ discard """ -errormsg: "type mismatch: got " +errormsg: "type mismatch: got " line: 22 nimout: ''' -twrong_at_operator.nim(22, 30) Error: type mismatch: got +twrong_at_operator.nim(22, 30) Error: type mismatch: got but expected one of: proc `@`[IDX, T](a: sink array[IDX, T]): seq[T] first type mismatch at position: 1 required type for a: sink array[IDX, T] - but expression '[int]' is of type: array[0..0, type int] + but expression '[int]' is of type: array[0..0, typedesc[int]] proc `@`[T](a: openArray[T]): seq[T] first type mismatch at position: 1 required type for a: openArray[T] - but expression '[int]' is of type: array[0..0, type int] + but expression '[int]' is of type: array[0..0, typedesc[int]] expression: @[int] ''' diff --git a/tests/metatype/typedesc_as_value.nim b/tests/metatype/typedesc_as_value.nim index 69eaf8a5c..463d23724 100644 --- a/tests/metatype/typedesc_as_value.nim +++ b/tests/metatype/typedesc_as_value.nim @@ -1,5 +1,5 @@ discard """ - errormsg: "invalid type: 'type int' for var" + errormsg: "invalid type: 'typedesc[int]' for var" """ diff --git a/tests/typerel/ttypedesc_as_genericparam1.nim b/tests/typerel/ttypedesc_as_genericparam1.nim index b7c3e727d..3998a6a5f 100644 --- a/tests/typerel/ttypedesc_as_genericparam1.nim +++ b/tests/typerel/ttypedesc_as_genericparam1.nim @@ -1,5 +1,5 @@ discard """ - errormsg: "type mismatch: got " + errormsg: "type mismatch: got " line: 6 """ # bug #3079, #1146 diff --git a/tests/typerel/ttypenoval.nim b/tests/typerel/ttypenoval.nim index c7829f9dd..ca6c920ec 100644 --- a/tests/typerel/ttypenoval.nim +++ b/tests/typerel/ttypenoval.nim @@ -1,5 +1,5 @@ discard """ - errormsg: "type mismatch: got but expected 'int'" + errormsg: "type mismatch: got but expected 'int'" file: "ttypenoval.nim" line: 38 """ diff --git a/tests/typerel/ttypenovalue.nim b/tests/typerel/ttypenovalue.nim index 9af978466..4664253ea 100644 --- a/tests/typerel/ttypenovalue.nim +++ b/tests/typerel/ttypenovalue.nim @@ -1,5 +1,5 @@ discard """ - errormsg: "invalid type: 'type seq[tuple[title: string, body: string]]' for var" + errormsg: "invalid type: 'typedesc[seq[tuple[title: string, body: string]]]' for var" line: 7 """ diff --git a/tests/typerel/typedescs2.nim b/tests/typerel/typedescs2.nim index 0b0b12986..a0308719d 100644 --- a/tests/typerel/typedescs2.nim +++ b/tests/typerel/typedescs2.nim @@ -1,10 +1,10 @@ discard """ - errormsg: "invalid type: 'type Table' for const" + errormsg: "invalid type: 'typedesc[Table]' for const" file: "typedescs2.nim" line: 16 """ -# issue #9961 +# bug #9961 import typetraits import tables -- cgit 1.4.1-2-gfad0