pub struct CppDisplacedPreprocessorBoundary {
pub end_byte: usize,
pub end_line: usize,
}Expand description
The effective end of a conditional whose real terminator tree-sitter displaced into declaration recovery.
Most damaged conditionals retain a concrete #endif token below an
ERROR; cpp_displaced_preprocessor_terminator supplies that exact
boundary. A preprocessor family that selects the middle of a declaration
can lose the directive tokens entirely. In that shape tree-sitter leaves
the declaration’s typedef token as the sole child of the immediately
preceding top-level ERROR, and puts a multiline ERROR plus the trailing
declarator name inside the conditional’s first declaration. The declaration
end is then the smallest structured boundary that contains the whole split
declaration.
Fields§
§end_byte: usize§end_line: usizeTrait Implementations§
impl Copy for CppDisplacedPreprocessorBoundary
impl Eq for CppDisplacedPreprocessorBoundary
impl StructuralPartialEq for CppDisplacedPreprocessorBoundary
Auto Trait Implementations§
impl Forget for CppDisplacedPreprocessorBoundary
impl Freeze for CppDisplacedPreprocessorBoundary
impl Move for CppDisplacedPreprocessorBoundary
impl RefUnwindSafe for CppDisplacedPreprocessorBoundary
impl Send for CppDisplacedPreprocessorBoundary
impl Sync for CppDisplacedPreprocessorBoundary
impl Unpin for CppDisplacedPreprocessorBoundary
impl UnsafeUnpin for CppDisplacedPreprocessorBoundary
impl UnwindSafe for CppDisplacedPreprocessorBoundary
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key and return true if they are equal.Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more