Skip to content

Commit 8244ea0

Browse files
authored
allow referencing construtors, fixes #323 (#324)
1 parent 8c714a8 commit 8244ea0

File tree

2 files changed

+15
-1
lines changed

2 files changed

+15
-1
lines changed

src/checkstyle/token/walk/WalkStatement.hx

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,14 @@ class WalkStatement {
9797
case Kwd(KwdVar):
9898
WalkVar.walkVar(stream, parent, []);
9999
case Kwd(KwdNew):
100-
WalkNew.walkNew(stream, parent);
100+
if (parent.is(Dot)) {
101+
var newChild:TokenTree = stream.consumeToken();
102+
parent.addChild(newChild);
103+
WalkStatement.walkStatementContinue(stream, newChild);
104+
}
105+
else {
106+
WalkNew.walkNew(stream, parent);
107+
}
101108
case Kwd(KwdFor):
102109
WalkFor.walkFor(stream, parent);
103110
case Kwd(KwdFunction):

test/token/TokenTreeBuilderParsingTest.hx

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ class TokenTreeBuilderParsingTest extends haxe.unit.TestCase {
2222
assertCodeParses(ISSUE_253);
2323
assertCodeParses(ISSUE_256);
2424
assertCodeParses(DOLLAR_TOKEN_AS_VAR_NAME);
25+
assertCodeParses(REFERENCE_CONSTRUCTOR);
2526
}
2627

2728
public function assertCodeParses(code:String, ?pos:PosInfos) {
@@ -166,4 +167,10 @@ abstract TokenTreeBuilderParsingTests(String) to String {
166167
}
167168
}";
168169

170+
var REFERENCE_CONSTRUCTOR = "
171+
@:allow(SomeClass.new) class Test {}
172+
class Test {
173+
var constructor = SomeClass.new;
174+
}";
175+
169176
}

0 commit comments

Comments
 (0)