Issue #706 -- enchancing empty anonymous classes.
This commit is contained in:
parent
2e3f575f9c
commit
c064c90ee9
|
@ -235,6 +235,12 @@
|
||||||
return new ClassNode($2, $4, $6);
|
return new ClassNode($2, $4, $6);
|
||||||
}), o("CLASS INDENT ClassBody OUTDENT", function() {
|
}), o("CLASS INDENT ClassBody OUTDENT", function() {
|
||||||
return new ClassNode('__temp__', null, $3);
|
return new ClassNode('__temp__', null, $3);
|
||||||
|
}), o("CLASS", function() {
|
||||||
|
return new ClassNode('__temp__', null, new Expressions);
|
||||||
|
}), o("CLASS EXTENDS Value", function() {
|
||||||
|
return new ClassNode('__temp__', $3, new Expressions);
|
||||||
|
}), o("CLASS EXTENDS Value INDENT ClassBody OUTDENT", function() {
|
||||||
|
return new ClassNode('__temp__', $3, $5);
|
||||||
})
|
})
|
||||||
],
|
],
|
||||||
ClassAssign: [
|
ClassAssign: [
|
||||||
|
|
258
lib/parser.js
258
lib/parser.js
File diff suppressed because one or more lines are too long
|
@ -281,6 +281,9 @@ grammar =
|
||||||
o "CLASS SimpleAssignable INDENT ClassBody OUTDENT", -> new ClassNode $2, null, $4
|
o "CLASS SimpleAssignable INDENT ClassBody OUTDENT", -> new ClassNode $2, null, $4
|
||||||
o "CLASS SimpleAssignable EXTENDS Value INDENT ClassBody OUTDENT", -> new ClassNode $2, $4, $6
|
o "CLASS SimpleAssignable EXTENDS Value INDENT ClassBody OUTDENT", -> new ClassNode $2, $4, $6
|
||||||
o "CLASS INDENT ClassBody OUTDENT", -> new ClassNode '__temp__', null, $3
|
o "CLASS INDENT ClassBody OUTDENT", -> new ClassNode '__temp__', null, $3
|
||||||
|
o "CLASS", -> new ClassNode '__temp__', null, new Expressions
|
||||||
|
o "CLASS EXTENDS Value", -> new ClassNode '__temp__', $3, new Expressions
|
||||||
|
o "CLASS EXTENDS Value INDENT ClassBody OUTDENT", -> new ClassNode '__temp__', $3, $5
|
||||||
]
|
]
|
||||||
|
|
||||||
# Assignments that can happen directly inside a class declaration.
|
# Assignments that can happen directly inside a class declaration.
|
||||||
|
|
|
@ -10,7 +10,7 @@ class FirstChild extends Base
|
||||||
func: (string) ->
|
func: (string) ->
|
||||||
super('one/') + string
|
super('one/') + string
|
||||||
|
|
||||||
class SecondChild extends FirstChild
|
SecondChild = class extends FirstChild
|
||||||
func: (string) ->
|
func: (string) ->
|
||||||
super('two/') + string
|
super('two/') + string
|
||||||
|
|
||||||
|
@ -256,3 +256,8 @@ class Static
|
||||||
|
|
||||||
ok Static.static.one is 1
|
ok Static.static.one is 1
|
||||||
ok Static.static.two is 2
|
ok Static.static.two is 2
|
||||||
|
|
||||||
|
|
||||||
|
# Nothing classes.
|
||||||
|
c = class
|
||||||
|
ok c instanceof Function
|
||||||
|
|
Loading…
Reference in New Issue