fix locIntersect

This commit is contained in:
Techatrix 2023-03-03 17:15:38 +01:00 committed by Lee Cannon
parent 0ee947e8a6
commit 7a7928f466

View File

@ -259,21 +259,19 @@ pub fn convertRangeEncoding(text: []const u8, range: types.Range, from_encoding:
};
}
// returns true if a and b intersect
/// returns true if a and b intersect
pub fn locIntersect(a: Loc, b: Loc) bool {
std.debug.assert(a.start <= a.end and b.start <= b.end);
const a_start_in_b = b.start <= a.start and a.start <= b.end;
const a_end_in_b = b.start <= a.end and a.end <= b.end;
return a_start_in_b or a_end_in_b;
return a.start < b.end and a.end > b.start;
}
// returns true if a is inside b
/// returns true if a is inside b
pub fn locInside(inner: Loc, outer: Loc) bool {
std.debug.assert(inner.start <= inner.end and outer.start <= outer.end);
return outer.start <= inner.start and inner.end <= outer.end;
}
// returns the union of a and b
/// returns the union of a and b
pub fn locMerge(a: Loc, b: Loc) Loc {
std.debug.assert(a.start <= a.end and b.start <= b.end);
return .{