Skip to content

Commit d60bb29

Browse files
Merge pull request #3 from KoloInDaCrib/question-dot-function
[FEATURE] Null-safe field access for functions
2 parents f82943e + b6cd41a commit d60bb29

File tree

1 file changed

+12
-0
lines changed

1 file changed

+12
-0
lines changed

hscript/Parser.hx

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -831,6 +831,18 @@ class Parser {
831831
mk(EField(mk(EIdent(tmp),pmin(e1),pmax(e1)),field),pmin(e1))
832832
))
833833
]),pmin(e1));
834+
835+
if ( maybe(TPOpen) ) {
836+
e = mk(EBlock([
837+
mk(EVar(tmp, null, e1), pmin(e1), pmax(e1)),
838+
mk(ETernary(
839+
mk(EBinop("==", mk(EIdent(tmp),pmin(e1),pmax(e1)), mk(EIdent("null"),pmin(e1),pmax(e1)))),
840+
mk(EIdent("null"),pmin(e1),pmax(e1)),
841+
mk(ECall(mk(EField(mk(EIdent(tmp),pmin(e1),pmax(e1)),field),pmin(e1)),parseExprList(TPClose)),pmin(e1))
842+
))
843+
]),pmin(e1));
844+
}
845+
834846
return parseExprNext(e);
835847
case TPOpen:
836848
return parseExprNext(mk(ECall(e1,parseExprList(TPClose)),pmin(e1)));

0 commit comments

Comments
 (0)