diff --git a/compiler/vmgen.nim b/compiler/vmgen.nim index 9086b17d92..2fbb78c8f3 100644 --- a/compiler/vmgen.nim +++ b/compiler/vmgen.nim @@ -1954,14 +1954,6 @@ proc genProc*(c: PCtx; s: PSym): int proc matches(s: PSym; x: string): bool = let y = x.split('.') - var s = s - for i in 1..y.len: - if s == nil or (y[^i].cmpIgnoreStyle(s.name.s) != 0 and y[^i] != "*"): - return false - s = s.owner - result = true - -proc matches(s: PSym; y: varargs[string]): bool = var s = s for i in 1..y.len: if s == nil or (y[^i].cmpIgnoreStyle(s.name.s) != 0 and y[^i] != "*"): @@ -2024,11 +2016,11 @@ proc gen(c: PCtx; n: PNode; dest: var TDest; flags: TGenFlags = {}) = elif s.kind == skMethod: localError(c.config, n.info, "cannot call method " & s.name.s & " at compile time") - elif matches(s, "stdlib", "marshal", "to"): + elif matches(s, "stdlib.marshal.to"): # XXX marshal load&store should not be opcodes, but use the # general callback mechanisms. genMarshalLoad(c, n, dest) - elif matches(s, "stdlib", "marshal", "$$"): + elif matches(s, "stdlib.marshal.$$"): genMarshalStore(c, n, dest) else: genCall(c, n, dest) diff --git a/lib/pure/math.nim b/lib/pure/math.nim index 0e6ffe0539..c05e47545e 100644 --- a/lib/pure/math.nim +++ b/lib/pure/math.nim @@ -567,6 +567,8 @@ else: # JS func tanh*[T: float32|float64](x: T): T {.importc: "Math.tanh", nodecl.} func arcsin*[T: float32|float64](x: T): T {.importc: "Math.asin", nodecl.} + # keep this as generic or update test in `tvmops.nim` to make sure we + # keep testing that generic importc procs work func arccos*[T: float32|float64](x: T): T {.importc: "Math.acos", nodecl.} func arctan*[T: float32|float64](x: T): T {.importc: "Math.atan", nodecl.} func arctan2*[T: float32|float64](y, x: T): T {.importc: "Math.atan2", nodecl.} diff --git a/tests/vm/tvmops.nim b/tests/vm/tvmops.nim index 6442c49d6f..c8febd9820 100644 --- a/tests/vm/tvmops.nim +++ b/tests/vm/tvmops.nim @@ -1,3 +1,7 @@ +discard """ + targets: "c cpp js" +""" + #[ test for vmops.nim ]#