From 7a7928f4666311829c437ffae3693ebb59dca015 Mon Sep 17 00:00:00 2001 From: Techatrix <19954306+Techatrix@users.noreply.github.com> Date: Fri, 3 Mar 2023 17:15:38 +0100 Subject: [PATCH] fix `locIntersect` --- src/offsets.zig | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/src/offsets.zig b/src/offsets.zig index deef8df..9fe4876 100644 --- a/src/offsets.zig +++ b/src/offsets.zig @@ -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 .{