mago-analyzer 1.47.2

A PHP static analyzer that can detect type errors in PHP code, and provide suggestions for fixing them.
Documentation
use mago_names::ResolvedNames;
use mago_word::Word;

use mago_codex::metadata::CodebaseMetadata;
use mago_syntax::cst::Expression;

use crate::utils::expression::get_expression_id;

#[derive(Debug)]
pub struct AssertionContext<'ctx, 'arena, A> {
    pub resolved_names: &'ctx ResolvedNames<'arena>,
    pub arena: &'arena A,
    pub codebase: &'ctx CodebaseMetadata,
    pub this_class_name: Option<Word>,
    pub trust_existence_checks: bool,
}

impl<A> AssertionContext<'_, '_, A> {
    #[inline]
    pub fn get_expression_id(&self, expression: &Expression<'_>) -> Option<Word> {
        get_expression_id(expression, self.this_class_name, self.resolved_names, Some(self.codebase))
    }
}

impl<A> Clone for AssertionContext<'_, '_, A> {
    fn clone(&self) -> Self {
        *self
    }
}

impl<A> Copy for AssertionContext<'_, '_, A> {}