summary refs log tree commit diff stats
diff options
context:
space:
mode:
-rw-r--r--compiler/vmgen.nim2
-rw-r--r--tests/vm/ttypedesc.nim13
-rw-r--r--tests/vm/tvmmisc.nim3
3 files changed, 15 insertions, 3 deletions
diff --git a/compiler/vmgen.nim b/compiler/vmgen.nim
index 9bbea2b08..b7dd193be 100644
--- a/compiler/vmgen.nim
+++ b/compiler/vmgen.nim
@@ -2124,7 +2124,7 @@ proc gen(c: PCtx; n: PNode; dest: var TDest; flags: TGenFlags = {}) =
       genRdVar(c, n, dest, flags)
     of skParam:
       if s.typ.kind == tyTypeDesc:
-        genTypeLit(c, s.typ, dest)
+        genTypeLit(c, s.typ.skipTypes({tyTypeDesc}), dest)
       else:
         genRdVar(c, n, dest, flags)
     of skProc, skFunc, skConverter, skMacro, skTemplate, skMethod, skIterator:
diff --git a/tests/vm/ttypedesc.nim b/tests/vm/ttypedesc.nim
index a112584c5..d799e5adb 100644
--- a/tests/vm/ttypedesc.nim
+++ b/tests/vm/ttypedesc.nim
@@ -16,3 +16,16 @@ block: # issue #15760
 
   doAssert x[SpecialBanana]() == "SpecialBanana"
   doAssert y(SpecialBanana) == "SpecialBanana"
+
+import macros
+
+block: # issue #23112
+  type Container = object
+    foo: string
+
+  proc canBeImplicit(t: typedesc) {.compileTime.} =
+    let tDesc = getType(t)
+    doAssert tDesc.kind == nnkObjectTy
+
+  static:
+    canBeImplicit(Container)
diff --git a/tests/vm/tvmmisc.nim b/tests/vm/tvmmisc.nim
index cade68577..f277c20d8 100644
--- a/tests/vm/tvmmisc.nim
+++ b/tests/vm/tvmmisc.nim
@@ -4,8 +4,7 @@ import os
 # bug #4462
 block:
   proc foo(t: typedesc) {.compileTime.} =
-    assert sameType(getType(t), getType(typedesc[int]))
-    assert sameType(getType(t), getType(type int))
+    assert sameType(getType(t), getType(int))
 
   static:
     foo(int)