int () { int result = 0; TextRange[] ranges = getRanges(); VirtualFile[] files = getVirtualFiles(); if (files.length > 0) { result += files[0].hashCode(); } for (TextRange range : ranges) { result += range.hashCode(); } return result; }