├── .github └── workflows │ ├── run-project-tests.yml │ └── run-pytests.yml ├── .gitignore ├── Dockerfile ├── LICENSE.txt ├── README.md ├── deduce_allowed_classes.py ├── pytest.ini ├── pytests ├── __init__.py ├── conftest.py ├── php-samples │ ├── AST_parents_test.php │ ├── analysis_tests_helpers │ │ ├── GoodClass.php │ │ ├── Logger.php │ │ └── Stream.php │ ├── autoload_test │ │ ├── composer.json │ │ ├── composer.lock │ │ ├── index.php │ │ └── src │ │ │ └── NamespaceInHere │ │ │ ├── AnotherClass.php │ │ │ ├── MyClass.php │ │ │ └── NestedNamespace │ │ │ └── MyOtherClass.php │ ├── class_storage_test.php │ ├── class_test.php │ ├── class_this_test.php │ ├── comment_types_test.php │ ├── comment_types_test2.php │ ├── conditionals_test.php │ ├── conditions_field_get.php │ ├── conditions_field_set.php │ ├── conditions_test.php │ ├── conditions_two_calls_test.php │ ├── docblock_return_inconsistent.php │ ├── docblock_simple.php │ ├── docblock_tiebreak.php │ ├── fugio_inspired_test.php │ ├── gettype_switch_test.php │ ├── include_directives │ │ ├── index.php │ │ └── src │ │ │ ├── Backwards.php │ │ │ ├── BackwardsToo.php │ │ │ ├── Builtin.php │ │ │ ├── Constant.php │ │ │ ├── ConstantIncl.php │ │ │ ├── Literal.php │ │ │ ├── Magic.php │ │ │ ├── otherdir │ │ │ └── SomeClass.php │ │ │ └── somedir │ │ │ ├── SomeClass.php │ │ │ ├── WrongClass.php │ │ │ └── somesubdir │ │ │ └── SomeClass.php │ ├── include_test │ │ ├── A1Class.php │ │ ├── A2Class.php │ │ ├── BClass.php │ │ ├── CClass.php │ │ ├── D1Class.php │ │ ├── D2Class.php │ │ ├── EClass.php │ │ ├── FClass.php │ │ └── WrongClass.php │ ├── list-statement.php │ ├── local-arg-conflict.php │ ├── local-arg-noconflict.php │ ├── maybe_unserialize_test.php │ ├── mid_file_import_test.php │ ├── multi-print-project │ │ ├── simple-print-one.php │ │ └── simple-print-two.php │ ├── namespace_test │ │ ├── namespace1.php │ │ ├── namespace2.php │ │ └── test_namespace.php │ ├── recursive_var_use_test.php │ ├── simple-print-project │ │ └── simple-print.php │ ├── simple-print.php │ ├── tostring_test.php │ ├── two-simple-prints.php │ └── unresolved_include_test │ │ ├── Resolved.php │ │ ├── Unresolved.php │ │ └── test_unresolved_include.php ├── test_class_fragments.py ├── test_comments_fragments.py ├── test_conditions_fragments.py ├── test_dockblocks.py ├── test_functions.py ├── test_import_fragments.py ├── test_include_projects.py ├── test_misc_fragments.py ├── test_simple_fragments.py ├── test_simple_projects.py └── utils.py ├── pyutils ├── __init__.py └── common_functions.py ├── requirements.txt ├── runner.py └── tools ├── analyze.sc ├── extract-docblock-types ├── composer.json ├── src │ └── docparse.php └── tests │ ├── class-types.php │ ├── missing.php │ ├── multiple.php │ ├── multiple_params.php │ ├── multiple_returns.php │ ├── no_return.php │ └── simple.php ├── helpers └── get_psr4_mappings.php ├── refs ├── Dockerfile ├── known_function_signatures.txt └── setup_composer.sh └── resolve_includes.sc /.github/workflows/run-project-tests.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/columbia/quack/HEAD/.github/workflows/run-project-tests.yml -------------------------------------------------------------------------------- /.github/workflows/run-pytests.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/columbia/quack/HEAD/.github/workflows/run-pytests.yml -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/columbia/quack/HEAD/.gitignore -------------------------------------------------------------------------------- /Dockerfile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/columbia/quack/HEAD/Dockerfile -------------------------------------------------------------------------------- /LICENSE.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/columbia/quack/HEAD/LICENSE.txt -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/columbia/quack/HEAD/README.md -------------------------------------------------------------------------------- /deduce_allowed_classes.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/columbia/quack/HEAD/deduce_allowed_classes.py -------------------------------------------------------------------------------- /pytest.ini: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/columbia/quack/HEAD/pytest.ini -------------------------------------------------------------------------------- /pytests/__init__.py: -------------------------------------------------------------------------------- 1 | """Automated testing written with PyTest""" -------------------------------------------------------------------------------- /pytests/conftest.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/columbia/quack/HEAD/pytests/conftest.py -------------------------------------------------------------------------------- /pytests/php-samples/AST_parents_test.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/columbia/quack/HEAD/pytests/php-samples/AST_parents_test.php -------------------------------------------------------------------------------- /pytests/php-samples/analysis_tests_helpers/GoodClass.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/columbia/quack/HEAD/pytests/php-samples/analysis_tests_helpers/GoodClass.php -------------------------------------------------------------------------------- /pytests/php-samples/analysis_tests_helpers/Logger.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/columbia/quack/HEAD/pytests/php-samples/analysis_tests_helpers/Logger.php -------------------------------------------------------------------------------- /pytests/php-samples/analysis_tests_helpers/Stream.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/columbia/quack/HEAD/pytests/php-samples/analysis_tests_helpers/Stream.php -------------------------------------------------------------------------------- /pytests/php-samples/autoload_test/composer.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/columbia/quack/HEAD/pytests/php-samples/autoload_test/composer.json -------------------------------------------------------------------------------- /pytests/php-samples/autoload_test/composer.lock: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/columbia/quack/HEAD/pytests/php-samples/autoload_test/composer.lock -------------------------------------------------------------------------------- /pytests/php-samples/autoload_test/index.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/columbia/quack/HEAD/pytests/php-samples/autoload_test/index.php -------------------------------------------------------------------------------- /pytests/php-samples/autoload_test/src/NamespaceInHere/AnotherClass.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/columbia/quack/HEAD/pytests/php-samples/autoload_test/src/NamespaceInHere/AnotherClass.php -------------------------------------------------------------------------------- /pytests/php-samples/autoload_test/src/NamespaceInHere/MyClass.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/columbia/quack/HEAD/pytests/php-samples/autoload_test/src/NamespaceInHere/MyClass.php -------------------------------------------------------------------------------- /pytests/php-samples/autoload_test/src/NamespaceInHere/NestedNamespace/MyOtherClass.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/columbia/quack/HEAD/pytests/php-samples/autoload_test/src/NamespaceInHere/NestedNamespace/MyOtherClass.php -------------------------------------------------------------------------------- /pytests/php-samples/class_storage_test.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/columbia/quack/HEAD/pytests/php-samples/class_storage_test.php -------------------------------------------------------------------------------- /pytests/php-samples/class_test.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/columbia/quack/HEAD/pytests/php-samples/class_test.php -------------------------------------------------------------------------------- /pytests/php-samples/class_this_test.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/columbia/quack/HEAD/pytests/php-samples/class_this_test.php -------------------------------------------------------------------------------- /pytests/php-samples/comment_types_test.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/columbia/quack/HEAD/pytests/php-samples/comment_types_test.php -------------------------------------------------------------------------------- /pytests/php-samples/comment_types_test2.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/columbia/quack/HEAD/pytests/php-samples/comment_types_test2.php -------------------------------------------------------------------------------- /pytests/php-samples/conditionals_test.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/columbia/quack/HEAD/pytests/php-samples/conditionals_test.php -------------------------------------------------------------------------------- /pytests/php-samples/conditions_field_get.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/columbia/quack/HEAD/pytests/php-samples/conditions_field_get.php -------------------------------------------------------------------------------- /pytests/php-samples/conditions_field_set.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/columbia/quack/HEAD/pytests/php-samples/conditions_field_set.php -------------------------------------------------------------------------------- /pytests/php-samples/conditions_test.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/columbia/quack/HEAD/pytests/php-samples/conditions_test.php -------------------------------------------------------------------------------- /pytests/php-samples/conditions_two_calls_test.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/columbia/quack/HEAD/pytests/php-samples/conditions_two_calls_test.php -------------------------------------------------------------------------------- /pytests/php-samples/docblock_return_inconsistent.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/columbia/quack/HEAD/pytests/php-samples/docblock_return_inconsistent.php -------------------------------------------------------------------------------- /pytests/php-samples/docblock_simple.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/columbia/quack/HEAD/pytests/php-samples/docblock_simple.php -------------------------------------------------------------------------------- /pytests/php-samples/docblock_tiebreak.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/columbia/quack/HEAD/pytests/php-samples/docblock_tiebreak.php -------------------------------------------------------------------------------- /pytests/php-samples/fugio_inspired_test.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/columbia/quack/HEAD/pytests/php-samples/fugio_inspired_test.php -------------------------------------------------------------------------------- /pytests/php-samples/gettype_switch_test.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/columbia/quack/HEAD/pytests/php-samples/gettype_switch_test.php -------------------------------------------------------------------------------- /pytests/php-samples/include_directives/index.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/columbia/quack/HEAD/pytests/php-samples/include_directives/index.php -------------------------------------------------------------------------------- /pytests/php-samples/include_directives/src/Backwards.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/columbia/quack/HEAD/pytests/php-samples/include_directives/src/Backwards.php -------------------------------------------------------------------------------- /pytests/php-samples/include_directives/src/BackwardsToo.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/columbia/quack/HEAD/pytests/php-samples/include_directives/src/BackwardsToo.php -------------------------------------------------------------------------------- /pytests/php-samples/include_directives/src/Builtin.php: -------------------------------------------------------------------------------- 1 | 8 | -------------------------------------------------------------------------------- /pytests/php-samples/include_directives/src/Constant.php: -------------------------------------------------------------------------------- 1 | 8 | -------------------------------------------------------------------------------- /pytests/php-samples/include_directives/src/ConstantIncl.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/columbia/quack/HEAD/pytests/php-samples/include_directives/src/ConstantIncl.php -------------------------------------------------------------------------------- /pytests/php-samples/include_directives/src/Literal.php: -------------------------------------------------------------------------------- 1 | 8 | -------------------------------------------------------------------------------- /pytests/php-samples/include_directives/src/Magic.php: -------------------------------------------------------------------------------- 1 | 8 | -------------------------------------------------------------------------------- /pytests/php-samples/include_directives/src/otherdir/SomeClass.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/columbia/quack/HEAD/pytests/php-samples/include_directives/src/otherdir/SomeClass.php -------------------------------------------------------------------------------- /pytests/php-samples/include_directives/src/somedir/SomeClass.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/columbia/quack/HEAD/pytests/php-samples/include_directives/src/somedir/SomeClass.php -------------------------------------------------------------------------------- /pytests/php-samples/include_directives/src/somedir/WrongClass.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/columbia/quack/HEAD/pytests/php-samples/include_directives/src/somedir/WrongClass.php -------------------------------------------------------------------------------- /pytests/php-samples/include_directives/src/somedir/somesubdir/SomeClass.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/columbia/quack/HEAD/pytests/php-samples/include_directives/src/somedir/somesubdir/SomeClass.php -------------------------------------------------------------------------------- /pytests/php-samples/include_test/A1Class.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/columbia/quack/HEAD/pytests/php-samples/include_test/A1Class.php -------------------------------------------------------------------------------- /pytests/php-samples/include_test/A2Class.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/columbia/quack/HEAD/pytests/php-samples/include_test/A2Class.php -------------------------------------------------------------------------------- /pytests/php-samples/include_test/BClass.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/columbia/quack/HEAD/pytests/php-samples/include_test/BClass.php -------------------------------------------------------------------------------- /pytests/php-samples/include_test/CClass.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/columbia/quack/HEAD/pytests/php-samples/include_test/CClass.php -------------------------------------------------------------------------------- /pytests/php-samples/include_test/D1Class.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/columbia/quack/HEAD/pytests/php-samples/include_test/D1Class.php -------------------------------------------------------------------------------- /pytests/php-samples/include_test/D2Class.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/columbia/quack/HEAD/pytests/php-samples/include_test/D2Class.php -------------------------------------------------------------------------------- /pytests/php-samples/include_test/EClass.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/columbia/quack/HEAD/pytests/php-samples/include_test/EClass.php -------------------------------------------------------------------------------- /pytests/php-samples/include_test/FClass.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/columbia/quack/HEAD/pytests/php-samples/include_test/FClass.php -------------------------------------------------------------------------------- /pytests/php-samples/include_test/WrongClass.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/columbia/quack/HEAD/pytests/php-samples/include_test/WrongClass.php -------------------------------------------------------------------------------- /pytests/php-samples/list-statement.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/columbia/quack/HEAD/pytests/php-samples/list-statement.php -------------------------------------------------------------------------------- /pytests/php-samples/local-arg-conflict.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/columbia/quack/HEAD/pytests/php-samples/local-arg-conflict.php -------------------------------------------------------------------------------- /pytests/php-samples/local-arg-noconflict.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/columbia/quack/HEAD/pytests/php-samples/local-arg-noconflict.php -------------------------------------------------------------------------------- /pytests/php-samples/maybe_unserialize_test.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/columbia/quack/HEAD/pytests/php-samples/maybe_unserialize_test.php -------------------------------------------------------------------------------- /pytests/php-samples/mid_file_import_test.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/columbia/quack/HEAD/pytests/php-samples/mid_file_import_test.php -------------------------------------------------------------------------------- /pytests/php-samples/multi-print-project/simple-print-one.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/columbia/quack/HEAD/pytests/php-samples/multi-print-project/simple-print-one.php -------------------------------------------------------------------------------- /pytests/php-samples/multi-print-project/simple-print-two.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/columbia/quack/HEAD/pytests/php-samples/multi-print-project/simple-print-two.php -------------------------------------------------------------------------------- /pytests/php-samples/namespace_test/namespace1.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/columbia/quack/HEAD/pytests/php-samples/namespace_test/namespace1.php -------------------------------------------------------------------------------- /pytests/php-samples/namespace_test/namespace2.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/columbia/quack/HEAD/pytests/php-samples/namespace_test/namespace2.php -------------------------------------------------------------------------------- /pytests/php-samples/namespace_test/test_namespace.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/columbia/quack/HEAD/pytests/php-samples/namespace_test/test_namespace.php -------------------------------------------------------------------------------- /pytests/php-samples/recursive_var_use_test.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/columbia/quack/HEAD/pytests/php-samples/recursive_var_use_test.php -------------------------------------------------------------------------------- /pytests/php-samples/simple-print-project/simple-print.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/columbia/quack/HEAD/pytests/php-samples/simple-print-project/simple-print.php -------------------------------------------------------------------------------- /pytests/php-samples/simple-print.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/columbia/quack/HEAD/pytests/php-samples/simple-print.php -------------------------------------------------------------------------------- /pytests/php-samples/tostring_test.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/columbia/quack/HEAD/pytests/php-samples/tostring_test.php -------------------------------------------------------------------------------- /pytests/php-samples/two-simple-prints.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/columbia/quack/HEAD/pytests/php-samples/two-simple-prints.php -------------------------------------------------------------------------------- /pytests/php-samples/unresolved_include_test/Resolved.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/columbia/quack/HEAD/pytests/php-samples/unresolved_include_test/Resolved.php -------------------------------------------------------------------------------- /pytests/php-samples/unresolved_include_test/Unresolved.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/columbia/quack/HEAD/pytests/php-samples/unresolved_include_test/Unresolved.php -------------------------------------------------------------------------------- /pytests/php-samples/unresolved_include_test/test_unresolved_include.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/columbia/quack/HEAD/pytests/php-samples/unresolved_include_test/test_unresolved_include.php -------------------------------------------------------------------------------- /pytests/test_class_fragments.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/columbia/quack/HEAD/pytests/test_class_fragments.py -------------------------------------------------------------------------------- /pytests/test_comments_fragments.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/columbia/quack/HEAD/pytests/test_comments_fragments.py -------------------------------------------------------------------------------- /pytests/test_conditions_fragments.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/columbia/quack/HEAD/pytests/test_conditions_fragments.py -------------------------------------------------------------------------------- /pytests/test_dockblocks.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/columbia/quack/HEAD/pytests/test_dockblocks.py -------------------------------------------------------------------------------- /pytests/test_functions.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/columbia/quack/HEAD/pytests/test_functions.py -------------------------------------------------------------------------------- /pytests/test_import_fragments.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/columbia/quack/HEAD/pytests/test_import_fragments.py -------------------------------------------------------------------------------- /pytests/test_include_projects.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/columbia/quack/HEAD/pytests/test_include_projects.py -------------------------------------------------------------------------------- /pytests/test_misc_fragments.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/columbia/quack/HEAD/pytests/test_misc_fragments.py -------------------------------------------------------------------------------- /pytests/test_simple_fragments.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/columbia/quack/HEAD/pytests/test_simple_fragments.py -------------------------------------------------------------------------------- /pytests/test_simple_projects.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/columbia/quack/HEAD/pytests/test_simple_projects.py -------------------------------------------------------------------------------- /pytests/utils.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/columbia/quack/HEAD/pytests/utils.py -------------------------------------------------------------------------------- /pyutils/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /pyutils/common_functions.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/columbia/quack/HEAD/pyutils/common_functions.py -------------------------------------------------------------------------------- /requirements.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/columbia/quack/HEAD/requirements.txt -------------------------------------------------------------------------------- /runner.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/columbia/quack/HEAD/runner.py -------------------------------------------------------------------------------- /tools/analyze.sc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/columbia/quack/HEAD/tools/analyze.sc -------------------------------------------------------------------------------- /tools/extract-docblock-types/composer.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/columbia/quack/HEAD/tools/extract-docblock-types/composer.json -------------------------------------------------------------------------------- /tools/extract-docblock-types/src/docparse.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/columbia/quack/HEAD/tools/extract-docblock-types/src/docparse.php -------------------------------------------------------------------------------- /tools/extract-docblock-types/tests/class-types.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/columbia/quack/HEAD/tools/extract-docblock-types/tests/class-types.php -------------------------------------------------------------------------------- /tools/extract-docblock-types/tests/missing.php: -------------------------------------------------------------------------------- 1 |