Docs.rs
mago-analyzer-1.22.0
Platform
i686-pc-windows-msvc
x86_64-unknown-linux-gnu
Feature flags
docs.rs
About docs.rs
Badges
Builds
Metadata
Shorthand URLs
Download
Rustdoc JSON
Build queue
Privacy policy
Rust
Rust website
The Book
Standard Library API Reference
Rust by Example
The Cargo Guide
Clippy Documentation
mago-analyzer 1.22.0
A PHP static analyzer that can detect type errors in PHP code, and provide suggestions for fixing them.
Crate
Source
Builds
Feature flags
Documentation
..
abstract_factory_pattern.php
abstract_method_inheritance.php
accessing_undefined_class_constant.php
all_paths_return_value.php
allow_unknown_array_key_in_assignment.php
anonymous_class_constructor_args.php
argument_count.php
arguments_unpacking.php
array_coalesce_assign_check.php
array_key_access_after_existence_check.php
array_key_coalesce.php
array_key_concat.php
array_key_exists.php
array_list_reconciliation.php
array_map_non_empty_array.php
array_map_non_empty_list.php
array_reconcile.php
array_refs.php
array_shape_access.php
array_shape_fields.php
array_shape_reconciliation.php
array_type_combination_threshold.php
array_unique_non_empty.php
arrow_function_inherits_method_templates.php
assert_concrete_to_template_type.php
assert_generic_array_key_is_array_key.php
assert_or_type.php
assertion_after_side_effect.php
bad_path_abstract_instantiation.php
bad_path_assignment_to_this.php
bad_path_enum_instantiation.php
bad_path_interface_instantiation.php
bad_path_invalid_break.php
bad_path_invalid_clone.php
bad_path_invalid_continue.php
bad_path_invalid_iterator.php
bad_path_invalid_throw.php
bad_path_method_access_on_null.php
bad_path_null_iterator.php
bad_path_null_operand.php
bad_path_null_property_access.php
bad_path_possibly_null_iterator.php
bad_path_possibly_null_operand.php
bad_path_possibly_null_property_access.php
bad_path_redundant_null_coalesce.php
bad_path_redundant_nullsafe.php
bare_identifier_in_array_access.php
big_numbers.php
bin2hex.php
binary_throw_used.php
bitwise_shift_bounds.php
break_narrowing.php
by_reference_invalidation.php
callable_string.php
callable_template_inference.php
calling_interface_methods_from_trait.php
calling_trait_required_method.php
change_private_parent_prop.php
chunk.php
chunk_with_keys.php
class_in_alias.php
class_instance.php
class_like_constant_access.php
class_must_be_final.php
class_string_comparison.php
class_string_instantiation.php
class_string_is_never_equal_to_literal_string.php
class_string_union_constraint.php
clear_narrowed_prop_after_call.php
clone_dynamic_class.php
closure_wrap.php
collection_types.php
complex_template_constraint.php
compound_condition.php
condition_is_too_complex.php
conditional_always_falsy.php
conditional_always_truthy.php
conditional_if_else.php
conditional_initialization.php
conditional_mixed_types.php
conditional_nested.php
conditional_return.php
conditional_return_class_string_not_literal.php
conditional_return_resolved_to_left.php
conditional_return_resolved_to_right.php
conditional_return_with_assignment_in_condition.php
conditional_return_with_default_parameters.php
conditional_type_narrowing.php
conditional_with_assignment.php
const_array_key.php
constant_type.php
count.php
ctype_digit_check.php
data_transformer_type.php
deep_inheritance_init.php
default_parameter_inference.php
defensive_type_check.php
docblock_parameter_narrowing.php
docblock_type_mismatch.php
docblock_type_narrowing.php
docblock_type_parsing_verification.php
docblock_var_on_non_assignment.php
docblock_var_override.php
docblock_var_override_foreach.php
duplicate_definition.php
duplicate_enum_case_value.php
dynamic_array_key_in_string_interpolation.php
echo_tag.php
eliminate_true_and_false_from_scalar.php
elvis_operator_with_falsy_string.php
elvis_operator_with_null.php
empty_construct.php
empty_switch.php
enum_empty_check.php
expand_class_constant_type.php
expand_generic_params.php
extends_inheritance_error_path.php
extends_inheritance_happy_path.php
factory_null_params.php
finally_after_return.php
float_string_concat.php
flow_php_integration.php
fully_qualified_use_prefix.php
generator_return_yield.php
generic_shape_coercion.php
implements_inheritance_error_path.php
implements_inheritance_happy_path.php
impossible_assertion.php
index_access.php
infer_class_string_on_generic_object.php
infere_closure_parameter_type.php
inheritdoc_basic_parent_class.php
inheritdoc_contravariant_parameters.php
inheritdoc_multiple_interfaces.php
inheritdoc_nested_generics.php
inheritdoc_priority.php
inherited_docblock_narrowing.php
instanceof_assertion.php
instanceof_unresolved_class.php
int_mask.php
int_or_float.php
integer_literal_overflow.php
integer_range_reconciliation.php
integer_reconciliation.php
interface_assertion.php
interface_constant_validation.php
interface_property_hook.php
interface_template_signatures.php
intersection_stringable.php
invalid_default_values.php
isset_after_loop_break.php
isset_and_nullable_access_assertions.php
isset_refinement_on_object_properties.php
issue_1002_part_1.php
issue_1002_part_2.php
issue_1002_part_3.php
issue_1002_part_4.php
issue_1005.php
issue_1006.php
issue_1021.php
issue_1025.php
issue_1026.php
issue_1029.php
issue_1030.php
issue_1031.php
issue_1038.php
issue_1040.php
issue_1045.php
issue_1048.php
issue_1057.php
issue_1061.php
issue_1064.php
issue_1068.php
issue_1069.php
issue_1070.php
issue_1071.php
issue_1072.php
issue_1073.php
issue_1074.php
issue_1081.php
issue_1083.php
issue_1084.php
issue_1086.php
issue_1087.php
issue_1088.php
issue_1089.php
issue_1093.php
issue_1096.php
issue_1099.php
issue_1102.php
issue_1103.php
issue_1104.php
issue_1106.php
issue_1107.php
issue_1108.php
issue_1110.php
issue_1112.php
issue_1116.php
issue_1117.php
issue_1119.php
issue_1126.php
issue_1127.php
issue_1130.php
issue_1131.php
issue_1144.php
issue_1150.php
issue_1156.php
issue_1157.php
issue_1165.php
issue_1169.php
issue_1184.php
issue_1184_methods.php
issue_1190.php
issue_1191.php
issue_1202.php
issue_1206.php
issue_1207.php
issue_1215.php
issue_1223.php
issue_1226.php
issue_1230.php
issue_1230_simple.php
issue_1242_reference_count_sync.php
issue_1249.php
issue_1259.php
issue_1262.php
issue_1264.php
issue_1265.php
issue_1266.php
issue_1266_inheritdoc_narrowing.php
issue_1267.php
issue_1273.php
issue_1278.php
issue_1286.php
issue_1287.php
issue_1291.php
issue_1341.php
issue_1342.php
issue_1346.php
issue_1352.php
issue_1355.php
issue_1357.php
issue_1365.php
issue_1368.php
issue_1372.php
issue_1374.php
issue_1375.php
issue_1387.php
issue_1410.php
issue_1411.php
issue_1412.php
issue_1413.php
issue_1415.php
issue_1416.php
issue_1422.php
issue_1429.php
issue_1464.php
issue_1466.php
issue_1467.php
issue_1484.php
issue_1485.php
issue_1486.php
issue_1487.php
issue_1488.php
issue_1489.php
issue_1490.php
issue_1491.php
issue_1493.php
issue_1499.php
issue_1500.php
issue_1501.php
issue_1502.php
issue_1503.php
issue_1504.php
issue_1505.php
issue_1506.php
issue_1509.php
issue_1510.php
issue_1512.php
issue_1517.php
issue_1522.php
issue_1523.php
issue_1524.php
issue_1526.php
issue_1527.php
issue_1531.php
issue_1532.php
issue_1534.php
issue_1535.php
issue_1536.php
issue_1537.php
issue_1539.php
issue_1540.php
issue_1541.php
issue_1542.php
issue_1546.php
issue_1548.php
issue_1551.php
issue_1552.php
issue_1555.php
issue_1556.php
issue_1561_part_1.php
issue_1561_part_2.php
issue_1561_part_3.php
issue_1561_part_4.php
issue_1565.php
issue_1566.php
issue_1567.php
issue_1568.php
issue_1569_allowed.php
issue_1569_strict.php
issue_1570.php
issue_1573.php
issue_1574.php
issue_1575.php
issue_1576.php
issue_1578.php
issue_1586.php
issue_1587.php
issue_1590.php
issue_1591.php
issue_1593.php
issue_1594.php
issue_1602.php
issue_1603.php
issue_1605.php
issue_1608.php
issue_1610.php
issue_1610_huffman.php
issue_1615.php
issue_1624.php
issue_1625.php
issue_1627.php
issue_1628.php
issue_1632.php
issue_1633.php
issue_1639.php
issue_1641.php
issue_1651.php
issue_1653.php
issue_1657.php
issue_265.php
issue_275.php
issue_306.php
issue_355.php
issue_356.php
issue_357.php
issue_358.php
issue_359.php
issue_360.php
issue_361.php
issue_362.php
issue_366.php
issue_368.php
issue_388.php
issue_390.php
issue_391.php
issue_393.php
issue_396.php
issue_400.php
issue_413.php
issue_414.php
issue_415.php
issue_417.php
issue_425_json_encode.php
issue_448.php
issue_451.php
issue_459.php
issue_461.php
issue_465.php
issue_474.php
issue_493.php
issue_498.php
issue_504.php
issue_508.php
issue_510.php
issue_511.php
issue_513.php
issue_514.php
issue_519.php
issue_520.php
issue_521.php
issue_523.php
issue_528.php
issue_531.php
issue_535.php
issue_537.php
issue_538.php
issue_540.php
issue_541.php
issue_542.php
issue_542_part_2.php
issue_546.php
issue_549.php
issue_551.php
issue_553.php
issue_557_part_1.php
issue_557_part_2.php
issue_559.php
issue_563.php
issue_564.php
issue_567.php
issue_568.php
issue_570.php
issue_571.php
issue_573.php
issue_574.php
issue_577.php
issue_583.php
issue_586.php
issue_588.php
issue_596.php
issue_598.php
issue_606.php
issue_607.php
issue_617.php
issue_620.php
issue_621.php
issue_622.php
issue_623.php
issue_626.php
issue_627.php
issue_633.php
issue_637.php
issue_639.php
issue_658.php
issue_659.php
issue_660.php
issue_663.php
issue_664.php
issue_665.php
issue_666.php
issue_667.php
issue_670.php
issue_671.php
issue_672.php
issue_676.php
issue_684.php
issue_689.php
issue_690.php
issue_701.php
issue_706.php
issue_708_part_1.php
issue_708_part_2.php
issue_709.php
issue_710.php
issue_711.php
issue_712.php
issue_716.php
issue_717.php
issue_718.php
issue_719.php
issue_720.php
issue_721.php
issue_722.php
issue_725.php
issue_728_symfony_reference.php
issue_729.php
issue_731.php
issue_732.php
issue_733.php
issue_735.php
issue_736.php
issue_737.php
issue_739.php
issue_742.php
issue_743.php
issue_746_part_1.php
issue_746_part_2.php
issue_746_part_3.php
issue_746_part_4.php
issue_746_part_5.php
issue_746_part_6.php
issue_749.php
issue_752.php
issue_754.php
issue_755.php
issue_756.php
issue_764.php
issue_765.php
issue_766.php
issue_776.php
issue_782.php
issue_784.php
issue_785.php
issue_789.php
issue_801.php
issue_806.php
issue_809.php
issue_822.php
issue_830.php
issue_835.php
issue_837.php
issue_845.php
issue_849.php
issue_859.php
issue_861.php
issue_863.php
issue_870.php
issue_871.php
issue_872.php
issue_880.php
issue_886.php
issue_900.php
issue_912.php
issue_923.php
issue_932.php
issue_940.php
issue_941.php
issue_945.php
issue_946.php
issue_949.php
issue_954.php
issue_955.php
issue_957.php
issue_958.php
issue_960.php
issue_962.php
issue_964.php
issue_969.php
issue_970.php
issue_973.php
issue_976.php
issue_980.php
issue_984.php
issue_985.php
issue_996.php
issue_998.php
issue_combiner_empty_vec.php
issue_contravariant_params_diamond.php
issue_contravariant_params_simple.php
iterable_array_comparison.php
iterable_count.php
iterable_reconciliation.php
iterator_to_array.php
iterator_type_inference.php
keyed_array_list_inference.php
literal_float.php
literal_int.php
magic_method_trait.php
magic_methods.php
magic_methods_args.php
magic_properties.php
magic_property_overridden_by_parent.php
match_arm_reaching.php
match_expression.php
match_not_exhaustive.php
match_true_and_false.php
mb_encoding.php
merge_arrays_non_empty.php
method_annotation_with_inheritance.php
method_call_assertions.php
method_docblock.php
method_signature_complex.php
method_signature_edge_cases.php
method_signature_param_types.php
method_signature_parameter_count.php
method_signature_parameter_names.php
method_signature_return_types.php
method_signature_static.php
method_signature_template_substitution.php
method_signature_visibility.php
missing_api_or_internal.php
missing_constructor.php
mixed_operand_increment.php
mixin.php
multi_level_template_inheritance.php
multiline_intersection_var.php
multiline_union_param.php
mutually_exclusive_null.php
narrow_class_string_match.php
narrow_non_final_class_string_match.php
negated_union_type.php
negation_operand.php
new_and_template_type_utilities.php
non_empty_string_magic_constant.php
not_equal_negation.php
null_array_key.php
nullable_getter_check.php
nullable_method_coalesce.php
nullsafe_chain_bug.php
nullsafe_operator_chain_shortcircuit.php
numeric_non_lowercase_string.php
numeric_reconciliation.php
object_shape.php
octal_zero_prefix.php
only_ascii_is_caseless.php
optional_chain_method.php
optional_object_with_properties.php
or_never.php
overload_resolution_for_callable.php
overly_wide_return_type.php
parent_class_constant_validation.php
parent_constructor_init.php
parent_magic_method_call.php
parent_static_call_template_resolution.php
parent_static_return.php
parse_str.php
partial_application_function.php
partial_application_method.php
partial_application_named_argument_reordering.php
partial_application_simple.php
partial_application_static_method.php
partial_application_templates.php
partial_application_type_inference.php
pass_by_ref.php
possibly_undefined_string_key_in_union.php
post_narrowing_check.php
priority_queue_implementation.php
private_static_method.php
properties_added_to_context.php
properties_of_class.php
properties_of_enum.php
properties_of_generic.php
properties_of_visibility.php
property_coalesce_init.php
property_docblock.php
property_docblock_type_annotation.php
property_hooks.php
property_hooks_initialization.php
property_initialization.php
property_magic_constant.php
pseudo_method_override.php
psl_array_filter_nullable.php
psl_async_integration.php
psl_awaitable_promise.php
psl_break_mixed.php
psl_int_range.php
psl_integration.php
psl_isset_optional_key.php
psl_math.php
psl_max_return_type.php
psl_min_return_type.php
psl_proc_open_pipes.php
psl_regressions.php
psl_total_length_range.php
psr_container_get.php
readonly_class_trait_non_readonly_property.php
readonly_proptected_set.php
real_pseudo_method.php
reconcile_array_index_type.php
reconcile_empty_string.php
reconcile_literl_class_string.php
reconcile_non_empty_string.php
reconcile_properties.php
reconcile_scalars.php
reconciling_generic_parameter.php
recursive_templates.php
redefined_loop_variables.php
redundant_assert.php
redundant_var_docblock.php
ref_constraint_conflict.php
reference_constraint_violation.php
reference_reused_from_confusing_scope.php
relax_class_constant_reserved_name.php
relax_int_mask_of_global_wildcard.php
relax_int_mask_of_ulid_format_wildcard.php
relax_int_range_unbounded_keyword.php
relax_non_zero_int.php
relax_trailing_pipe_in_union.php
require_implements_inherited.php
resource_reconciliation.php
retain_possibly_undefined_in_array_access.php
return_by_ref.php
return_type_override_native_vs_docblock.php
scalar_types_reconciliation.php
sealed_array_combine.php
sealed_class_10_inheritors.php
sealed_class_15_inheritors.php
sealed_class_2_inheritors.php
sealed_class_5_inheritors.php
sealed_class_7_inheritors.php
sealed_class_performance.php
session_set_cookie_params.php
session_set_save_handler.php
short_ternary_with_falsy.php
short_ternary_with_truthy.php
side_effects_in_condition.php
spread_list.php
static_anonymous_class.php
static_return_generic_override.php
static_var_coalesce.php
static_var_lazy_init.php
string_callable_template_inference.php
string_concat_combination_threshold.php
string_reconciliation.php
subtract_objects.php
switch_always_matching_case.php
switch_case_after_default_is_unreachable.php
switch_complex_logic.php
switch_default_only.php
switch_empty_case.php
switch_fall_through.php
switch_logically_unreachable_case.php
switch_mixed_fall_through.php
switch_multiple_cases.php
switch_no_break.php
switch_on_literal.php
switch_redundant_condition.php
switch_semicolon.php
switch_simple_break.php
switch_statement.php
switch_string_subject.php
switch_with_return.php
symbol_existence_assertions.php
symbol_existence_edge_cases.php
template_null_comparison.php
template_parameter_sanity_check.php
templated_trait_use.php
test_minimal_static.php
test_visibility.php
throwing_exceptions.php
trait_alias_vis_self.php
trait_class_property_conflicts.php
trait_constant_access.php
trait_constant_conflicts.php
trait_constant_direct_access.php
trait_constant_override.php
trait_method_closure_self.php
trait_method_conflicts.php
trait_override_final_methods.php
trait_property_default_value_conflicts.php
trait_property_hierarchy_conflicts.php
trait_property_initialization.php
trait_property_readonly_conflicts.php
trait_property_static_modifiers.php
trait_property_type_conflicts.php
trait_property_visibility_conflicts.php
trait_require_combined.php
trait_require_extends_self_return.php
trait_require_implements_self_return.php
trait_usage_errors.php
true_ident.php
type_alias_basic.php
type_alias_complex_types.php
type_alias_import.php
type_alias_import_rename.php
type_alias_in_class_method_parameters.php
type_alias_phpstan.php
type_alias_syntax.php
type_assert.php
type_guard_followed_by_redundant_check.php
type_is_not_narrowed_by_nested_conditional_exit.php
type_narrowing_and_assertions.php
type_narrowing_external.php
typed_property_null_coalesce.php
undefined_string_key_in_union.php
undefined_type_reference.php
uninitialized_property.php
union_template_constraint.php
unknown_named_args.php
unreferencable_expression.php
unsealed_array_overlap.php
unspecified_callable_or_closure.php
untemplated_generic_parameters.php
untyped_callable_parameter.php
untyped_property_docblock.php
unused_edge_cases.php
unused_function_template_parameter.php
unused_method.php
unused_property.php
unused_template_parameter.php
use_inheritance_error_path.php
use_inheritance_happy_path.php
useless_statements.php
value_of_enum_resolution.php
var_docblock.php
variable_key_narrowing_not_null.php
variadic_array_type.php
wildcard_type.php
yield_array_value.php
yield_from_generator.php
yield_from_invalid_key.php
yield_from_invalid_type.php
yield_from_non_iterable.php
yield_global_scope.php
yield_invalid_key.php
yield_invalid_value.php
yield_merge_iterables.php