Skip to content

Operator overloading for ^ doesn't work anymore #2236

Closed
@ttulka

Description

@ttulka

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)

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions