Skip to content

Missing namespace before super class name #634

@looping1984

Description

@looping1984

Missing namespace prefix before super class name when translating a sub class.
eg.

source code in TypeScript:

namespace my_ns
{
    export class MySuperClass
    {
        public constructor()
        {
            //do something
        }
    }

    export class MySubClass extends MySuperClass
    {
        public constructor()
        {
            super();
            //something else
        }
    }
}

lua translated:

my_ns = {}
do
    my_ns.MySuperClass = {}
    local MySuperClass = my_ns.MySuperClass
    MySuperClass.name = "MySuperClass"
    MySuperClass.__index = MySuperClass
    MySuperClass.prototype = {}
    MySuperClass.prototype.__index = MySuperClass.prototype
    MySuperClass.prototype.constructor = MySuperClass
    function MySuperClass.new(...)
        local self = setmetatable({}, MySuperClass.prototype)
        self:____constructor(...)
        return self
    end
    function MySuperClass.prototype.____constructor(self)
    end
    my_ns.MySubClass = {}
    local MySubClass = my_ns.MySubClass
    MySubClass.name = "MySubClass"
    MySubClass.__index = MySubClass
    MySubClass.prototype = {}
    MySubClass.prototype.__index = MySubClass.prototype
    MySubClass.prototype.constructor = MySubClass
    MySubClass.____super = my_ns.MySuperClass
    setmetatable(MySubClass, MySubClass.____super)
    setmetatable(MySubClass.prototype, MySubClass.____super.prototype)
    function MySubClass.new(...)
        local self = setmetatable({}, MySubClass.prototype)
        self:____constructor(...)
        return self
    end
    function MySubClass.prototype.____constructor(self)
        MySuperClass.prototype.____constructor(self)
    end
end

namespace 'my_ns' missed before 'MySuperClass' in MySubClass's consotructor:

    function MySubClass.prototype.____constructor(self)
        -- namespace missed before 'MySuperClass'
        MySuperClass.prototype.____constructor(self)
    end

thanks!

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