mago-codex 1.40.2

PHP type system representation, comparison logic, and codebase metadata for static analysis.
Documentation
mod comparator_common;

use comparator_common::*;

#[test]
fn resource_reflexive() {
    assert_atomic_subtype(&t_resource(), &t_resource());
}

#[test]
fn open_reflexive() {
    assert_atomic_subtype(&t_open_resource(), &t_open_resource());
}

#[test]
fn closed_reflexive() {
    assert_atomic_subtype(&t_closed_resource(), &t_closed_resource());
}

#[test]
fn open_in_resource() {
    assert_atomic_subtype(&t_open_resource(), &t_resource());
}

#[test]
fn closed_in_resource() {
    assert_atomic_subtype(&t_closed_resource(), &t_resource());
}

#[test]
fn resource_not_in_open() {
    assert_atomic_not_subtype(&t_resource(), &t_open_resource());
}

#[test]
fn resource_not_in_closed() {
    assert_atomic_not_subtype(&t_resource(), &t_closed_resource());
}

#[test]
fn open_not_in_closed() {
    assert_atomic_not_subtype(&t_open_resource(), &t_closed_resource());
}

#[test]
fn closed_not_in_open() {
    assert_atomic_not_subtype(&t_closed_resource(), &t_open_resource());
}

#[test]
fn resource_not_in_int() {
    assert_atomic_not_subtype(&t_resource(), &t_int());
}

#[test]
fn resource_not_in_string() {
    assert_atomic_not_subtype(&t_resource(), &t_string());
}

#[test]
fn resource_not_in_object() {
    assert_atomic_not_subtype(&t_resource(), &t_object_any());
}

#[test]
fn resource_not_in_array() {
    assert_atomic_not_subtype(&t_resource(), &t_empty_array());
}

#[test]
fn resource_in_mixed() {
    assert_atomic_subtype(&t_resource(), &mixed());
    assert_atomic_subtype(&t_open_resource(), &mixed());
    assert_atomic_subtype(&t_closed_resource(), &mixed());
}

#[test]
fn never_in_resource() {
    assert_atomic_subtype(&never(), &t_resource());
    assert_atomic_subtype(&never(), &t_open_resource());
    assert_atomic_subtype(&never(), &t_closed_resource());
}