Correctly remove last suffix when turning exp into {member, indexed} var

This commit is contained in:
0x4261756D 2024-02-21 15:09:55 +01:00
parent c7ac2cf091
commit 3a6e024c9b

View File

@ -925,6 +925,7 @@ class Parser
return new VarNode.Name(name: name.name, startRegion: suffixExp.startRegion, endRegion: suffixExp.endRegion); return new VarNode.Name(name: name.name, startRegion: suffixExp.startRegion, endRegion: suffixExp.endRegion);
} }
SuffixexpSuffix last = normal.node.suffixes[^1]; SuffixexpSuffix last = normal.node.suffixes[^1];
_ = normal.node.suffixes.Remove(last);
return last switch return last switch
{ {
SuffixexpSuffix.Dot dot => new VarNode.Member(node: new(name: dot.name, value: normal, startRegion: suffixExp.startRegion, endRegion: suffixExp.endRegion), startRegion: suffixExp.startRegion, endRegion: dot.endRegion), SuffixexpSuffix.Dot dot => new VarNode.Member(node: new(name: dot.name, value: normal, startRegion: suffixExp.startRegion, endRegion: suffixExp.endRegion), startRegion: suffixExp.startRegion, endRegion: dot.endRegion),