Revert "fixes #24800; Invalid C code generation with a method, case object in…"

This reverts commit ddd83f8d8a.
This commit is contained in:
Andreas Rumpf
2025-03-26 09:24:51 +01:00
committed by GitHub
parent b82d7e8ba1
commit 25ebc73d77
2 changed files with 2 additions and 22 deletions

View File

@@ -2638,8 +2638,7 @@ proc genRangeChck(p: BProc, n: PNode, d: var TLoc) =
proc genConv(p: BProc, e: PNode, d: var TLoc) =
let destType = e.typ.skipTypes({tyVar, tyLent, tyGenericInst, tyAlias, tySink})
let srcType = e[1].typ.skipTypes({tyVar, tyLent, tyGenericInst, tyAlias, tySink})
if sameBackendTypeIgnoreRange(destType, srcType):
if sameBackendTypeIgnoreRange(destType, e[1].typ):
expr(p, e[1], d)
else:
genSomeCast(p, e, d)

View File

@@ -1,12 +1,11 @@
discard """
matrix: "--mm:refc; --mm:arc"
output: '''
it's nil
@[1, 2, 3]
'''
"""
import std/[options, macros]
import macros
block anontuples:
@@ -210,21 +209,3 @@ block: # tuple unpacking assignment with underscore
doAssert (a, b) == (6, 2)
(b, _) = (7, 8)
doAssert (a, b) == (6, 7)
# bug #24800
type
B[T] = object
case r: bool
of false:
v: ref int
of true:
x: T
U = ref object of RootObj
method y(_: U) {.base.} =
var s = default(B[tuple[f: B[int], w: B[int]]])
discard some(s.x)
proc foo =
var s = U()
y(s)