diff options
author | Timothee Cour <timothee.cour2@gmail.com> | 2021-02-12 08:10:20 -0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-02-12 17:10:20 +0100 |
commit | e40ff24c23c9010d66282fa8a3489fe6fa7dc1de (patch) | |
tree | 408b61c6ef0c220285d8f055f3d98bc4cafc7b50 | |
parent | f57774e1e70636ab68e5f2bc0a0cb47f7a8628f5 (diff) | |
download | Nim-e40ff24c23c9010d66282fa8a3489fe6fa7dc1de.tar.gz |
typeToString: type float => typedesc[float] (#17011)
* typeToString: type float => typedesc[float] * fixup * fix tests
-rw-r--r-- | changelog.md | 2 | ||||
-rw-r--r-- | compiler/types.nim | 3 | ||||
-rw-r--r-- | tests/array/t9932.nim | 4 | ||||
-rw-r--r-- | tests/bind/tinvalidbindtypedesc.nim | 2 | ||||
-rw-r--r-- | tests/errmsgs/t8610.nim | 4 | ||||
-rw-r--r-- | tests/errmsgs/tconceptconstraint.nim | 2 | ||||
-rw-r--r-- | tests/errmsgs/tgenericconstraint.nim | 2 | ||||
-rw-r--r-- | tests/errmsgs/twrong_at_operator.nim | 8 | ||||
-rw-r--r-- | tests/metatype/typedesc_as_value.nim | 2 | ||||
-rw-r--r-- | tests/typerel/ttypedesc_as_genericparam1.nim | 2 | ||||
-rw-r--r-- | tests/typerel/ttypenoval.nim | 2 | ||||
-rw-r--r-- | tests/typerel/ttypenovalue.nim | 2 | ||||
-rw-r--r-- | 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 <type float, string>" + errormsg: "type mismatch: got <typedesc[float], string>" 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: <type string> +got: <typedesc[string]> but expected: <T: A> ''' """ 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: <type int> +got: <typedesc[int]> but expected: <T: string or float> ''' """ 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 <array[0..0, type int]>" +errormsg: "type mismatch: got <array[0..0, typedesc[int]]>" line: 22 nimout: ''' -twrong_at_operator.nim(22, 30) Error: type mismatch: got <array[0..0, type int]> +twrong_at_operator.nim(22, 30) Error: type mismatch: got <array[0..0, typedesc[int]]> 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 <type int>" + errormsg: "type mismatch: got <typedesc[int]>" 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 <type int> but expected 'int'" + errormsg: "type mismatch: got <typedesc[int]> 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 |