pyvbaanalysis 3.0.0__tar.gz → 3.0.1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/.github/requirements/fuzz.in +1 -1
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/.github/requirements/fuzz.txt +3 -3
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/.github/requirements/runtime.in +1 -1
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/.github/requirements/runtime.txt +3 -3
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/.github/requirements/test.in +8 -1
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/.github/requirements/test.txt +13 -8
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/.github/security/yara.json +3 -3
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/.github/security/yara_update.py +6 -17
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/.github/workflows/update-yara-rules.yml +14 -6
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/CHANGELOG.md +15 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/PKG-INFO +1 -1
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/pyvbaanalysis/__init__.py +1 -1
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/pyvbaanalysis/completion/member_access.py +33 -4
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/pyvbaanalysis/data/access_host_model.json +1 -1
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/pyvbaanalysis/data/diagnostic_influence_audit.json +253 -9
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/pyvbaanalysis/data/excel_host_model.json +1 -1
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/pyvbaanalysis/data/manifest.json +13 -11
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/pyvbaanalysis/data/powerpoint_host_model.json +1 -1
- pyvbaanalysis-3.0.1/pyvbaanalysis/data/regexp_host_model.json +1 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/pyvbaanalysis/data/rule_metadata.json +14 -2
- pyvbaanalysis-3.0.1/pyvbaanalysis/data/scripting_host_model.json +1 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/pyvbaanalysis/data/vbe_oracle_cases.json +3932 -1
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/pyvbaanalysis/data/word_host_model.json +1 -1
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/pyvbaanalysis/diagnostics/analyze_module.py +4 -1
- pyvbaanalysis-3.0.1/pyvbaanalysis/diagnostics/assignment_coercion_type.py +65 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/pyvbaanalysis/diagnostics/call_extraction.py +15 -4
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/pyvbaanalysis/diagnostics/callable_signatures.py +21 -2
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/pyvbaanalysis/diagnostics/context.py +1 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/pyvbaanalysis/diagnostics/held_objects.py +9 -3
- pyvbaanalysis-3.0.1/pyvbaanalysis/diagnostics/member_parameter_counts.py +13 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/pyvbaanalysis/diagnostics/registry.py +9 -4
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/pyvbaanalysis/diagnostics/rules/access_data.py +23 -11
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/pyvbaanalysis/diagnostics/rules/argument_shape.py +18 -2
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/pyvbaanalysis/diagnostics/rules/argument_types.py +12 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/pyvbaanalysis/diagnostics/rules/assignments.py +324 -18
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/pyvbaanalysis/diagnostics/rules/by_name_calls.py +5 -13
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/pyvbaanalysis/diagnostics/rules/call_arity.py +9 -1
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/pyvbaanalysis/diagnostics/rules/class_instance_values.py +6 -4
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/pyvbaanalysis/diagnostics/rules/collection_state.py +6 -3
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/pyvbaanalysis/diagnostics/rules/declarations.py +10 -2
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/pyvbaanalysis/diagnostics/rules/deleted_objects.py +22 -7
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/pyvbaanalysis/diagnostics/rules/deleted_settings.py +1 -3
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/pyvbaanalysis/diagnostics/rules/dictionary_state.py +26 -3
- pyvbaanalysis-3.0.1/pyvbaanalysis/diagnostics/rules/document_names.py +350 -0
- pyvbaanalysis-3.0.1/pyvbaanalysis/diagnostics/rules/excel_session_state.py +81 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/pyvbaanalysis/diagnostics/rules/file_statements.py +28 -12
- pyvbaanalysis-3.0.1/pyvbaanalysis/diagnostics/rules/form_contents.py +115 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/pyvbaanalysis/diagnostics/rules/host_arguments.py +41 -171
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/pyvbaanalysis/diagnostics/rules/late_bound_members.py +21 -19
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/pyvbaanalysis/diagnostics/rules/late_bound_objects.py +26 -3
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/pyvbaanalysis/diagnostics/rules/missing_reference.py +45 -7
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/pyvbaanalysis/diagnostics/rules/module_members.py +5 -1
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/pyvbaanalysis/diagnostics/rules/object_state.py +1 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/pyvbaanalysis/diagnostics/rules/property_use.py +5 -2
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/pyvbaanalysis/diagnostics/rules/refused_declarations.py +1 -1
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/pyvbaanalysis/diagnostics/rules/type_of_is.py +9 -3
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/pyvbaanalysis/diagnostics/rules/undeclared.py +11 -3
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/pyvbaanalysis/diagnostics/rules/variant_values.py +11 -0
- pyvbaanalysis-3.0.1/pyvbaanalysis/diagnostics/setter_assignment.py +179 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/pyvbaanalysis/host/host_libraries.py +4 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/pyvbaanalysis/host/host_model.py +8 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/pyvbaanalysis/host/host_registry.py +6 -2
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/pyvbaanalysis/host/library_type_names.py +2 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/pyvbaanalysis/symbols/class_member_facts.py +6 -3
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/pyvbaanalysis/symbols/project_index.py +38 -13
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/pyvbaanalysis/symbols/symbol_model.py +1 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/pyvbaanalysis/types/type_inference.py +28 -18
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/pyvbaanalysis/types/type_names.py +2 -3
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tests/test_evidence.py +2 -2
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tests/test_registry_parity.py +3 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tests/test_rule_metadata.py +6 -6
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tests/test_rules_assignments_types.py +14 -2
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tests/test_rules_missing_reference.py +12 -3
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tests/test_rules_object_values.py +1 -1
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tests/test_rules_runtime_values.py +5 -1
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tests/test_type_names.py +2 -2
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tests/test_upstream_sync_10_5_0.py +1 -1
- pyvbaanalysis-3.0.1/tests/test_upstream_sync_11_1_0.py +103 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tests/test_upstream_sync_2f49b93_host_rules.py +10 -36
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tools/extract_host_model.mjs +2 -0
- pyvbaanalysis-3.0.0/pyvbaanalysis/diagnostics/rules/document_names.py +0 -544
- pyvbaanalysis-3.0.0/pyvbaanalysis/diagnostics/rules/excel_session_state.py +0 -218
- pyvbaanalysis-3.0.0/pyvbaanalysis/diagnostics/rules/form_contents.py +0 -484
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/.gitattributes +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/.github/dependabot.yml +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/.github/requirements/build.in +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/.github/requirements/build.txt +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/.github/requirements/pip-audit.in +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/.github/requirements/pip-audit.txt +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/.github/requirements/zizmor.in +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/.github/requirements/zizmor.txt +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/.github/rulesets/main.json +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/.github/rulesets/release-tags.json +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/.github/security/clamav/Dockerfile +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/.github/security/semgrep/Dockerfile +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/.github/workflows/auto-merge.yml +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/.github/workflows/ci.yml +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/.github/workflows/fuzz.yml +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/.github/workflows/malware-scan.yml +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/.github/workflows/publish.yml +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/.github/workflows/scorecard.yml +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/.github/workflows/security.yml +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/.github/zizmor.yml +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/.gitignore +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/AGENTS.md +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/CLAUDE.md +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/CONTRIBUTING.md +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/LICENSE +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/README.md +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/SECURITY.md +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/docs/api-reference.md +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/docs/diagnostics-catalogue.md +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/docs/usage.md +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/fuzz/fuzz_analyzer.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/pyproject.toml +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/pyvbaanalysis/__main__.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/pyvbaanalysis/call/__init__.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/pyvbaanalysis/call/call_context.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/pyvbaanalysis/cli.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/pyvbaanalysis/completion/__init__.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/pyvbaanalysis/completion/cursor_context.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/pyvbaanalysis/completion/event_handlers.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/pyvbaanalysis/completion/type_completion.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/pyvbaanalysis/conditional/__init__.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/pyvbaanalysis/conditional/conditional_compilation.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/pyvbaanalysis/constants/__init__.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/pyvbaanalysis/constants/date_literal.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/pyvbaanalysis/constants/integer_constant_expression.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/pyvbaanalysis/data/event_definitions.json +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/pyvbaanalysis/data/host_closed_types.json +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/pyvbaanalysis/data/msforms_members.json +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/pyvbaanalysis/data/vb6_host_model.json +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/pyvbaanalysis/data/vba_runtime_tables.json +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/pyvbaanalysis/diagnostics/__init__.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/pyvbaanalysis/diagnostics/argument_inference.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/pyvbaanalysis/diagnostics/block_headers.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/pyvbaanalysis/diagnostics/callee_arguments.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/pyvbaanalysis/diagnostics/condition_operands.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/pyvbaanalysis/diagnostics/condition_value.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/pyvbaanalysis/diagnostics/const_expr.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/pyvbaanalysis/diagnostics/dataflow.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/pyvbaanalysis/diagnostics/exprwalk.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/pyvbaanalysis/diagnostics/function_results.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/pyvbaanalysis/diagnostics/inline_suppression.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/pyvbaanalysis/diagnostics/known_locals.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/pyvbaanalysis/diagnostics/known_string_calls.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/pyvbaanalysis/diagnostics/loop_counters.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/pyvbaanalysis/diagnostics/model.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/pyvbaanalysis/diagnostics/module_analysis.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/pyvbaanalysis/diagnostics/module_state.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/pyvbaanalysis/diagnostics/null_operators.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/pyvbaanalysis/diagnostics/opened_file_numbers.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/pyvbaanalysis/diagnostics/reaching_snapshot.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/pyvbaanalysis/diagnostics/rule_metadata.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/pyvbaanalysis/diagnostics/rules/__init__.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/pyvbaanalysis/diagnostics/rules/address_of_use.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/pyvbaanalysis/diagnostics/rules/arrays.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/pyvbaanalysis/diagnostics/rules/binary_operand_scalar.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/pyvbaanalysis/diagnostics/rules/condition_values.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/pyvbaanalysis/diagnostics/rules/control_flow.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/pyvbaanalysis/diagnostics/rules/dead_code.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/pyvbaanalysis/diagnostics/rules/declaration_forms.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/pyvbaanalysis/diagnostics/rules/declaration_order.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/pyvbaanalysis/diagnostics/rules/declares.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/pyvbaanalysis/diagnostics/rules/directive_forms.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/pyvbaanalysis/diagnostics/rules/doc_comments.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/pyvbaanalysis/diagnostics/rules/duplicates.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/pyvbaanalysis/diagnostics/rules/error_values.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/pyvbaanalysis/diagnostics/rules/event_handler_signatures.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/pyvbaanalysis/diagnostics/rules/expressions.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/pyvbaanalysis/diagnostics/rules/file_paths.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/pyvbaanalysis/diagnostics/rules/handler_flow.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/pyvbaanalysis/diagnostics/rules/host_property_values.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/pyvbaanalysis/diagnostics/rules/implements_members.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/pyvbaanalysis/diagnostics/rules/late_binding.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/pyvbaanalysis/diagnostics/rules/lexical.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/pyvbaanalysis/diagnostics/rules/line_continuations.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/pyvbaanalysis/diagnostics/rules/local_declaration_order.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/pyvbaanalysis/diagnostics/rules/locked_arrays.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/pyvbaanalysis/diagnostics/rules/long_long_narrowing.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/pyvbaanalysis/diagnostics/rules/malformed_lines.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/pyvbaanalysis/diagnostics/rules/module_kind.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/pyvbaanalysis/diagnostics/rules/numeric_literals.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/pyvbaanalysis/diagnostics/rules/object_values.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/pyvbaanalysis/diagnostics/rules/omitted_arguments.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/pyvbaanalysis/diagnostics/rules/overflow.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/pyvbaanalysis/diagnostics/rules/param_array_use.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/pyvbaanalysis/diagnostics/rules/parameter_defaults.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/pyvbaanalysis/diagnostics/rules/parentheses.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/pyvbaanalysis/diagnostics/rules/runtime_values.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/pyvbaanalysis/diagnostics/rules/shared.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/pyvbaanalysis/diagnostics/rules/statement_forms.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/pyvbaanalysis/diagnostics/rules/statement_types.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/pyvbaanalysis/diagnostics/rules/stray_tokens.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/pyvbaanalysis/diagnostics/rules/type_field_arrays.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/pyvbaanalysis/diagnostics/rules/type_members.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/pyvbaanalysis/diagnostics/rules/vba_library_members.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/pyvbaanalysis/diagnostics/rules/worksheet_function_arguments.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/pyvbaanalysis/diagnostics/straight_line_values.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/pyvbaanalysis/diagnostics/string_conversion.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/pyvbaanalysis/diagnostics/type_fields.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/pyvbaanalysis/diagnostics/type_member_state.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/pyvbaanalysis/diagnostics/walker.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/pyvbaanalysis/docs/__init__.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/pyvbaanalysis/docs/doc_comment.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/pyvbaanalysis/evidence.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/pyvbaanalysis/flow/__init__.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/pyvbaanalysis/flow/procedure_labels.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/pyvbaanalysis/flow/procedure_unstructured.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/pyvbaanalysis/host/__init__.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/pyvbaanalysis/host/event_signatures_data.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/pyvbaanalysis/host/excel_library_names.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/pyvbaanalysis/host/excel_object_model.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/pyvbaanalysis/host/host_default_members.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/pyvbaanalysis/host/ms_forms_form_control_members.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/pyvbaanalysis/host/msforms.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/pyvbaanalysis/host/type_extensibility.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/pyvbaanalysis/host/word_builtin_styles.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/pyvbaanalysis/identity_cache.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/pyvbaanalysis/js_compat.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/pyvbaanalysis/lexer/__init__.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/pyvbaanalysis/lexer/contextual_keywords.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/pyvbaanalysis/lexer/keyword_table.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/pyvbaanalysis/lexer/stripped_lines.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/pyvbaanalysis/lexer/token_helpers.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/pyvbaanalysis/lexer/token_kinds.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/pyvbaanalysis/lexer/tokenize.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/pyvbaanalysis/lexer/trivia.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/pyvbaanalysis/parser/__init__.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/pyvbaanalysis/parser/expression_limits.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/pyvbaanalysis/parser/expression_stack.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/pyvbaanalysis/parser/fixed_length_string.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/pyvbaanalysis/parser/nodes.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/pyvbaanalysis/parser/parse_expression.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/pyvbaanalysis/parser/parse_module.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/pyvbaanalysis/parser/parser_state.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/pyvbaanalysis/parser/statement_walk.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/pyvbaanalysis/parser/type_declaration_suffix.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/pyvbaanalysis/project.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/pyvbaanalysis/py.typed +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/pyvbaanalysis/reader/__init__.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/pyvbaanalysis/reader/loose_file.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/pyvbaanalysis/reader/vbe_module.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/pyvbaanalysis/reader/workbook.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/pyvbaanalysis/reader/workbook_sheets.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/pyvbaanalysis/references/__init__.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/pyvbaanalysis/references/reference_kinds.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/pyvbaanalysis/runtime/__init__.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/pyvbaanalysis/runtime/vba_library_names.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/pyvbaanalysis/runtime/vba_runtime.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/pyvbaanalysis/symbols/__init__.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/pyvbaanalysis/symbols/build_module_symbols.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/pyvbaanalysis/symbols/name_resolution.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/pyvbaanalysis/symbols/sheet_changes.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/pyvbaanalysis/symbols/user_form_controls.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/pyvbaanalysis/types/__init__.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/security/malware-allowlist.toml +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/security/malware_verdict.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tests/conftest.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tests/fixtures/README.md +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tests/fuzz_corpus/vba/oracle_001830f3c622.bas +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tests/fuzz_corpus/vba/oracle_004e5b7d2b94.bas +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tests/fuzz_corpus/vba/oracle_01972da127a9.bas +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tests/fuzz_corpus/vba/oracle_03631c324c18.bas +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tests/fuzz_corpus/vba/oracle_047981707c08.bas +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tests/fuzz_corpus/vba/oracle_058361b33ac0.bas +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tests/fuzz_corpus/vba/oracle_08ced061ad18.bas +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tests/fuzz_corpus/vba/oracle_0998f00ede7e.bas +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tests/fuzz_corpus/vba/oracle_0a0428bccd86.bas +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tests/fuzz_corpus/vba/oracle_0c6acfda4183.bas +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tests/fuzz_corpus/vba/oracle_0c6e5fab24b3.bas +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tests/fuzz_corpus/vba/oracle_0e11a74d35ba.bas +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tests/fuzz_corpus/vba/oracle_0eeb7bfedd16.bas +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tests/fuzz_corpus/vba/oracle_1060d8f7f231.bas +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tests/fuzz_corpus/vba/oracle_109c24ba58f2.bas +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tests/fuzz_corpus/vba/oracle_10ad52ad3bcf.bas +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tests/fuzz_corpus/vba/oracle_12acff722aa8.bas +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tests/fuzz_corpus/vba/oracle_13a8d4578c0d.bas +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tests/fuzz_corpus/vba/oracle_183a73469b37.bas +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tests/fuzz_corpus/vba/oracle_1915b0b76a70.bas +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tests/fuzz_corpus/vba/oracle_1cae7bc82b01.bas +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tests/fuzz_corpus/vba/oracle_1f3a8c56565b.bas +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tests/fuzz_corpus/vba/oracle_20aa041d22c9.bas +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tests/fuzz_corpus/vba/oracle_22153cc1aace.bas +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tests/fuzz_corpus/vba/oracle_268e70f74676.bas +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tests/fuzz_corpus/vba/oracle_2aa88938dd69.bas +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tests/fuzz_corpus/vba/oracle_2b881865228e.bas +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tests/fuzz_corpus/vba/oracle_2e58bd5f5395.bas +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tests/fuzz_corpus/vba/oracle_2f0909a4bc69.bas +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tests/fuzz_corpus/vba/oracle_2f2229503c1d.bas +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tests/fuzz_corpus/vba/oracle_326244504881.bas +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tests/fuzz_corpus/vba/oracle_33d13d61f0ff.bas +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tests/fuzz_corpus/vba/oracle_37325c143363.bas +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tests/fuzz_corpus/vba/oracle_380bf25ac7d1.bas +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tests/fuzz_corpus/vba/oracle_380e69b901f2.bas +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tests/fuzz_corpus/vba/oracle_3904f75afce1.bas +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tests/fuzz_corpus/vba/oracle_3acad8bbf704.bas +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tests/fuzz_corpus/vba/oracle_3b0649d52ca6.bas +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tests/fuzz_corpus/vba/oracle_3b221ff5928a.bas +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tests/fuzz_corpus/vba/oracle_3e79f5a00dec.bas +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tests/fuzz_corpus/vba/oracle_4255522d4022.bas +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tests/fuzz_corpus/vba/oracle_443e1c7656a7.bas +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tests/fuzz_corpus/vba/oracle_444460537cce.bas +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tests/fuzz_corpus/vba/oracle_48e921f57607.bas +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tests/fuzz_corpus/vba/oracle_4b5e244cf7cb.bas +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tests/fuzz_corpus/vba/oracle_4cd3f717b0fb.bas +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tests/fuzz_corpus/vba/oracle_5220198b0111.bas +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tests/fuzz_corpus/vba/oracle_5382969e2dfc.bas +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tests/fuzz_corpus/vba/oracle_5408dd2f28b0.bas +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tests/fuzz_corpus/vba/oracle_55e0772a6f18.bas +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tests/fuzz_corpus/vba/oracle_567445f21a42.bas +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tests/fuzz_corpus/vba/oracle_5d37e1f13669.bas +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tests/fuzz_corpus/vba/oracle_62d7b8e00670.bas +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tests/fuzz_corpus/vba/oracle_62eca49da20b.bas +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tests/fuzz_corpus/vba/oracle_62ff72264856.bas +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tests/fuzz_corpus/vba/oracle_684f3c6840bb.bas +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tests/fuzz_corpus/vba/oracle_6e4af256f9ad.bas +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tests/fuzz_corpus/vba/oracle_6f0c82afc753.bas +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tests/fuzz_corpus/vba/oracle_72535bc2b672.bas +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tests/fuzz_corpus/vba/oracle_729efded8c38.bas +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tests/fuzz_corpus/vba/oracle_735269ca3a17.bas +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tests/fuzz_corpus/vba/oracle_7b688c7879d4.bas +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tests/fuzz_corpus/vba/oracle_7bbf7b7f9fa2.bas +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tests/fuzz_corpus/vba/oracle_7cf345462fd9.bas +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tests/fuzz_corpus/vba/oracle_7d737fb1d608.bas +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tests/fuzz_corpus/vba/oracle_7e36a8cc5858.bas +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tests/fuzz_corpus/vba/oracle_7e526e314610.bas +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tests/fuzz_corpus/vba/oracle_7f4979e1d991.bas +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tests/fuzz_corpus/vba/oracle_7f50a311939d.bas +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tests/fuzz_corpus/vba/oracle_7fe1aa418af4.bas +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tests/fuzz_corpus/vba/oracle_8115cd2dac22.bas +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tests/fuzz_corpus/vba/oracle_828d0673786b.bas +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tests/fuzz_corpus/vba/oracle_83431e43efeb.bas +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tests/fuzz_corpus/vba/oracle_8357295e2b81.bas +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tests/fuzz_corpus/vba/oracle_83d971096389.bas +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tests/fuzz_corpus/vba/oracle_84629c51931f.bas +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tests/fuzz_corpus/vba/oracle_85b0a47bfe8e.bas +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tests/fuzz_corpus/vba/oracle_85c01a2194ab.bas +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tests/fuzz_corpus/vba/oracle_85dad0f84a3f.bas +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tests/fuzz_corpus/vba/oracle_8713990599db.bas +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tests/fuzz_corpus/vba/oracle_8c61e6187842.bas +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tests/fuzz_corpus/vba/oracle_8d174570c3d9.bas +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tests/fuzz_corpus/vba/oracle_8f916c1a66f1.bas +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tests/fuzz_corpus/vba/oracle_90bb361225f4.bas +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tests/fuzz_corpus/vba/oracle_9220f5f2ce01.bas +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tests/fuzz_corpus/vba/oracle_93ff3d5fd30f.bas +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tests/fuzz_corpus/vba/oracle_94e620049311.bas +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tests/fuzz_corpus/vba/oracle_95d3251eb1c8.bas +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tests/fuzz_corpus/vba/oracle_983513bcc20d.bas +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tests/fuzz_corpus/vba/oracle_9abee72895fc.bas +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tests/fuzz_corpus/vba/oracle_9b97577cff21.bas +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tests/fuzz_corpus/vba/oracle_9f639fa9f222.bas +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tests/fuzz_corpus/vba/oracle_a04cb394e938.bas +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tests/fuzz_corpus/vba/oracle_a19e67f8d4b2.bas +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tests/fuzz_corpus/vba/oracle_a3b94c356a14.bas +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tests/fuzz_corpus/vba/oracle_a88a30c09df1.bas +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tests/fuzz_corpus/vba/oracle_aacc10451599.bas +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tests/fuzz_corpus/vba/oracle_af62fa26de4e.bas +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tests/fuzz_corpus/vba/oracle_b090ead48f6c.bas +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tests/fuzz_corpus/vba/oracle_b2d8839c78fe.bas +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tests/fuzz_corpus/vba/oracle_b387bf5c0f36.bas +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tests/fuzz_corpus/vba/oracle_b56a28e4124e.bas +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tests/fuzz_corpus/vba/oracle_b67f512d0b13.bas +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tests/fuzz_corpus/vba/oracle_b7fa506e3da0.bas +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tests/fuzz_corpus/vba/oracle_b9695517accc.bas +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tests/fuzz_corpus/vba/oracle_bc2884e354cf.bas +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tests/fuzz_corpus/vba/oracle_c394765ced47.bas +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tests/fuzz_corpus/vba/oracle_c47e170942b3.bas +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tests/fuzz_corpus/vba/oracle_c62312bf6240.bas +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tests/fuzz_corpus/vba/oracle_c747ea865ffc.bas +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tests/fuzz_corpus/vba/oracle_ca0cfbefa2ff.bas +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tests/fuzz_corpus/vba/oracle_cef681b4f13c.bas +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tests/fuzz_corpus/vba/oracle_d1f26bf92a58.bas +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tests/fuzz_corpus/vba/oracle_d7301575832c.bas +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tests/fuzz_corpus/vba/oracle_db535807976f.bas +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tests/fuzz_corpus/vba/oracle_db97d450376d.bas +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tests/fuzz_corpus/vba/oracle_de7a5dc7f56a.bas +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tests/fuzz_corpus/vba/oracle_df2a14042d4b.bas +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tests/fuzz_corpus/vba/oracle_e2698ee9ee1c.bas +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tests/fuzz_corpus/vba/oracle_e9468735f4a9.bas +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tests/fuzz_corpus/vba/oracle_eb47a77d8d17.bas +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tests/fuzz_corpus/vba/oracle_eca56d0710dc.bas +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tests/fuzz_corpus/vba/oracle_ecbfd1870d4e.bas +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tests/fuzz_corpus/vba/oracle_ee1b4962cc58.bas +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tests/fuzz_corpus/vba/oracle_f633b1435ab2.bas +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tests/fuzz_corpus/vba/oracle_fba1a42cf3c3.bas +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tests/fuzz_corpus/vba/oracle_fbc88898cfab.bas +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tests/fuzz_corpus/vba/oracle_fe8cbf1617fa.bas +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tests/fuzz_corpus/vba/oracle_ff8061a951fc.bas +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tests/oracle_support.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tests/test_analysis_failures.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tests/test_analyzer_lexes_module_once.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tests/test_block_walks.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tests/test_call_context.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tests/test_cli.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tests/test_condition_value.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tests/test_conditional_arms.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tests/test_conditional_compilation.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tests/test_dataflow.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tests/test_deep_nesting.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tests/test_diagnostics_engine.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tests/test_function_results.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tests/test_fuzz_corpus.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tests/test_held_objects.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tests/test_host_libraries.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tests/test_host_model.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tests/test_host_seam.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tests/test_inline_suppression.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tests/test_integer_constant_expression.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tests/test_known_string_calls.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tests/test_language_matrix.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tests/test_lexer.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tests/test_malware_verdict.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tests/test_member_access_chains.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tests/test_module_analysis.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tests/test_module_state.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tests/test_parser.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tests/test_project.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tests/test_project_index.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tests/test_public_api.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tests/test_reaching_snapshot.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tests/test_reader.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tests/test_reader_metadata.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tests/test_real_world_false_positives.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tests/test_reference_kinds.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tests/test_rules_ambiguous_enum_member.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tests/test_rules_argument_shape.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tests/test_rules_argument_types.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tests/test_rules_arrays.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tests/test_rules_assignments.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tests/test_rules_binary_operand_scalar.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tests/test_rules_call_arity.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tests/test_rules_control_flow.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tests/test_rules_dead_code.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tests/test_rules_declarations.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tests/test_rules_division_by_zero.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tests/test_rules_doc_comments.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tests/test_rules_duplicates.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tests/test_rules_event_handler_module_scope.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tests/test_rules_expression_calls.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tests/test_rules_expressions.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tests/test_rules_expressions_2f49b93.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tests/test_rules_handler_flow_undeclared_10_14_6.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tests/test_rules_invalid_as_type_names.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tests/test_rules_is_operator_non_object.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tests/test_rules_late_binding.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tests/test_rules_lexical.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tests/test_rules_member_not_found.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tests/test_rules_module_kind.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tests/test_rules_numeric_literals.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tests/test_rules_object_state.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tests/test_rules_overflow_depth.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tests/test_rules_parameter_defaults.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tests/test_rules_property_setter_value_parameters.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tests/test_rules_scalar_and_foreach.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tests/test_rules_type_of_is.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tests/test_rules_typeof_is_always_false.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tests/test_rules_undeclared.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tests/test_runtime_tables.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tests/test_statement_token_derivation.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tests/test_straight_line_values.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tests/test_string_conversion.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tests/test_stripped_lines.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tests/test_symbols.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tests/test_sync_backlog.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tests/test_token_helpers.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tests/test_type_completion.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tests/test_type_inference_2f49b93.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tests/test_type_member_state.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tests/test_upstream_sync_10_12_0.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tests/test_upstream_sync_10_13_0.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tests/test_upstream_sync_10_14_0.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tests/test_upstream_sync_10_6_0.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tests/test_upstream_sync_10_7_1.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tests/test_upstream_sync_11_0_0.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tests/test_upstream_sync_6_1_2.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tools/extract_event_definitions.mjs +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tools/extract_rule_metadata.mjs +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tools/extract_runtime_tables.mjs +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tools/generate_diagnostics_catalogue.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tools/generate_manifest.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tools/hunt/bis_first.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tools/hunt/corpus_two_trees.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tools/hunt/drop_harness.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tools/hunt/error_codes.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tools/hunt/export_remote.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tools/hunt/fp_rules.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tools/hunt/gains.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tools/hunt/gen_callfuzz.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tools/hunt/gen_cfz.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tools/hunt/gen_colfuzz.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tools/hunt/gen_datefuzz.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tools/hunt/gen_declfuzz.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tools/hunt/gen_dtc.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tools/hunt/gen_exprfuzz.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tools/hunt/gen_exprfuzz2.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tools/hunt/gen_flowfuzz.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tools/hunt/gen_flowfuzz2.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tools/hunt/gen_flowfuzz3.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tools/hunt/gen_gdfuzz.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tools/hunt/gen_rgfuzz.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tools/hunt/gen_shfuzz.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tools/hunt/gen_strfuzz.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tools/hunt/late_comments.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tools/hunt/leading_dot.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tools/hunt/merge_batches.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tools/hunt/oracle_run.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tools/hunt/post_issue.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tools/hunt/queue_oracle.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tools/hunt/real_all.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tools/hunt/real_errs_tally.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tools/hunt/recover_batch.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tools/hunt/regress.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tools/hunt/short_fn.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tools/hunt/short_lost.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tools/hunt/show_cases.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tools/hunt/show_span.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tools/hunt/split_cases.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tools/hunt/sweep6.sh +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tools/hunt/table3.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tools/hunt/wrapper_probe.mjs +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tools/oracle/build_combining_mark_probe.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tools/pin_analyzer.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tools/vendor_data.py +0 -0
- {pyvbaanalysis-3.0.0 → pyvbaanalysis-3.0.1}/tools/xlide_source.mjs +0 -0
|
@@ -29,9 +29,9 @@ pluggy==1.6.0 \
|
|
|
29
29
|
--hash=sha256:7dcc130b76258d33b90f61b658791dede3486c3e6bfb003ee5c9bfb396dd22f3 \
|
|
30
30
|
--hash=sha256:e920276dd6813095e9377c0bc5566d94c932c33b27a3e3945d8389c374dd4746
|
|
31
31
|
# via hatchling
|
|
32
|
-
pyopenvba==6.
|
|
33
|
-
--hash=sha256:
|
|
34
|
-
--hash=sha256:
|
|
32
|
+
pyopenvba==6.5.0 \
|
|
33
|
+
--hash=sha256:5151e147bf5723ea9dbe75a8670e19ef4e3295156b78a84fb01eab8dea16bb27 \
|
|
34
|
+
--hash=sha256:f83fbd2d5952bd05408bc4d123f0e0bf0b775f951cdce0913aecf306ba3fa7e5
|
|
35
35
|
# via -r fuzz.in
|
|
36
36
|
tomlkit==0.15.1 \
|
|
37
37
|
--hash=sha256:177a05aece5a8ca5266fd3c448abb47b8d352f09d477d3ca8332db4d89b24304 \
|
|
@@ -2,5 +2,5 @@
|
|
|
2
2
|
# Security workflow's dependency audit. Dependabot moves the pin daily (the
|
|
3
3
|
# owner's packages skip the cooldown), so the audit follows what PyPI serves.
|
|
4
4
|
# uv pip compile runtime.in --universal --generate-hashes --python-version 3.10 -o runtime.txt
|
|
5
|
-
pyopenvba==6.
|
|
5
|
+
pyopenvba==6.5.0
|
|
6
6
|
defusedxml==0.7.1
|
|
@@ -4,7 +4,7 @@ defusedxml==0.7.1 \
|
|
|
4
4
|
--hash=sha256:1bb3032db185915b62d7c6209c5a8792be6a32ab2fedacc84e01b52c51aa3e69 \
|
|
5
5
|
--hash=sha256:a352e7e428770286cc899e2542b6cdaedb2b4953ff269a210103ec58f6198a61
|
|
6
6
|
# via -r runtime.in
|
|
7
|
-
pyopenvba==6.
|
|
8
|
-
--hash=sha256:
|
|
9
|
-
--hash=sha256:
|
|
7
|
+
pyopenvba==6.5.0 \
|
|
8
|
+
--hash=sha256:5151e147bf5723ea9dbe75a8670e19ef4e3295156b78a84fb01eab8dea16bb27 \
|
|
9
|
+
--hash=sha256:f83fbd2d5952bd05408bc4d123f0e0bf0b775f951cdce0913aecf306ba3fa7e5
|
|
10
10
|
# via -r runtime.in
|
|
@@ -10,7 +10,14 @@
|
|
|
10
10
|
pytest==9.1.1
|
|
11
11
|
ruff==0.16.9
|
|
12
12
|
mypy==2.3.1
|
|
13
|
-
pyopenvba==6.
|
|
13
|
+
pyopenvba==6.5.0
|
|
14
14
|
defusedxml==0.7.1
|
|
15
15
|
hatchling==1.32.4
|
|
16
16
|
editables==0.6
|
|
17
|
+
# Keep cross-matrix dependencies explicit and unconditional: Dependabot's
|
|
18
|
+
# pip-compile resolves on modern Linux and otherwise drops the Python 3.10
|
|
19
|
+
# and Windows-only dependencies from this shared hash lock. Installing these
|
|
20
|
+
# small compatibility packages on every test runner keeps future updates safe.
|
|
21
|
+
colorama==0.4.6
|
|
22
|
+
exceptiongroup==1.3.1
|
|
23
|
+
tomli==2.4.1
|
|
@@ -59,10 +59,12 @@ ast-serialize==0.11.2 \
|
|
|
59
59
|
--hash=sha256:fd666cebd6ab3b3c0fd348a6202c26e18a401ee34293c3804d3472266bc146f6 \
|
|
60
60
|
--hash=sha256:feb16d9c2a720e0120c58dd5d6e7b3c7c86b43249b60a3bc212bcb8fa031e2dd
|
|
61
61
|
# via mypy
|
|
62
|
-
colorama==0.4.6
|
|
62
|
+
colorama==0.4.6 \
|
|
63
63
|
--hash=sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44 \
|
|
64
64
|
--hash=sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6
|
|
65
|
-
# via
|
|
65
|
+
# via
|
|
66
|
+
# -r test.in
|
|
67
|
+
# pytest
|
|
66
68
|
defusedxml==0.7.1 \
|
|
67
69
|
--hash=sha256:1bb3032db185915b62d7c6209c5a8792be6a32ab2fedacc84e01b52c51aa3e69 \
|
|
68
70
|
--hash=sha256:a352e7e428770286cc899e2542b6cdaedb2b4953ff269a210103ec58f6198a61
|
|
@@ -71,10 +73,12 @@ editables==0.6 \
|
|
|
71
73
|
--hash=sha256:1163834902381c4613787951c5914800fdf155ae08848a373b8ea5006780977c \
|
|
72
74
|
--hash=sha256:d70e4698078a1d033e7786d9c64e5be070d058a67c21417024d38a58ac20aa43
|
|
73
75
|
# via -r test.in
|
|
74
|
-
exceptiongroup==1.3.1
|
|
76
|
+
exceptiongroup==1.3.1 \
|
|
75
77
|
--hash=sha256:8b412432c6055b0b7d14c310000ae93352ed6754f70fa8f7c34141f91c4e3219 \
|
|
76
78
|
--hash=sha256:a7a39a3bd276781e98394987d3a5701d0c4edffb633bb7a5144577f82c773598
|
|
77
|
-
# via
|
|
79
|
+
# via
|
|
80
|
+
# -r test.in
|
|
81
|
+
# pytest
|
|
78
82
|
hatchling==1.32.4 \
|
|
79
83
|
--hash=sha256:08ecf7548fb48205e7f213d70c71e67b8271b7242093dc3f1da578b42c734a2c \
|
|
80
84
|
--hash=sha256:c4468f73144c054d2aab4ef0f0378c43b9878bf07f8ffd6b79690e970d375f07
|
|
@@ -302,9 +306,9 @@ pygments==2.21.0 \
|
|
|
302
306
|
--hash=sha256:2363c69b61c4a97c838da3b130dcd6468f4848992b21a82f2a63ec34377137d9 \
|
|
303
307
|
--hash=sha256:610ca751c9bc2492b38eb9a38a7fbc93edbbb2d7182edaf34e66ae493dee5c8c
|
|
304
308
|
# via pytest
|
|
305
|
-
pyopenvba==6.
|
|
306
|
-
--hash=sha256:
|
|
307
|
-
--hash=sha256:
|
|
309
|
+
pyopenvba==6.5.0 \
|
|
310
|
+
--hash=sha256:5151e147bf5723ea9dbe75a8670e19ef4e3295156b78a84fb01eab8dea16bb27 \
|
|
311
|
+
--hash=sha256:f83fbd2d5952bd05408bc4d123f0e0bf0b775f951cdce0913aecf306ba3fa7e5
|
|
308
312
|
# via -r test.in
|
|
309
313
|
pytest==9.1.1 \
|
|
310
314
|
--hash=sha256:1088fbde8f2b49d95a549a195707afa7a76a3ce9bcadc26b6d71f0ffda5fe313 \
|
|
@@ -330,7 +334,7 @@ ruff==0.16.9 \
|
|
|
330
334
|
--hash=sha256:d29c934357e45642fda2f34c0b1f4025b4a6c01e15e4bf0016879d60078a142c \
|
|
331
335
|
--hash=sha256:ed1a252039200f57a59eebc063b54beabea67bfbaaca0eeaa7f54b5fbcda2284
|
|
332
336
|
# via -r test.in
|
|
333
|
-
tomli==2.4.1
|
|
337
|
+
tomli==2.4.1 \
|
|
334
338
|
--hash=sha256:01f520d4f53ef97964a240a035ec2a869fe1a37dde002b57ebc4417a27ccd853 \
|
|
335
339
|
--hash=sha256:0d85819802132122da43cb86656f8d1f8c6587d54ae7dcaf30e90533028b49fe \
|
|
336
340
|
--hash=sha256:136443dbd7e1dee43c68ac2694fde36b2849865fa258d39bf822c10e8068eac5 \
|
|
@@ -379,6 +383,7 @@ tomli==2.4.1 ; python_full_version < '3.11' \
|
|
|
379
383
|
--hash=sha256:ff18e6a727ee0ab0388507b89d1bc6a22b138d1e2fa56d1ad494586d61d2eae9 \
|
|
380
384
|
--hash=sha256:ff2983983d34813c1aeb0fa89091e76c3a22889ee83ab27c5eeb45100560c049
|
|
381
385
|
# via
|
|
386
|
+
# -r test.in
|
|
382
387
|
# hatchling
|
|
383
388
|
# mypy
|
|
384
389
|
# pytest
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
{
|
|
2
2
|
"yara_forge": {
|
|
3
|
-
"release": "
|
|
3
|
+
"release": "20261004",
|
|
4
4
|
"asset": "yara-forge-rules-full.zip",
|
|
5
|
-
"url": "https://github.com/YARAHQ/yara-forge/releases/download/
|
|
6
|
-
"sha256": "
|
|
5
|
+
"url": "https://github.com/YARAHQ/yara-forge/releases/download/20261004/yara-forge-rules-full.zip",
|
|
6
|
+
"sha256": "809fe0c2e6c58dd9dc74afad0cdae21a1ed3bd5e68e539504d211dbf4d872f8d"
|
|
7
7
|
},
|
|
8
8
|
"yara_x": {
|
|
9
9
|
"release": "v1.20.0",
|
|
@@ -37,8 +37,8 @@ Usage, from the two jobs of update-yara-rules.yml:
|
|
|
37
37
|
nothing in DIR it cannot check: the proposal may change only the pin file,
|
|
38
38
|
only in the fields a move allows, from the commit the workflow ran on. It
|
|
39
39
|
commits through the GitHub API (no git credentials on disk), opens the pull
|
|
40
|
-
request
|
|
41
|
-
|
|
40
|
+
request with a GitHub App token, which triggers normal pull-request checks
|
|
41
|
+
without manual workflow approval. It turns
|
|
42
42
|
on auto-merge, so the pull request merges itself once those pass and stays
|
|
43
43
|
open if any fails. It never reopens a pull request someone closed, and never
|
|
44
44
|
overwrites a branch it did not just create.
|
|
@@ -62,7 +62,6 @@ SOURCES = {
|
|
|
62
62
|
"yara_forge": {"repo": "YARAHQ/yara-forge", "name": "YARA Forge", "cooldown_days": 0},
|
|
63
63
|
"yara_x": {"repo": "VirusTotal/yara-x", "name": "YARA-X", "cooldown_days": 7},
|
|
64
64
|
}
|
|
65
|
-
DISPATCH = ("ci.yml", "security.yml", "malware-scan.yml")
|
|
66
65
|
SHA256 = re.compile(r"[0-9a-f]{64}")
|
|
67
66
|
|
|
68
67
|
Api = Callable[..., Any]
|
|
@@ -178,8 +177,8 @@ def body(moved: list[str], new: dict[str, Any]) -> str:
|
|
|
178
177
|
for k, p in new.items()]
|
|
179
178
|
lines += ["",
|
|
180
179
|
"CI, Security and Malware scan run on this branch. If a new rule matches a file, the "
|
|
181
|
-
"Malware scan fails until the match is fixed or accepted with a reason.
|
|
182
|
-
"
|
|
180
|
+
"Malware scan fails until the match is fixed or accepted with a reason. Auto-merge "
|
|
181
|
+
"is enabled only subject to the repository's required checks and review rules."]
|
|
183
182
|
return "\n".join(lines) + "\n"
|
|
184
183
|
|
|
185
184
|
|
|
@@ -242,18 +241,8 @@ def propose(root: Path, inp: Path, repository: str, base_sha: str, api: Api = gh
|
|
|
242
241
|
pull = api(f"{base}/pulls", "POST", {
|
|
243
242
|
"title": expected_title, "head": branch, "base": "main",
|
|
244
243
|
"body": (inp / "body.md").read_text(encoding="utf-8")})
|
|
245
|
-
#
|
|
246
|
-
#
|
|
247
|
-
failed = []
|
|
248
|
-
for workflow in DISPATCH:
|
|
249
|
-
if (root / ".github" / "workflows" / workflow).exists():
|
|
250
|
-
try:
|
|
251
|
-
api(f"{base}/actions/workflows/{workflow}/dispatches", "POST", {"ref": branch})
|
|
252
|
-
except ApiError as exc:
|
|
253
|
-
failed.append(str(exc))
|
|
254
|
-
if failed:
|
|
255
|
-
raise ApiError(f"{pull['html_url']} is open, but these scans did not start:\n"
|
|
256
|
-
+ "\n".join(failed))
|
|
244
|
+
# The App-created PR triggers checks normally. Do not dispatch duplicate
|
|
245
|
+
# branch runs or restart the checks on a PR already awaiting review.
|
|
257
246
|
# It merges itself once CI, Security and Malware scan pass; a failing scan
|
|
258
247
|
# leaves it open. Without the "Allow auto-merge" setting it simply stays
|
|
259
248
|
# open for review, which is not a failure of this run.
|
|
@@ -9,8 +9,9 @@ name: Update YARA rules
|
|
|
9
9
|
# Two jobs, so the untrusted release metadata is only ever read without write
|
|
10
10
|
# access: `prepare` works out the move with a read-only token, `propose` checks
|
|
11
11
|
# the proposal against the pin file on main and commits it through the GitHub
|
|
12
|
-
# API
|
|
13
|
-
#
|
|
12
|
+
# API with a repository-scoped GitHub App token, so PR checks run without a
|
|
13
|
+
# manual approval prompt. No checkout keeps credentials. See YARA_APP.md in
|
|
14
|
+
# repo-standards for registration and secret provisioning.
|
|
14
15
|
|
|
15
16
|
on:
|
|
16
17
|
schedule:
|
|
@@ -62,9 +63,7 @@ jobs:
|
|
|
62
63
|
runs-on: ubuntu-24.04
|
|
63
64
|
timeout-minutes: 10
|
|
64
65
|
permissions:
|
|
65
|
-
contents:
|
|
66
|
-
pull-requests: write # the pull request
|
|
67
|
-
actions: write # starting CI, Security and Malware scan on the branch
|
|
66
|
+
contents: read
|
|
68
67
|
steps:
|
|
69
68
|
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
|
70
69
|
with:
|
|
@@ -79,7 +78,16 @@ jobs:
|
|
|
79
78
|
name: yara-proposal
|
|
80
79
|
path: ${{ runner.temp }}/proposal
|
|
81
80
|
|
|
81
|
+
- name: Create a token for this repository
|
|
82
|
+
id: app-token
|
|
83
|
+
uses: actions/create-github-app-token@bcd2ba49218906704ab6c1aa796996da409d3eb1 # v3.2.0
|
|
84
|
+
with:
|
|
85
|
+
client-id: ${{ vars.YARA_APP_CLIENT_ID }}
|
|
86
|
+
private-key: ${{ secrets.YARA_APP_PRIVATE_KEY }}
|
|
87
|
+
permission-contents: write
|
|
88
|
+
permission-pull-requests: write
|
|
89
|
+
|
|
82
90
|
- name: Propose the update
|
|
83
91
|
env:
|
|
84
|
-
GH_TOKEN: ${{
|
|
92
|
+
GH_TOKEN: ${{ steps.app-token.outputs.token }}
|
|
85
93
|
run: python .github/security/yara_update.py propose --in "$RUNNER_TEMP/proposal"
|
|
@@ -5,6 +5,21 @@ All notable changes to pyVBAanalysis are recorded here. The format follows
|
|
|
5
5
|
follow [Semantic Versioning](https://semver.org/spec/v2.0.0.html): a minor version
|
|
6
6
|
per milestone.
|
|
7
7
|
|
|
8
|
+
## 3.0.1 - 2026-10-06
|
|
9
|
+
|
|
10
|
+
Sync the analyzer and evidence data to XLIDE 11.1.0 (commit 8f64c2c).
|
|
11
|
+
|
|
12
|
+
* Correct module-owned DefType defaults, indexed Property Let/Set contracts,
|
|
13
|
+
array setter values, enum storage types and bracketed source member names.
|
|
14
|
+
* Check read-only Excel Range values and scalar host setter assignments.
|
|
15
|
+
* Stop inferring runtime bounds from saved sheets, UserForm designer contents,
|
|
16
|
+
new Word documents or PowerPoint slide counts. Forget mutable state after
|
|
17
|
+
calls, aliases and error handlers that make a failure uncertain.
|
|
18
|
+
* Add the upstream Scripting and VBScript RegExp reference models and preserve
|
|
19
|
+
the library that owns an Office or DAO enum.
|
|
20
|
+
* Add the upstream `errors_only` analysis option and save differing replay
|
|
21
|
+
inputs so a failed differential can be rerun directly.
|
|
22
|
+
|
|
8
23
|
## 3.0.0 - 2026-10-04
|
|
9
24
|
|
|
10
25
|
Sync to XLIDE 11.0.0 (commit 751fdb2). This major release includes the
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: pyvbaanalysis
|
|
3
|
-
Version: 3.0.
|
|
3
|
+
Version: 3.0.1
|
|
4
4
|
Summary: Pure-Python static analysis for Excel VBA
|
|
5
5
|
Project-URL: Homepage, https://github.com/WilliamSmithEdward/pyVBAanalysis
|
|
6
6
|
Project-URL: Repository, https://github.com/WilliamSmithEdward/pyVBAanalysis
|
|
@@ -62,6 +62,9 @@ from ..symbols.symbol_model import (
|
|
|
62
62
|
VbaProjectClassMemberDefinition,
|
|
63
63
|
VbaProjectClassMembers,
|
|
64
64
|
VbaSymbolAttribute,
|
|
65
|
+
VbaProcedureParam,
|
|
66
|
+
VbaSymbol,
|
|
67
|
+
VbaSymbolKind,
|
|
65
68
|
is_access_designer_class,
|
|
66
69
|
)
|
|
67
70
|
from ..types.type_names import is_known_scalar_type, normalize_type
|
|
@@ -92,6 +95,7 @@ class MemberCompletionContext:
|
|
|
92
95
|
me_project_type: str | None = None
|
|
93
96
|
# Source-declared workbook object members and visible UDT fields, keyed by type.
|
|
94
97
|
project_class_members: Sequence[VbaProjectClassMembers] | None = None
|
|
98
|
+
project_symbols: Sequence[VbaSymbol] | None = None
|
|
95
99
|
# True/default lets generic Object/Variant receivers narrow from preceding
|
|
96
100
|
# simple Set assignments. Hard diagnostics disable this because VBA still
|
|
97
101
|
# compile-binds those receivers late.
|
|
@@ -131,6 +135,8 @@ class MemberCompletionEntry:
|
|
|
131
135
|
returns: str | None = None
|
|
132
136
|
writable: bool | None = None
|
|
133
137
|
write_type: str | None = None
|
|
138
|
+
write_is_array: bool | None = None
|
|
139
|
+
procedure_params: dict[str, list[VbaProcedureParam]] | None = None
|
|
134
140
|
# The verified call signature, when the source or the host metadata has one.
|
|
135
141
|
signature: str | None = None
|
|
136
142
|
# The setters a project property declares (XLIDE issue #107); None for host
|
|
@@ -322,8 +328,8 @@ def _member_surface_at_dot(
|
|
|
322
328
|
return None
|
|
323
329
|
i = len(tokens) - 1
|
|
324
330
|
typed_prefix = ""
|
|
325
|
-
if is_ident_like(tokens[i]) and i > 0 and tokens[i - 1].raw_text == ".":
|
|
326
|
-
typed_prefix = tokens[i].raw_text
|
|
331
|
+
if (is_ident_like(tokens[i]) or tokens[i].kind is TokenKind.BRACKETED_IDENTIFIER) and i > 0 and tokens[i - 1].raw_text == ".":
|
|
332
|
+
typed_prefix = tokens[i].raw_text[1:].removesuffix("]") if tokens[i].kind is TokenKind.BRACKETED_IDENTIFIER else tokens[i].raw_text
|
|
327
333
|
i -= 1
|
|
328
334
|
if i < 0 or tokens[i].raw_text != ".":
|
|
329
335
|
return None
|
|
@@ -556,7 +562,7 @@ def resolve_receiver_type_at(
|
|
|
556
562
|
if len(tokens) == 0:
|
|
557
563
|
return None
|
|
558
564
|
i = len(tokens) - 1
|
|
559
|
-
if is_ident_like(tokens[i]) and i > 0 and tokens[i - 1].raw_text == ".":
|
|
565
|
+
if (is_ident_like(tokens[i]) or tokens[i].kind is TokenKind.BRACKETED_IDENTIFIER) and i > 0 and tokens[i - 1].raw_text == ".":
|
|
560
566
|
i -= 1
|
|
561
567
|
if i < 0 or tokens[i].raw_text != ".":
|
|
562
568
|
return None
|
|
@@ -1485,6 +1491,8 @@ def _project_member_entries(
|
|
|
1485
1491
|
returns=m.returns,
|
|
1486
1492
|
writable=m.writable,
|
|
1487
1493
|
write_type=m.write_type,
|
|
1494
|
+
write_is_array=m.write_is_array,
|
|
1495
|
+
procedure_params=m.procedure_params,
|
|
1488
1496
|
signature=m.signature,
|
|
1489
1497
|
let_accessor=m.let_accessor,
|
|
1490
1498
|
set_accessor=m.set_accessor,
|
|
@@ -1946,7 +1954,28 @@ def _find_declared_binding(
|
|
|
1946
1954
|
|
|
1947
1955
|
bindings = _module_bindings(module)
|
|
1948
1956
|
variable = bindings.variables.get(lower)
|
|
1949
|
-
|
|
1957
|
+
if variable is not None:
|
|
1958
|
+
return variable
|
|
1959
|
+
procedure = bindings.procedures.get(lower)
|
|
1960
|
+
return procedure if procedure is not None else _exported_module_binding(ctx, lower)
|
|
1961
|
+
|
|
1962
|
+
|
|
1963
|
+
def _exported_module_binding(ctx: MemberCompletionContext, lower: str) -> _DeclaredBinding | None:
|
|
1964
|
+
from ..symbols.name_resolution import _project_symbols_named
|
|
1965
|
+
kinds = (VbaSymbolKind.FUNCTION, VbaSymbolKind.SUB, VbaSymbolKind.PROPERTY_GET, VbaSymbolKind.PROPERTY_LET, VbaSymbolKind.PROPERTY_SET, VbaSymbolKind.MODULE_VARIABLE, VbaSymbolKind.CONSTANT, VbaSymbolKind.ENUM_MEMBER)
|
|
1966
|
+
symbols = [symbol for symbol in _project_symbols_named(ctx.project_symbols or (), lower) if symbol.kind in kinds]
|
|
1967
|
+
if not symbols:
|
|
1968
|
+
return None
|
|
1969
|
+
if len({symbol.module_name.lower() for symbol in symbols}) > 1:
|
|
1970
|
+
return _DeclaredBinding(as_type=None)
|
|
1971
|
+
readable = next((symbol for symbol in symbols if symbol.kind in (VbaSymbolKind.FUNCTION, VbaSymbolKind.PROPERTY_GET, VbaSymbolKind.MODULE_VARIABLE, VbaSymbolKind.CONSTANT, VbaSymbolKind.ENUM_MEMBER)), None)
|
|
1972
|
+
if readable is None:
|
|
1973
|
+
return _DeclaredBinding(as_type=None)
|
|
1974
|
+
if readable.as_type:
|
|
1975
|
+
return _DeclaredBinding(as_type=readable.as_type)
|
|
1976
|
+
surface = _project_class_members_by_name(ctx).get(readable.module_name.lower())
|
|
1977
|
+
member = _project_member_by_name(surface, readable.name)
|
|
1978
|
+
return _DeclaredBinding(as_type=member.returns if member else None)
|
|
1950
1979
|
|
|
1951
1980
|
|
|
1952
1981
|
# Receiver lookups run once per dotted reference, and every member call a rule
|