Skip to content

Commit a9bb801

Browse files
committed
super works inside class methods
1 parent 3be7be0 commit a9bb801

File tree

2 files changed

+10
-2
lines changed

2 files changed

+10
-2
lines changed

moonscript/transform/class.lua

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -118,7 +118,13 @@ return function(self, node, ret, parent_assign)
118118
for _index_1 = 2, #item do
119119
local tuple = item[_index_1]
120120
if ntype(tuple[1]) == "self" then
121-
insert(statements, build.assign_one(unpack(tuple)))
121+
local k, v
122+
k, v = tuple[1], tuple[2]
123+
v = super_scope(v, cls_super, {
124+
"key_literal",
125+
k[2]
126+
})
127+
insert(statements, build.assign_one(k, v))
122128
else
123129
insert(properties, tuple)
124130
end

moonscript/transform/class.moon

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,9 @@ super_scope = (value, t, key) ->
9292
when "props"
9393
for tuple in *item[2,]
9494
if ntype(tuple[1]) == "self"
95-
insert statements, build.assign_one unpack tuple
95+
{k,v} = tuple
96+
v = super_scope v, cls_super, {"key_literal", k[2]}
97+
insert statements, build.assign_one k, v
9698
else
9799
insert properties, tuple
98100

0 commit comments

Comments
 (0)