Skip to content

[bug] compiler generated override getter/setter for filed in interface incorrectly #2968

Description

@HerrCai0907

Bug description

I found this bug in our fork: wasm-ecosystem/warpo#203
I guess it's caused by override function does not check the base class.

Steps to reproduce

exportinterfacePropertyName{// FIXME: should be inside Node interfacerange: Range;kind: NodeKind;getReadableName(): string;}exportclassComputedPropertyNameextendsNodeimplementsPropertyName{constructor(publicexpression: Expression,range: Range){super(NodeKind.ComputedPropertyName,range);}getReadableName(): string{returnthis.range.toString();}}exportabstractclassNode{constructor(/** Kind of this node. */publickind: NodeKind,/** Source range. */publicrange: Range){}}

will generated

 (func$assemblyscript/src/ast/PropertyName#get:kind@override (param$0i32) (resulti32)
(local$1i32)
(drop
(i32.load
(i32.sub
(local.get$0)
(i32.const8)
)
)
)
(unreachable)
)

AssemblyScript version

all

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