<div dir="ltr">Hi!<br><div><br></div><div>Attached are two changesets to add support for source range tracking of cascade nodes. This is particularly useful for refactorings like the extract method or the extract temporary variable.</div><div><br></div><div>Example: if you have this expression:</div><div><br></div><div>3 factorial; yourself</div><div><br></div><div>now we are not reporting source range for the cascade, just for each individual message. From now on, we'll be able to get:</div><div><br></div><div>* "raw" source range: 3 [factorial; yourself] (original source range definition, used for debugging)</div><div>* "complete" source range: [3 factorial; yourself] (definition added for refactoring purposes)</div><div><br></div><div>The reason I made two changesets is because I wanted to extract a method in the Parser but I cannot do it in the same changeset, because it could break the image.</div><div><br></div><div>* The first changeset includes the new feature itself</div><div>* The second changeset is just cleanup to make the parser #cascade method more readable.</div><div><br></div><div>This change allows us to automatically support a new extract method case, which is extracting expressions enclosing cascade message sends (yay!). Also attached a test for it.</div><div><br></div><div>Thanks,</div><div>Nahuel</div></div>