pub fn glob_adjust(&mut self, expn_id: ExpnId, glob_span: Span) -> Option<Option<ExpnId>> {
        HygieneData::with(|data| {
            let mut scope = None;
            let mut glob_ctxt = data.normalize_to_macros_2_0(glob_span.ctxt());
            while !data.is_descendant_of(expn_id, data.outer_expn(glob_ctxt)) {
                scope = Some(data.remove_mark(&mut glob_ctxt).0);
                if data.remove_mark(self).0 != scope.unwrap() {
                    return None;
                }
            }
            if data.adjust(self, expn_id).is_some() {
                return None;
            }
            Some(scope)
        })
    }
/// Adjust this context for resolution in a scope created by the given expansion
/// via a glob import with the given `SyntaxContext`.
/// For example:
///
/// ```rust
/// m!(f);
/// macro m($i:ident) {
///     mod foo {
///         pub fn f() {} // `f`'s `SyntaxContext` has a single `ExpnId` from `m`.
///         pub fn $i() {} // `$i`'s `SyntaxContext` is empty.
///     }
///     n(f);
///     macro n($j:ident) {
///         use foo::*;
///         f(); // `f`'s `SyntaxContext` has a mark from `m` and a mark from `n`
///         //^ `glob_adjust` removes the mark from `n`, so this resolves to `foo::f`.
///         $i(); // `$i`'s `SyntaxContext` has a mark from `n`
///         //^ `glob_adjust` removes the mark from `n`, so this resolves to `foo::$i`.
///         $j(); // `$j`'s `SyntaxContext` has a mark from `m`
///         //^ This cannot be glob-adjusted, so this is a resolution error.
///     }
/// }
/// ```
/// This returns `None` if the context cannot be glob-adjusted.
/// Otherwise, it returns the scope to use when privacy checking (see `adjust` for details).
Adjust this context for resolution in a scope created by the given expansion
via a glob import with the given `SyntaxContext`.
For example.


Adjust this context for resolution in a scope created by the given expansion via a glob import with the given ` SyntaxContext ` . For example .
pub fn glob_adjust(&mut self, expn_id: ExpnId, glob_span: Span) -> Option<Option<ExpnId>> {
        HygieneData::with(|data| {
            let mut scope = None;
            let mut glob_ctxt = data.normalize_to_macros_2_0(glob_span.ctxt());
            while !data.is_descendant_of(expn_id, data.outer_expn(glob_ctxt)) {
                scope = Some(data.remove_mark(&mut glob_ctxt).0);
                if data.remove_mark(self).0 != scope.unwrap() {
                    return None;
                }
            }
            if data.adjust(self, expn_id).is_some() {
                return None;
            }
            Some(scope)
        })
    }
pub fn glob_adjust ( & mut self , expn_id : ExpnId , glob_span : Span ) -> Option < Option < ExpnId > > { HygieneData :: with ( | data | { let mut scope = None ; let mut glob_ctxt = data . normalize_to_macros_2_0 ( glob_span . ctxt ( ) ) ; while ! data . is_descendant_of ( expn_id , data . outer_expn ( glob_ctxt ) ) { scope = Some ( data . remove_mark ( & mut glob_ctxt ) . 0 ) ; if data . remove_mark ( self ) . 0 != scope . unwrap ( ) { return None ; } } if data . adjust ( self , expn_id ) . is_some ( ) { return None ; } Some ( scope ) } ) }
Adjust this context for resolution in a scope created by the given expansion
via a glob import with the given `SyntaxContext`.
Adjust this context for resolution in a scope created by the given expansion via a glob import with the given ` SyntaxContext ` .
&mut self
expn_id
ExpnId
glob_span
Span
&mut self
expn_id
ExpnId
glob_span
Span