mirror of
https://github.com/jashkenas/coffeescript.git
synced 2022-11-09 12:23:24 -05:00
Fixing issue #924 ... static methods of nested classes.
This commit is contained in:
parent
9f01040d46
commit
482626b9b8
3 changed files with 14 additions and 0 deletions
|
@ -923,6 +923,7 @@
|
|||
this.parent = parent;
|
||||
this.body = body != null ? body : new Expressions;
|
||||
this.boundFuncs = [];
|
||||
this.body.classBody = true;
|
||||
}
|
||||
Class.prototype.children = ['variable', 'parent', 'body'];
|
||||
Class.prototype.determineName = function() {
|
||||
|
@ -935,6 +936,9 @@
|
|||
};
|
||||
Class.prototype.setContext = function(name) {
|
||||
return this.body.traverseChildren(false, function(node) {
|
||||
if (node.classBody) {
|
||||
return false;
|
||||
}
|
||||
if (node instanceof Literal && node.value === 'this') {
|
||||
return node.value = name;
|
||||
} else if (node instanceof Code) {
|
||||
|
|
|
@ -743,6 +743,7 @@ exports.Arr = class Arr extends Base
|
|||
exports.Class = class Class extends Base
|
||||
constructor: (@variable, @parent, @body = new Expressions) ->
|
||||
@boundFuncs = []
|
||||
@body.classBody = yes
|
||||
|
||||
children: ['variable', 'parent', 'body']
|
||||
|
||||
|
@ -759,6 +760,7 @@ exports.Class = class Class extends Base
|
|||
# `this` is the Class being constructed.
|
||||
setContext: (name) ->
|
||||
@body.traverseChildren false, (node) ->
|
||||
return false if node.classBody
|
||||
if node instanceof Literal and node.value is 'this'
|
||||
node.value = name
|
||||
else if node instanceof Code
|
||||
|
|
|
@ -346,3 +346,11 @@ class A
|
|||
a = new A
|
||||
eq a.captured().x, 10
|
||||
eq a.captured().y, 2
|
||||
|
||||
|
||||
# Issue #924: Static methods in nested classes.
|
||||
class A
|
||||
@B: class
|
||||
@c = -> 5
|
||||
|
||||
eq A.B.c(), 5
|
||||
|
|
Loading…
Reference in a new issue