Description
Hi guys,
after migration to 0.20.1
(from 0.19.19
) the operator overloading for ^
doesn't seem to work anymore.
This silly code causes a compiler error:
export function pow(a: number, b: number): number {
const n = new MyNumber(a);
return n ^ b;
}
class MyNumber {
constructor(private x: number) {
}
@operator('^')
pow(n: number): number {
return Math.pow(this.x, n);
}
}
/test/node_modules/assemblyscript/std/portable/index.js:200
▌ throw new AssertionError(message);
▌ ^
▌
▌ AssertionError: assertion failed
▌ at null.q.assert (/test/node_modules/assemblyscript/std/portable/index.js:200:11)
▌ at ai.compileBinaryOverload (/test/node_modules/assemblyscript/src/compiler.ts:5739:7)
▌ at ai.compileBinaryExpression (/test/node_modules/assemblyscript/src/compiler.ts:4492:25)
▌ at ai.compileExpression (/test/node_modules/assemblyscript/src/compiler.ts:3405:21)
▌ at ai.compileReturnStatement (/test/node_modules/assemblyscript/src/compiler.ts:2756:19)
▌ at ai.compileStatement (/test/node_modules/assemblyscript/src/compiler.ts:2144:21)
▌ at ai.compileStatements (/test/node_modules/assemblyscript/src/compiler.ts:2212:23)
▌ at ai.compileFunctionBody (/test/node_modules/assemblyscript/src/compiler.ts:1530:20)
▌ at ai.compileFunction (/test/node_modules/assemblyscript/src/compiler.ts:1460:17)
▌ at ai.compileModuleExport (/test/node_modules/assemblyscript/src/compiler.ts:840:16)