assert that if navigation element led to different file, offsets are not passed because they would be invalid in the other file anyway

This commit is contained in:
Alexey Kudravtsev
2017-04-28 16:55:54 +03:00
parent 6189bb94de
commit 2174cf7327
@@ -55,10 +55,18 @@ public class UsageInfo {
else {
effectiveStart = startOffset;
effectiveEnd = endOffset;
if (element != originalElement && originalElement.getContainingFile() == file) {
int delta = originalElement.getTextRange().getStartOffset() - elementRange.getStartOffset();
effectiveStart += delta;
effectiveEnd += delta;
if (element != originalElement) {
PsiFile originalFile = originalElement.getContainingFile();
if (originalFile == file) {
int delta = originalElement.getTextRange().getStartOffset() - elementRange.getStartOffset();
effectiveStart += delta;
effectiveEnd += delta;
}
else {
throw new IllegalArgumentException("element.getNavigationElement() for element "+originalElement+"("+startOffset+", "+endOffset+
") from " + originalFile + " led to different file "+file+
", thus making passed offsets invalid. Specify -1 for start/end offsets to calculate correct offsets for navigation.");
}
}
}