From f934b2bdba905b86f8b57a471dc1ef9c1dcd1c49 Mon Sep 17 00:00:00 2001 From: Denis Zubarev Date: Fri, 4 Sep 2026 17:45:02 +0300 Subject: [PATCH 1/5] add missing standard and project includes across compiler --- common/tl/compiler/tl-parser-new.cpp | 4 +++- compiler/code-gen/code-gen-task.cpp | 8 ++++++++ compiler/code-gen/code-gen-task.h | 11 +++++++++-- compiler/code-gen/code-generator.cpp | 7 +++++++ compiler/code-gen/code-generator.h | 7 +++++++ compiler/code-gen/files/function-header.cpp | 9 +++++++++ compiler/code-gen/files/function-header.h | 2 ++ compiler/code-gen/files/function-source.cpp | 9 +++++++++ compiler/code-gen/files/function-source.h | 2 ++ .../files/global-vars-memory-stats.cpp | 14 ++++++++++++++ .../code-gen/files/global-vars-memory-stats.h | 4 ++++ compiler/code-gen/files/init-scripts.cpp | 11 +++++++++++ compiler/code-gen/files/init-scripts.h | 2 ++ compiler/code-gen/files/lib-header.cpp | 7 +++++++ compiler/code-gen/files/lib-header.h | 5 +++++ compiler/code-gen/files/shape-keys.cpp | 2 ++ compiler/code-gen/files/shape-keys.h | 4 +++- .../code-gen/files/tl2cpp/tl-constructor.cpp | 9 +++++++++ .../code-gen/files/tl2cpp/tl-constructor.h | 5 +++++ compiler/code-gen/files/tl2cpp/tl-module.cpp | 9 +++++++++ compiler/code-gen/files/tl2cpp/tl-module.h | 8 ++++++++ compiler/code-gen/includes.cpp | 16 ++++++++++++++++ compiler/code-gen/includes.h | 10 ++++++++++ compiler/cpp-dest-dir-initializer.cpp | 8 ++++++++ compiler/cpp-dest-dir-initializer.h | 2 ++ compiler/data/define-data.cpp | 4 ++++ compiler/data/define-data.h | 5 ++++- compiler/data/ffi-data.cpp | 8 ++++++++ compiler/data/ffi-data.h | 19 +++++++++++++++++++ compiler/data/lib-data.cpp | 4 ++++ compiler/data/performance-inspections.cpp | 6 ++++++ compiler/data/performance-inspections.h | 4 ++++ compiler/data/src-dir.cpp | 4 ++++ compiler/data/var-data.cpp | 3 +++ compiler/data/var-data.h | 6 ++++++ compiler/ffi/c_parser/parsing_driver.cpp | 13 +++++++++---- compiler/ffi/c_parser/parsing_driver.h | 13 ++++++++++--- compiler/ffi/ffi_parser.cpp | 8 ++++++-- compiler/ffi/ffi_parser.h | 4 ++++ compiler/ffi/ffi_types.h | 1 + compiler/function-colors.cpp | 3 +++ compiler/function-colors.h | 5 +++++ compiler/inferring/multi-key.cpp | 1 + compiler/inferring/multi-key.h | 2 ++ compiler/inferring/node.cpp | 3 +++ compiler/inferring/node.h | 3 +++ compiler/inferring/primitive-type.cpp | 4 +++- compiler/inferring/public.cpp | 10 ++++++++++ compiler/inferring/public.h | 2 ++ .../inferring/restriction-match-phpdoc.cpp | 10 +++++++++- compiler/inferring/restriction-match-phpdoc.h | 4 ++++ compiler/inferring/restriction-non-void.cpp | 3 +++ compiler/inferring/restriction-non-void.h | 3 +++ compiler/inferring/type-inferer.cpp | 11 +++++++++++ compiler/inferring/type-inferer.h | 3 +++ compiler/inferring/type-node.h | 5 +++++ compiler/operation.cpp | 4 ++++ compiler/operation.h | 3 ++- compiler/pipes/calc-locations.cpp | 9 +++++++++ compiler/pipes/calc-locations.h | 2 ++ compiler/pipes/calc-val-ref.cpp | 5 +++++ compiler/pipes/calc-val-ref.h | 5 +++++ compiler/pipes/collect-forkable-types.cpp | 10 ++++++++++ compiler/pipes/collect-forkable-types.h | 7 +++++++ compiler/pipes/erase-defines-declarations.cpp | 6 ++++++ compiler/pipes/erase-defines-declarations.h | 5 +++++ compiler/pipes/file-to-tokens.cpp | 5 +++++ compiler/pipes/file-to-tokens.h | 7 +++++++ compiler/pipes/inline-simple-functions.cpp | 8 ++++++++ compiler/pipes/inline-simple-functions.h | 5 +++++ compiler/pipes/load-files.cpp | 4 ++++ compiler/pipes/load-files.h | 3 +++ compiler/pipes/parse.cpp | 6 ++++++ compiler/pipes/parse.h | 7 +++++++ compiler/pipes/register-defines.cpp | 6 ++++++ compiler/pipes/register-defines.h | 5 +++++ compiler/pipes/type-inferer.cpp | 11 ++++++++++- compiler/pipes/type-inferer.h | 6 ++++++ compiler/pipes/wait-for-all-classes.cpp | 10 +++++++++- compiler/pipes/wait-for-all-classes.h | 7 +++++++ compiler/scheduler/one-thread-scheduler.cpp | 2 ++ compiler/scheduler/one-thread-scheduler.h | 4 +++- compiler/scheduler/scheduler.cpp | 8 ++++++++ compiler/scheduler/scheduler.h | 5 ++++- compiler/stats.cpp | 6 +++++- compiler/stats.h | 6 ++++++ compiler/type-hint.cpp | 13 ++++++++++++- compiler/type-hint.h | 8 ++++++++ compiler/utils/string-utils.cpp | 3 +++ compiler/utils/string-utils.h | 5 +++++ tests/cpp/compiler/_compiler-tests-env.cpp | 6 ++++++ .../data/performance-inspections-test.cpp | 6 ++++++ tests/cpp/compiler/ffi-parser-test.cpp | 17 +++++++++++++++-- tests/cpp/compiler/lexer-test.cpp | 11 ++++++++++- tests/cpp/compiler/phpdoc-test.cpp | 6 ++++++ tests/cpp/compiler/typedata-test.cpp | 7 +++++++ .../cpp/compiler/utils/string-utils-test.cpp | 4 ++++ 97 files changed, 586 insertions(+), 26 deletions(-) diff --git a/common/tl/compiler/tl-parser-new.cpp b/common/tl/compiler/tl-parser-new.cpp index 46b214a3c6..a4cf43e53e 100644 --- a/common/tl/compiler/tl-parser-new.cpp +++ b/common/tl/compiler/tl-parser-new.cpp @@ -5,6 +5,7 @@ #include "common/tl/compiler/tl-parser-new.h" #include +#include #include #include #include @@ -13,10 +14,11 @@ #include #include #include +#include #include +#include #include "common/c-tree.h" - #include "common/crc32.h" #include "common/kprintf.h" #include "common/tl/compiler/tl-tl.h" diff --git a/compiler/code-gen/code-gen-task.cpp b/compiler/code-gen/code-gen-task.cpp index d635405895..ece60baaf4 100644 --- a/compiler/code-gen/code-gen-task.cpp +++ b/compiler/code-gen/code-gen-task.cpp @@ -3,7 +3,15 @@ // Distributed under the GPL v3 License, see LICENSE.notice.txt #include "compiler/code-gen/code-gen-task.h" + +#include + #include "compiler/code-gen/code-gen-root-cmd.h" +#include "compiler/stage.h" +#include "compiler/threading/data-stream.h" +#include "compiler/threading/profiler.h" + +class WriterData; // this os exists to be passed to CodeGenerator constructor, // but it won't be used actually, as CodeGenerator is not created in "just calc hashes" mode diff --git a/compiler/code-gen/code-gen-task.h b/compiler/code-gen/code-gen-task.h index 2e630ac852..163db023c0 100644 --- a/compiler/code-gen/code-gen-task.h +++ b/compiler/code-gen/code-gen-task.h @@ -4,14 +4,21 @@ #pragma once +#include +#include + +#include "compiler/code-gen/code-gen-root-cmd.h" #include "compiler/code-gen/code-generator.h" +#include "compiler/scheduler/scheduler-base.h" #include "compiler/scheduler/task.h" #include "compiler/stage.h" #include "compiler/threading/profiler.h" -ProfilerRaw& get_code_gen_profiler(); +class ProfilerRaw; +template +class DataStream; -struct CodeGenRootCmd; +ProfilerRaw& get_code_gen_profiler(); class CodeGenSchedulerTask : public Task { CodeGenerator W; diff --git a/compiler/code-gen/code-generator.cpp b/compiler/code-gen/code-generator.cpp index 6915fdeb1c..bffa1eaef9 100644 --- a/compiler/code-gen/code-generator.cpp +++ b/compiler/code-gen/code-generator.cpp @@ -3,8 +3,15 @@ // Distributed under the GPL v3 License, see LICENSE.notice.txt #include "compiler/code-gen/code-generator.h" + +#include +#include + #include "compiler/compiler-core.h" #include "compiler/data/src-file.h" +#include "compiler/index.h" +#include "compiler/kphp_assert.h" +#include "compiler/threading/data-stream.h" void CodeGenerator::open_file_create_writer(bool compile_with_debug_info_flag, bool compile_with_crc, const std::string& file_name, const std::string& subdir) { std::string full_file_name = G->cpp_dir; diff --git a/compiler/code-gen/code-generator.h b/compiler/code-gen/code-generator.h index be719305a6..466263f7d1 100644 --- a/compiler/code-gen/code-generator.h +++ b/compiler/code-gen/code-generator.h @@ -3,7 +3,10 @@ // Distributed under the GPL v3 License, see LICENSE.notice.txt #pragma once + +#include #include +#include #include #include "common/algorithms/simd-int-to-string.h" @@ -14,7 +17,11 @@ #include "compiler/inferring/type-data.h" #include "compiler/threading/data-stream.h" +class TypeData; +template +class DataStream; struct CGContext { + std::vector catch_labels; std::vector catch_label_used; FunctionPtr parent_func; diff --git a/compiler/code-gen/files/function-header.cpp b/compiler/code-gen/files/function-header.cpp index 7076503ccb..93f68d70a4 100644 --- a/compiler/code-gen/files/function-header.cpp +++ b/compiler/code-gen/files/function-header.cpp @@ -4,6 +4,12 @@ #include "compiler/code-gen/files/function-header.h" +#include +#include +#include +#include + +#include "compiler/code-gen/code-generator.h" #include "compiler/code-gen/common.h" #include "compiler/code-gen/const-globals-batched-mem.h" #include "compiler/code-gen/declarations.h" @@ -11,7 +17,10 @@ #include "compiler/code-gen/includes.h" #include "compiler/code-gen/namespace.h" #include "compiler/code-gen/vertex-compiler.h" +#include "compiler/compiler-core.h" +#include "compiler/compiler-settings.h" #include "compiler/data/function-data.h" +#include "compiler/stage.h" FunctionH::FunctionH(FunctionPtr function) : function(function) {} diff --git a/compiler/code-gen/files/function-header.h b/compiler/code-gen/files/function-header.h index 2a2ef35614..5e06c249f8 100644 --- a/compiler/code-gen/files/function-header.h +++ b/compiler/code-gen/files/function-header.h @@ -8,7 +8,9 @@ #include "compiler/code-gen/code-generator.h" #include "compiler/data/data_ptr.h" +class CodeGenerator; struct FunctionH : CodeGenRootCmd { + FunctionPtr function; explicit FunctionH(FunctionPtr function); void compile(CodeGenerator& W) const final; diff --git a/compiler/code-gen/files/function-source.cpp b/compiler/code-gen/files/function-source.cpp index e13f76116d..0bbeaaaa33 100644 --- a/compiler/code-gen/files/function-source.cpp +++ b/compiler/code-gen/files/function-source.cpp @@ -4,6 +4,12 @@ #include "compiler/code-gen/files/function-source.h" +#include +#include +#include +#include + +#include "compiler/code-gen/code-generator.h" #include "compiler/code-gen/common.h" #include "compiler/code-gen/const-globals-batched-mem.h" #include "compiler/code-gen/declarations.h" @@ -11,6 +17,9 @@ #include "compiler/code-gen/namespace.h" #include "compiler/code-gen/naming.h" #include "compiler/code-gen/vertex-compiler.h" +#include "compiler/compiler-core.h" +#include "compiler/compiler-settings.h" +#include "compiler/data/function-data.h" #include "compiler/stage.h" FunctionCpp::FunctionCpp(FunctionPtr function) diff --git a/compiler/code-gen/files/function-source.h b/compiler/code-gen/files/function-source.h index a1f39db48a..7f5bca136b 100644 --- a/compiler/code-gen/files/function-source.h +++ b/compiler/code-gen/files/function-source.h @@ -8,7 +8,9 @@ #include "compiler/code-gen/code-generator.h" #include "compiler/data/data_ptr.h" +class CodeGenerator; struct FunctionCpp : CodeGenRootCmd { + FunctionPtr function; explicit FunctionCpp(FunctionPtr function); void compile(CodeGenerator& W) const final; diff --git a/compiler/code-gen/files/global-vars-memory-stats.cpp b/compiler/code-gen/files/global-vars-memory-stats.cpp index f5fb8022ff..82b522eff5 100644 --- a/compiler/code-gen/files/global-vars-memory-stats.cpp +++ b/compiler/code-gen/files/global-vars-memory-stats.cpp @@ -4,14 +4,28 @@ #include "compiler/code-gen/files/global-vars-memory-stats.h" +#include +#include +#include +#include + +#include "common/algorithms/find.h" +#include "compiler/code-gen/code-generator.h" #include "compiler/code-gen/common.h" #include "compiler/code-gen/const-globals-batched-mem.h" #include "compiler/code-gen/declarations.h" #include "compiler/code-gen/includes.h" #include "compiler/code-gen/namespace.h" +#include "compiler/code-gen/naming.h" #include "compiler/code-gen/raw-data.h" +#include "compiler/compiler-core.h" +#include "compiler/compiler-settings.h" +#include "compiler/data/function-data.h" #include "compiler/data/src-file.h" +#include "compiler/data/var-data.h" +#include "compiler/inferring/primitive-type.h" #include "compiler/inferring/public.h" +#include "compiler/inferring/type-data.h" GlobalVarsMemoryStats::GlobalVarsMemoryStats(const std::vector& all_globals) { for (VarPtr global_var : all_globals) { diff --git a/compiler/code-gen/files/global-vars-memory-stats.h b/compiler/code-gen/files/global-vars-memory-stats.h index 16b6ea2ba3..a42aeef01e 100644 --- a/compiler/code-gen/files/global-vars-memory-stats.h +++ b/compiler/code-gen/files/global-vars-memory-stats.h @@ -4,11 +4,15 @@ #pragma once +#include + #include "compiler/code-gen/code-gen-root-cmd.h" #include "compiler/code-gen/code-generator.h" #include "compiler/data/data_ptr.h" +class CodeGenerator; struct GlobalVarsMemoryStats : CodeGenRootCmd { + explicit GlobalVarsMemoryStats(const std::vector& all_globals); void compile(CodeGenerator& W) const final; diff --git a/compiler/code-gen/files/init-scripts.cpp b/compiler/code-gen/files/init-scripts.cpp index 9537f3c602..ba192d4728 100644 --- a/compiler/code-gen/files/init-scripts.cpp +++ b/compiler/code-gen/files/init-scripts.cpp @@ -6,21 +6,32 @@ #include #include +#include +#include #include +#include #include "common/algorithms/string-algorithms.h" +#include "compiler/code-gen/code-generator.h" #include "compiler/code-gen/common.h" #include "compiler/code-gen/const-globals-batched-mem.h" #include "compiler/code-gen/declarations.h" #include "compiler/code-gen/files/shape-keys.h" +#include "compiler/code-gen/gen-out-style.h" #include "compiler/code-gen/includes.h" #include "compiler/code-gen/namespace.h" #include "compiler/code-gen/naming.h" #include "compiler/code-gen/raw-data.h" +#include "compiler/compiler-core.h" +#include "compiler/compiler-settings.h" +#include "compiler/data/ffi-data.h" +#include "compiler/data/function-data.h" #include "compiler/data/lib-data.h" #include "compiler/data/src-file.h" +#include "compiler/kphp_assert.h" struct StaticInit { + void compile(CodeGenerator& W) const; }; diff --git a/compiler/code-gen/files/init-scripts.h b/compiler/code-gen/files/init-scripts.h index 0258c33bed..9e2661a681 100644 --- a/compiler/code-gen/files/init-scripts.h +++ b/compiler/code-gen/files/init-scripts.h @@ -10,7 +10,9 @@ #include "compiler/code-gen/code-generator.h" #include "compiler/data/data_ptr.h" +class CodeGenerator; struct InitScriptsCpp : CodeGenRootCmd { + SrcFilePtr main_file_id; explicit InitScriptsCpp(SrcFilePtr main_file_id); void compile(CodeGenerator& W) const final; diff --git a/compiler/code-gen/files/lib-header.cpp b/compiler/code-gen/files/lib-header.cpp index 630bec32ae..ce5a9ac767 100644 --- a/compiler/code-gen/files/lib-header.cpp +++ b/compiler/code-gen/files/lib-header.cpp @@ -4,12 +4,19 @@ #include "compiler/code-gen/files/lib-header.h" +#include +#include + +#include "compiler/code-gen/code-generator.h" #include "compiler/code-gen/common.h" #include "compiler/code-gen/declarations.h" #include "compiler/code-gen/gen-out-style.h" #include "compiler/code-gen/includes.h" #include "compiler/code-gen/namespace.h" +#include "compiler/code-gen/naming.h" #include "compiler/compiler-core.h" +#include "compiler/compiler-settings.h" +#include "compiler/data/function-data.h" #include "compiler/data/lib-data.h" void StaticLibraryRunGlobalHeaderH::compile(CodeGenerator& W) const { diff --git a/compiler/code-gen/files/lib-header.h b/compiler/code-gen/files/lib-header.h index c25c4c8c86..8b6694f444 100644 --- a/compiler/code-gen/files/lib-header.h +++ b/compiler/code-gen/files/lib-header.h @@ -4,10 +4,15 @@ #pragma once +#include + #include "compiler/code-gen/code-gen-root-cmd.h" #include "compiler/code-gen/code-generator.h" +#include "compiler/data/data_ptr.h" +class CodeGenerator; struct StaticLibraryRunGlobalHeaderH : CodeGenRootCmd { + void compile(CodeGenerator& W) const final; }; diff --git a/compiler/code-gen/files/shape-keys.cpp b/compiler/code-gen/files/shape-keys.cpp index f0450b1a40..f2f7e09be0 100644 --- a/compiler/code-gen/files/shape-keys.cpp +++ b/compiler/code-gen/files/shape-keys.cpp @@ -5,12 +5,14 @@ #include "compiler/code-gen/files/shape-keys.h" #include +#include #include "compiler/code-gen/code-generator.h" #include "compiler/code-gen/common.h" #include "compiler/code-gen/includes.h" #include "compiler/code-gen/naming.h" #include "compiler/compiler-core.h" +#include "compiler/compiler-settings.h" std::string ShapeKeys::get_function_name() noexcept { return "init_shape_demangler"; diff --git a/compiler/code-gen/files/shape-keys.h b/compiler/code-gen/files/shape-keys.h index 31c098e84c..e2c6598230 100644 --- a/compiler/code-gen/files/shape-keys.h +++ b/compiler/code-gen/files/shape-keys.h @@ -5,13 +5,15 @@ #pragma once #include +#include #include +#include #include "compiler/code-gen/code-gen-root-cmd.h" class CodeGenerator; - struct ShapeKeys : CodeGenRootCmd { + explicit ShapeKeys(std::map shape_keys_storage) noexcept : shape_keys_storage_(std::move(shape_keys_storage)) {} diff --git a/compiler/code-gen/files/tl2cpp/tl-constructor.cpp b/compiler/code-gen/files/tl2cpp/tl-constructor.cpp index 5d72378d23..5f40edb764 100644 --- a/compiler/code-gen/files/tl2cpp/tl-constructor.cpp +++ b/compiler/code-gen/files/tl2cpp/tl-constructor.cpp @@ -4,9 +4,18 @@ #include "compiler/code-gen/files/tl2cpp/tl-constructor.h" +#include +#include + +#include "common/algorithms/string-algorithms.h" +#include "common/functional/identity.h" +#include "common/tlo-parsing/tl-objects.h" +#include "compiler/code-gen/code-generator.h" +#include "compiler/code-gen/common.h" #include "compiler/code-gen/files/tl2cpp/tl-combinator.h" #include "compiler/code-gen/files/tl2cpp/tl-template-php-type-helpers.h" #include "compiler/code-gen/naming.h" +#include "compiler/compiler-core.h" namespace tl2cpp { const vk::tlo_parsing::combinator* constructor; diff --git a/compiler/code-gen/files/tl2cpp/tl-constructor.h b/compiler/code-gen/files/tl2cpp/tl-constructor.h index 5acb931ebb..9f4cf7653b 100644 --- a/compiler/code-gen/files/tl2cpp/tl-constructor.h +++ b/compiler/code-gen/files/tl2cpp/tl-constructor.h @@ -4,8 +4,13 @@ #pragma once +#include +#include + #include "compiler/code-gen/files/tl2cpp/tl2cpp-utils.h" +class CodeGenerator; + namespace tl2cpp { struct TlConstructorDecl { const vk::tlo_parsing::combinator* constructor; diff --git a/compiler/code-gen/files/tl2cpp/tl-module.cpp b/compiler/code-gen/files/tl2cpp/tl-module.cpp index e8276a8abc..a3661f9490 100644 --- a/compiler/code-gen/files/tl2cpp/tl-module.cpp +++ b/compiler/code-gen/files/tl2cpp/tl-module.cpp @@ -4,9 +4,18 @@ #include "compiler/code-gen/files/tl2cpp/tl-module.h" +#include + +#include "compiler/code-gen/code-generator.h" +#include "compiler/code-gen/common.h" #include "compiler/code-gen/files/tl2cpp/tl-constructor.h" #include "compiler/code-gen/files/tl2cpp/tl-function.h" #include "compiler/code-gen/files/tl2cpp/tl-type.h" +#include "compiler/code-gen/files/tl2cpp/tl2cpp-utils.h" +#include "compiler/compiler-core.h" +#include "compiler/compiler-settings.h" +#include "compiler/data/data_ptr.h" +#include "compiler/kphp_assert.h" namespace tl2cpp { std::unordered_map modules; diff --git a/compiler/code-gen/files/tl2cpp/tl-module.h b/compiler/code-gen/files/tl2cpp/tl-module.h index eed2390050..183c885e6b 100644 --- a/compiler/code-gen/files/tl2cpp/tl-module.h +++ b/compiler/code-gen/files/tl2cpp/tl-module.h @@ -4,11 +4,19 @@ #pragma once +#include +#include #include +#include +#include +#include +#include "common/tlo-parsing/tl-objects.h" #include "compiler/code-gen/files/tl2cpp/tl2cpp-utils.h" #include "compiler/code-gen/includes.h" +class CodeGenerator; + namespace tl2cpp { class Module; diff --git a/compiler/code-gen/includes.cpp b/compiler/code-gen/includes.cpp index c17b1cadc8..985c9cba3e 100644 --- a/compiler/code-gen/includes.cpp +++ b/compiler/code-gen/includes.cpp @@ -4,12 +4,28 @@ #include "compiler/code-gen/includes.h" +#include +#include +#include +#include + +#include "auto/compiler/vertex/vertex-op_func_call.h" +#include "auto/compiler/vertex/vertex-op_var.h" +#include "auto/compiler/vertex/vertex-types.h" +#include "compiler/code-gen/code-generator.h" #include "compiler/code-gen/common.h" #include "compiler/code-gen/declarations.h" #include "compiler/code-gen/namespace.h" +#include "compiler/compiler-core.h" +#include "compiler/compiler-settings.h" #include "compiler/data/class-data.h" +#include "compiler/data/ffi-data.h" #include "compiler/data/function-data.h" #include "compiler/data/var-data.h" +#include "compiler/inferring/type-data.h" +#include "compiler/inferring/var-node.h" +#include "compiler/kphp_assert.h" +#include "compiler/vertex-meta_op_base.h" ExternInclude::ExternInclude(vk::string_view file_name) : file_name(file_name) { diff --git a/compiler/code-gen/includes.h b/compiler/code-gen/includes.h index 92c4b9b53d..7ceafc099f 100644 --- a/compiler/code-gen/includes.h +++ b/compiler/code-gen/includes.h @@ -4,11 +4,21 @@ #pragma once +#include +#include +#include +#include +#include + #include "compiler/code-gen/code-generator.h" +#include "compiler/data/data_ptr.h" #include "compiler/data/vertex-adaptor.h" #include "compiler/inferring/type-data.h" +class CodeGenerator; +class TypeData; struct ExternInclude { + explicit ExternInclude(vk::string_view file_name); void compile(CodeGenerator& W) const; diff --git a/compiler/cpp-dest-dir-initializer.cpp b/compiler/cpp-dest-dir-initializer.cpp index 029f451327..8c38d6cbe4 100644 --- a/compiler/cpp-dest-dir-initializer.cpp +++ b/compiler/cpp-dest-dir-initializer.cpp @@ -4,7 +4,15 @@ #include "compiler/cpp-dest-dir-initializer.h" +#include + #include "compiler/compiler-core.h" +#include "compiler/compiler-settings.h" +#include "compiler/data/data_ptr.h" +#include "compiler/kphp_assert.h" +#include "compiler/stage.h" +#include "compiler/threading/profiler.h" +#include "compiler/threading/thread-id.h" void CppDestDirInitializer::initialize_sync() noexcept { const char* description = "Init cpp dest dir"; diff --git a/compiler/cpp-dest-dir-initializer.h b/compiler/cpp-dest-dir-initializer.h index 866885706c..0b452d02a8 100644 --- a/compiler/cpp-dest-dir-initializer.h +++ b/compiler/cpp-dest-dir-initializer.h @@ -5,12 +5,14 @@ #pragma once #include +#include #include #include "common/mixin/not_copyable.h" #include "common/smart_ptrs/singleton.h" class CppDestDirInitializer : vk::not_copyable { + public: friend class vk::singleton; diff --git a/compiler/data/define-data.cpp b/compiler/data/define-data.cpp index 9585264cf1..bec5ac2815 100644 --- a/compiler/data/define-data.cpp +++ b/compiler/data/define-data.cpp @@ -4,7 +4,11 @@ #include "compiler/data/define-data.h" +#include + +#include "common/wrappers/string_view.h" #include "compiler/data/class-data.h" +#include "compiler/data/class-members.h" #include "compiler/data/src-file.h" DefineData::DefineData() diff --git a/compiler/data/define-data.h b/compiler/data/define-data.h index dfca3f13f9..84197896b3 100644 --- a/compiler/data/define-data.h +++ b/compiler/data/define-data.h @@ -4,15 +4,18 @@ #pragma once +#include + +#include "auto/compiler/vertex/vertex-types.h" #include "common/algorithms/find.h" #include "common/mixin/not_copyable.h" - #include "compiler/data/class-member-modifiers.h" #include "compiler/data/data_ptr.h" #include "compiler/data/vertex-adaptor.h" #include "compiler/debug.h" class DefineData : private vk::not_copyable { + DEBUG_STRING_METHOD { return name; } diff --git a/compiler/data/ffi-data.cpp b/compiler/data/ffi-data.cpp index 0ebd8bd2f0..f5316f2b7a 100644 --- a/compiler/data/ffi-data.cpp +++ b/compiler/data/ffi-data.cpp @@ -4,8 +4,16 @@ #include "compiler/data/ffi-data.h" +#include "auto/compiler/vertex/vertex-op_func_call.h" #include "common/algorithms/contains.h" +#include "compiler/compiler-core.h" +#include "compiler/data/class-data.h" #include "compiler/data/function-data.h" +#include "compiler/data/vertex-adaptor.h" +#include "compiler/inferring/primitive-type.h" +#include "compiler/inferring/type-data.h" +#include "compiler/operation.h" +#include "compiler/threading/data-stream.h" #include "compiler/type-hint.h" static std::vector make_builtin_types() { diff --git a/compiler/data/ffi-data.h b/compiler/data/ffi-data.h index c1b39ce823..076dd34afc 100644 --- a/compiler/data/ffi-data.h +++ b/compiler/data/ffi-data.h @@ -4,11 +4,30 @@ #pragma once +#include +#include +#include +#include +#include +#include #include +#include +#include +#include #include +#include "auto/compiler/vertex/vertex-types.h" #include "compiler/data/class-data.h" +#include "compiler/data/data_ptr.h" #include "compiler/ffi/ffi_types.h" +#include "compiler/kphp_assert.h" +#include "compiler/location.h" + +class TypeHint; +template +class VertexAdaptor; +template +class DataStream; // FFI symbol is an extern variable or function information carrier struct FFISymbol { diff --git a/compiler/data/lib-data.cpp b/compiler/data/lib-data.cpp index c79283e900..00b12bcac1 100644 --- a/compiler/data/lib-data.cpp +++ b/compiler/data/lib-data.cpp @@ -4,8 +4,12 @@ #include "compiler/data/lib-data.h" +#include +#include + #include "common/wrappers/string_view.h" #include "compiler/data/src-file.h" +#include "compiler/kphp_assert.h" #include "compiler/stage.h" namespace { diff --git a/compiler/data/performance-inspections.cpp b/compiler/data/performance-inspections.cpp index 1ae45cc738..3a66ffa089 100644 --- a/compiler/data/performance-inspections.cpp +++ b/compiler/data/performance-inspections.cpp @@ -4,6 +4,12 @@ #include "compiler/data/performance-inspections.h" +#include +#include +#include +#include + +#include "common/wrappers/string_view.h" #include "common/wrappers/to_array.h" #include "compiler/utils/string-utils.h" diff --git a/compiler/data/performance-inspections.h b/compiler/data/performance-inspections.h index 5c01de73e0..29cfe899a4 100644 --- a/compiler/data/performance-inspections.h +++ b/compiler/data/performance-inspections.h @@ -5,11 +5,15 @@ #pragma once #include +#include +#include +#include #include "common/wrappers/string_view.h" #include "compiler/data/data_ptr.h" class PerformanceInspections { + public: enum Inspections : uint8_t { no_inspections = 0, diff --git a/compiler/data/src-dir.cpp b/compiler/data/src-dir.cpp index c7d652921b..f7b5ca49de 100644 --- a/compiler/data/src-dir.cpp +++ b/compiler/data/src-dir.cpp @@ -5,6 +5,10 @@ #include "compiler/data/src-dir.h" #include +#include +#include + +#include "compiler/kphp_assert.h" SrcDir::SrcDir(std::string full_dir_name) : full_dir_name(std::move(full_dir_name)) { diff --git a/compiler/data/var-data.cpp b/compiler/data/var-data.cpp index 622b030640..ee237c97c3 100644 --- a/compiler/data/var-data.cpp +++ b/compiler/data/var-data.cpp @@ -4,7 +4,10 @@ #include "compiler/data/var-data.h" +#include "common/wrappers/string_view.h" #include "compiler/data/class-data.h" +#include "compiler/data/class-members.h" +#include "compiler/kphp_assert.h" #include "compiler/stage.h" VarData::VarData(VarData::Type type_) diff --git a/compiler/data/var-data.h b/compiler/data/var-data.h index 1ec4feae0f..996fdb088d 100644 --- a/compiler/data/var-data.h +++ b/compiler/data/var-data.h @@ -6,12 +6,18 @@ #include #include +#include #include "compiler/data/class-members.h" +#include "compiler/data/data_ptr.h" +#include "compiler/data/vertex-adaptor.h" #include "compiler/debug.h" #include "compiler/inferring/var-node.h" +struct ClassMemberInstanceField; +struct ClassMemberStaticField; class VarData { + DEBUG_STRING_METHOD { return as_human_readable(); } diff --git a/compiler/ffi/c_parser/parsing_driver.cpp b/compiler/ffi/c_parser/parsing_driver.cpp index ffd673f046..00f0e691a9 100644 --- a/compiler/ffi/c_parser/parsing_driver.cpp +++ b/compiler/ffi/c_parser/parsing_driver.cpp @@ -4,13 +4,18 @@ #include "compiler/ffi/c_parser/parsing_driver.h" -#include "compiler/kphp_assert.h" +#include +#include +#include +#include +#include +#include "common/algorithms/contains.h" #include "common/algorithms/find.h" #include "common/containers/final_action.h" - -#include -#include +#include "common/wrappers/string_view.h" +#include "compiler/ffi/c_parser/parsing_types.h" +#include "compiler/kphp_assert.h" using namespace ffi; diff --git a/compiler/ffi/c_parser/parsing_driver.h b/compiler/ffi/c_parser/parsing_driver.h index a7185d6326..872bc9fac9 100644 --- a/compiler/ffi/c_parser/parsing_driver.h +++ b/compiler/ffi/c_parser/parsing_driver.h @@ -4,15 +4,22 @@ #pragma once +#include +#include +#include +#include +#include +#include +#include + #include "compiler/ffi/c_parser/lexer.h" +#include "compiler/ffi/c_parser/location.h" #include "compiler/ffi/c_parser/parsing_types.h" +#include "compiler/ffi/c_parser/string-span.h" #include "compiler/ffi/c_parser/types-allocator.h" #include "compiler/ffi/c_parser/yy_parser_generated.hpp" #include "compiler/ffi/ffi_types.h" -#include -#include - namespace ffi { // How to re-generate lexer & parser: diff --git a/compiler/ffi/ffi_parser.cpp b/compiler/ffi/ffi_parser.cpp index df6086c231..db1a52d1b0 100644 --- a/compiler/ffi/ffi_parser.cpp +++ b/compiler/ffi/ffi_parser.cpp @@ -4,12 +4,16 @@ #include "compiler/ffi/ffi_parser.h" +#include +#include +#include + #include "compiler/compiler-core.h" +#include "compiler/compiler-settings.h" +#include "compiler/ffi/c_parser/location.h" #include "compiler/ffi/c_parser/parsing_driver.h" #include "compiler/kphp_assert.h" -#include - static void log_ffi_parser_stats(const ffi::ParsingDriver::Result& result) { if (G->settings().verbosity.get() >= 1) { fprintf(stderr, "FFI parser: allocated %ld objects (%ld collected as garbage)\n", static_cast(result.num_allocated), diff --git a/compiler/ffi/ffi_parser.h b/compiler/ffi/ffi_parser.h index 22dbdca849..60cfff6447 100644 --- a/compiler/ffi/ffi_parser.h +++ b/compiler/ffi/ffi_parser.h @@ -5,13 +5,17 @@ #pragma once #include +#include +#include #include #include +#include #include #include "compiler/ffi/ffi_types.h" struct FFIParseError { + std::string message; int line; }; diff --git a/compiler/ffi/ffi_types.h b/compiler/ffi/ffi_types.h index d7127aacbf..49c8da6561 100644 --- a/compiler/ffi/ffi_types.h +++ b/compiler/ffi/ffi_types.h @@ -7,6 +7,7 @@ #include #include #include +#include #include enum class FFITypeKind : uint16_t { diff --git a/compiler/function-colors.cpp b/compiler/function-colors.cpp index 48c33cdc79..ef6e2edd2b 100644 --- a/compiler/function-colors.cpp +++ b/compiler/function-colors.cpp @@ -4,7 +4,10 @@ #include "compiler/function-colors.h" +#include + #include "common/algorithms/string-algorithms.h" +#include "compiler/kphp_assert.h" using namespace function_palette; diff --git a/compiler/function-colors.h b/compiler/function-colors.h index 1cfa89f83d..e34533b51d 100644 --- a/compiler/function-colors.h +++ b/compiler/function-colors.h @@ -4,8 +4,13 @@ #pragma once +#include #include #include +#include +#include +#include +#include #include "common/termformat/termformat.h" #include "compiler/stage.h" diff --git a/compiler/inferring/multi-key.cpp b/compiler/inferring/multi-key.cpp index 3e5702095d..7c3b9f6d2a 100644 --- a/compiler/inferring/multi-key.cpp +++ b/compiler/inferring/multi-key.cpp @@ -5,6 +5,7 @@ #include "compiler/inferring/multi-key.h" #include +#include #include "common/algorithms/string-algorithms.h" diff --git a/compiler/inferring/multi-key.h b/compiler/inferring/multi-key.h index bbc618aab5..67beff23de 100644 --- a/compiler/inferring/multi-key.h +++ b/compiler/inferring/multi-key.h @@ -6,6 +6,7 @@ #include #include +#include #include #include "compiler/debug.h" @@ -13,6 +14,7 @@ #include "compiler/kphp_assert.h" class MultiKey { + DEBUG_STRING_METHOD { return to_string(); } diff --git a/compiler/inferring/node.cpp b/compiler/inferring/node.cpp index 1e86e33b45..174a4aeaae 100644 --- a/compiler/inferring/node.cpp +++ b/compiler/inferring/node.cpp @@ -4,7 +4,10 @@ #include "compiler/inferring/node.h" +#include + #include "compiler/inferring/type-data.h" +#include "compiler/kphp_assert.h" #include "compiler/stage.h" namespace tinf { diff --git a/compiler/inferring/node.h b/compiler/inferring/node.h index 0c4b333484..bf33d274bb 100644 --- a/compiler/inferring/node.h +++ b/compiler/inferring/node.h @@ -8,10 +8,13 @@ #include #include "compiler/debug.h" +#include "compiler/inferring/primitive-type.h" #include "compiler/inferring/type-data.h" #include "compiler/location.h" #include "compiler/threading/locks.h" +class Location; + namespace tinf { class Edge; diff --git a/compiler/inferring/primitive-type.cpp b/compiler/inferring/primitive-type.cpp index 364e99f713..c52d888f4e 100644 --- a/compiler/inferring/primitive-type.cpp +++ b/compiler/inferring/primitive-type.cpp @@ -4,12 +4,14 @@ #include "compiler/inferring/primitive-type.h" +#include #include #include +#include #include "common/algorithms/find.h" - #include "compiler/compiler-core.h" +#include "compiler/kphp_assert.h" #include "compiler/stage.h" const char* ptype_name(PrimitiveType id) { diff --git a/compiler/inferring/public.cpp b/compiler/inferring/public.cpp index 5a20596283..ac3b5b2c65 100644 --- a/compiler/inferring/public.cpp +++ b/compiler/inferring/public.cpp @@ -4,10 +4,20 @@ #include "compiler/inferring/public.h" +#include + #include "compiler/data/function-data.h" #include "compiler/data/var-data.h" +#include "compiler/inferring/expr-node.h" +#include "compiler/inferring/node.h" +#include "compiler/inferring/type-inferer.h" +#include "compiler/inferring/var-node.h" +#include "compiler/kphp_assert.h" +#include "compiler/vertex-meta_op_base.h" #include "compiler/vertex.h" +class TypeData; + namespace tinf { Node* get_tinf_node(FunctionPtr function, int param_i) { diff --git a/compiler/inferring/public.h b/compiler/inferring/public.h index 155541e8da..dc02b5d0cb 100644 --- a/compiler/inferring/public.h +++ b/compiler/inferring/public.h @@ -10,6 +10,8 @@ #include "compiler/inferring/type-data.h" #include "compiler/inferring/type-inferer.h" +class TypeData; + namespace tinf { tinf::Node* get_tinf_node(VertexPtr vertex); diff --git a/compiler/inferring/restriction-match-phpdoc.cpp b/compiler/inferring/restriction-match-phpdoc.cpp index f517b94f4b..7239303ba8 100644 --- a/compiler/inferring/restriction-match-phpdoc.cpp +++ b/compiler/inferring/restriction-match-phpdoc.cpp @@ -4,16 +4,24 @@ #include "compiler/inferring/restriction-match-phpdoc.h" -#include "common/termformat/termformat.h" +#include +#include "common/termformat/termformat.h" +#include "compiler/data/data_ptr.h" #include "compiler/data/function-data.h" #include "compiler/data/var-data.h" +#include "compiler/data/vertex-adaptor.h" #include "compiler/inferring/edge.h" #include "compiler/inferring/expr-node.h" +#include "compiler/inferring/multi-key.h" +#include "compiler/inferring/node.h" #include "compiler/inferring/public.h" #include "compiler/inferring/restriction-stacktrace-finder.h" +#include "compiler/inferring/type-data.h" #include "compiler/inferring/type-node.h" #include "compiler/inferring/var-node.h" +#include "compiler/location.h" +#include "compiler/vertex-meta_op_base.h" // see comments in var-node.cpp and collect-main-edges.cpp diff --git a/compiler/inferring/restriction-match-phpdoc.h b/compiler/inferring/restriction-match-phpdoc.h index ac9fe4af14..2039333634 100644 --- a/compiler/inferring/restriction-match-phpdoc.h +++ b/compiler/inferring/restriction-match-phpdoc.h @@ -4,11 +4,15 @@ #pragma once +#include + #include "compiler/inferring/multi-key.h" #include "compiler/inferring/restriction-base.h" #include "compiler/inferring/var-node.h" +class TypeData; class RestrictionMatchPhpdoc : public tinf::RestrictionBase { + tinf::VarNode* restricted_node; tinf::Node* actual_node; const TypeData* expected_type; diff --git a/compiler/inferring/restriction-non-void.cpp b/compiler/inferring/restriction-non-void.cpp index 2738e795b8..ac55a71a02 100644 --- a/compiler/inferring/restriction-non-void.cpp +++ b/compiler/inferring/restriction-non-void.cpp @@ -4,7 +4,10 @@ #include "compiler/inferring/restriction-non-void.h" +#include "compiler/data/data_ptr.h" #include "compiler/data/function-data.h" +#include "compiler/inferring/node.h" +#include "compiler/inferring/primitive-type.h" #include "compiler/inferring/type-data.h" #include "compiler/inferring/var-node.h" diff --git a/compiler/inferring/restriction-non-void.h b/compiler/inferring/restriction-non-void.h index 477e748518..5c2b6124cf 100644 --- a/compiler/inferring/restriction-non-void.h +++ b/compiler/inferring/restriction-non-void.h @@ -4,10 +4,13 @@ #pragma once +#include + #include "compiler/inferring/node.h" #include "compiler/inferring/restriction-base.h" class RestrictionNonVoid : public tinf::RestrictionBase { + tinf::Node* node; public: diff --git a/compiler/inferring/type-inferer.cpp b/compiler/inferring/type-inferer.cpp index faae4a7c0c..5ede6ed830 100644 --- a/compiler/inferring/type-inferer.cpp +++ b/compiler/inferring/type-inferer.cpp @@ -4,12 +4,23 @@ #include "compiler/inferring/type-inferer.h" +#include +#include +#include + #include "compiler/compiler-core.h" +#include "compiler/compiler-settings.h" +#include "compiler/data/data_ptr.h" #include "compiler/data/function-data.h" #include "compiler/data/src-file.h" #include "compiler/inferring/edge.h" +#include "compiler/inferring/node.h" #include "compiler/inferring/public.h" +#include "compiler/inferring/restriction-base.h" #include "compiler/inferring/restriction-match-phpdoc.h" +#include "compiler/kphp_assert.h" +#include "compiler/scheduler/task.h" +#include "compiler/stage.h" #include "compiler/threading/profiler.h" namespace tinf { diff --git a/compiler/inferring/type-inferer.h b/compiler/inferring/type-inferer.h index f206f4c6b4..8382415932 100644 --- a/compiler/inferring/type-inferer.h +++ b/compiler/inferring/type-inferer.h @@ -5,12 +5,15 @@ #pragma once #include +#include #include "compiler/inferring/node.h" #include "compiler/inferring/restriction-base.h" #include "compiler/scheduler/task.h" #include "compiler/threading/tls.h" +class Task; + namespace tinf { using NodeQueue = std::queue; diff --git a/compiler/inferring/type-node.h b/compiler/inferring/type-node.h index 17fefc9dbe..8431247ff4 100644 --- a/compiler/inferring/type-node.h +++ b/compiler/inferring/type-node.h @@ -4,9 +4,14 @@ #pragma once +#include +#include + #include "compiler/inferring/node.h" #include "compiler/location.h" +class TypeData; + namespace tinf { class TypeNode : public Node { diff --git a/compiler/operation.cpp b/compiler/operation.cpp index 70c9c9a381..1f3bdb72cb 100644 --- a/compiler/operation.cpp +++ b/compiler/operation.cpp @@ -4,6 +4,10 @@ #include "compiler/operation.h" +#include +#include +#include + #include "compiler/vertex.h" inline void OpInfo::add_binary_op(int priority, TokenType tok, Operation op) { diff --git a/compiler/operation.h b/compiler/operation.h index bd1eb2c49e..3bba0e9ab7 100644 --- a/compiler/operation.h +++ b/compiler/operation.h @@ -4,8 +4,9 @@ #pragma once -#include "auto/compiler/vertex/vertex-types.h" +#include +#include "auto/compiler/vertex/vertex-types.h" #include "compiler/token.h" enum OperationExtra { diff --git a/compiler/pipes/calc-locations.cpp b/compiler/pipes/calc-locations.cpp index 9e33393552..fcb20383fb 100644 --- a/compiler/pipes/calc-locations.cpp +++ b/compiler/pipes/calc-locations.cpp @@ -4,8 +4,17 @@ #include "compiler/pipes/calc-locations.h" +#include + +#include "auto/compiler/vertex/vertex-op_var.h" #include "compiler/data/class-data.h" +#include "compiler/data/class-members.h" +#include "compiler/data/data_ptr.h" +#include "compiler/data/function-data.h" #include "compiler/data/var-data.h" +#include "compiler/location.h" +#include "compiler/stage.h" +#include "compiler/vertex-meta_op_base.h" void CalcLocationsPass::on_start() { if (current_function->type == FunctionData::func_class_holder) { diff --git a/compiler/pipes/calc-locations.h b/compiler/pipes/calc-locations.h index fcd0fb6c63..b622bc5e7f 100644 --- a/compiler/pipes/calc-locations.h +++ b/compiler/pipes/calc-locations.h @@ -6,9 +6,11 @@ #include +#include "compiler/data/vertex-adaptor.h" #include "compiler/function-pass.h" class CalcLocationsPass final : public FunctionPassBase { + public: std::string get_description() override { return "Calc locations"; diff --git a/compiler/pipes/calc-val-ref.cpp b/compiler/pipes/calc-val-ref.cpp index f358f550df..526ecd66e5 100644 --- a/compiler/pipes/calc-val-ref.cpp +++ b/compiler/pipes/calc-val-ref.cpp @@ -4,7 +4,12 @@ #include "compiler/pipes/calc-val-ref.h" +#include + #include "compiler/inferring/public.h" +#include "compiler/inferring/type-data.h" +#include "compiler/operation.h" +#include "compiler/vertex-meta_op_base.h" bool CalcValRefPass::is_allowed_for_getting_val_or_ref(Operation op, bool is_last, bool is_first) { switch (op) { diff --git a/compiler/pipes/calc-val-ref.h b/compiler/pipes/calc-val-ref.h index 8c9b54762e..1852e68bd0 100644 --- a/compiler/pipes/calc-val-ref.h +++ b/compiler/pipes/calc-val-ref.h @@ -4,9 +4,14 @@ #pragma once +#include + +#include "auto/compiler/vertex/vertex-types.h" +#include "compiler/data/vertex-adaptor.h" #include "compiler/function-pass.h" class CalcValRefPass final : public FunctionPassBase { + bool is_allowed_for_getting_val_or_ref(Operation op, bool is_last, bool is_first); public: diff --git a/compiler/pipes/collect-forkable-types.cpp b/compiler/pipes/collect-forkable-types.cpp index fd920901b6..6700a67b85 100644 --- a/compiler/pipes/collect-forkable-types.cpp +++ b/compiler/pipes/collect-forkable-types.cpp @@ -4,8 +4,18 @@ #include "compiler/pipes/collect-forkable-types.h" +#include +#include +#include + +#include "auto/compiler/vertex/vertex-op_func_call.h" +#include "auto/compiler/vertex/vertex-types.h" #include "common/algorithms/sorting.h" +#include "common/smart_ptrs/singleton.h" +#include "compiler/data/data_ptr.h" +#include "compiler/data/function-data.h" #include "compiler/inferring/public.h" +#include "compiler/inferring/type-data.h" VertexPtr CollectForkableTypesPass::on_enter_vertex(VertexPtr root) { if (auto call = root.try_as()) { diff --git a/compiler/pipes/collect-forkable-types.h b/compiler/pipes/collect-forkable-types.h index 76bc292770..4ac81d141e 100644 --- a/compiler/pipes/collect-forkable-types.h +++ b/compiler/pipes/collect-forkable-types.h @@ -4,11 +4,18 @@ #pragma once +#include +#include +#include + #include "common/mixin/not_copyable.h" #include "common/smart_ptrs/singleton.h" +#include "compiler/data/vertex-adaptor.h" #include "compiler/function-pass.h" +class TypeData; class CollectForkableTypesPass final : public FunctionPassBase { + public: std::string get_description() final { return "Collect forkable types"; diff --git a/compiler/pipes/erase-defines-declarations.cpp b/compiler/pipes/erase-defines-declarations.cpp index 09310080a0..660921c527 100644 --- a/compiler/pipes/erase-defines-declarations.cpp +++ b/compiler/pipes/erase-defines-declarations.cpp @@ -4,8 +4,14 @@ #include "compiler/pipes/erase-defines-declarations.h" +#include "auto/compiler/vertex/vertex-op_define.h" +#include "auto/compiler/vertex/vertex-op_var.h" +#include "auto/compiler/vertex/vertex-types.h" +#include "compiler/compiler-core.h" #include "compiler/const-manipulations.h" +#include "compiler/data/data_ptr.h" #include "compiler/data/define-data.h" +#include "compiler/operation.h" VertexPtr EraseDefinesDeclarationsPass::on_exit_vertex(VertexPtr root) { // when inside a function: diff --git a/compiler/pipes/erase-defines-declarations.h b/compiler/pipes/erase-defines-declarations.h index 0ade5cfc95..44fad916b6 100644 --- a/compiler/pipes/erase-defines-declarations.h +++ b/compiler/pipes/erase-defines-declarations.h @@ -4,10 +4,15 @@ #pragma once +#include + #include "compiler/data/define-data.h" +#include "compiler/data/vertex-adaptor.h" #include "compiler/function-pass.h" +#include "compiler/vertex-meta_op_base.h" class EraseDefinesDeclarationsPass final : public FunctionPassBase { + public: std::string get_description() override { return "Erase defines declarations"; diff --git a/compiler/pipes/file-to-tokens.cpp b/compiler/pipes/file-to-tokens.cpp index 1d434017a0..3dc35ea79b 100644 --- a/compiler/pipes/file-to-tokens.cpp +++ b/compiler/pipes/file-to-tokens.cpp @@ -4,10 +4,15 @@ #include "compiler/pipes/file-to-tokens.h" +#include + #include "compiler/data/src-file.h" +#include "compiler/kphp_assert.h" #include "compiler/lexer.h" #include "compiler/stage.h" +#include "compiler/threading/data-stream.h" #include "compiler/threading/profiler.h" +#include "compiler/token.h" void FileToTokensF::execute(SrcFilePtr file, DataStream>>& os) { stage::set_name("Split file to tokens"); diff --git a/compiler/pipes/file-to-tokens.h b/compiler/pipes/file-to-tokens.h index d4e2908bfd..a4ee6efe3a 100644 --- a/compiler/pipes/file-to-tokens.h +++ b/compiler/pipes/file-to-tokens.h @@ -4,11 +4,18 @@ #pragma once +#include +#include + #include "compiler/data/data_ptr.h" #include "compiler/threading/data-stream.h" #include "compiler/token.h" +class Token; +template +class DataStream; class FileToTokensF { + public: void execute(SrcFilePtr file, DataStream>>& os); }; diff --git a/compiler/pipes/inline-simple-functions.cpp b/compiler/pipes/inline-simple-functions.cpp index 699ab3cdf8..14fab8347f 100644 --- a/compiler/pipes/inline-simple-functions.cpp +++ b/compiler/pipes/inline-simple-functions.cpp @@ -4,10 +4,18 @@ #include "compiler/pipes/inline-simple-functions.h" +#include + +#include "auto/compiler/vertex/vertex-op_var.h" +#include "auto/compiler/vertex/vertex-types.h" #include "compiler/data/class-data.h" +#include "compiler/data/function-data.h" +#include "compiler/data/function-modifiers.h" #include "compiler/data/src-file.h" #include "compiler/data/var-data.h" #include "compiler/inferring/public.h" +#include "compiler/inferring/type-data.h" +#include "compiler/vertex-meta_op_base.h" void InlineSimpleFunctions::on_simple_operation() noexcept { if (++n_simple_operations_ > 6) { diff --git a/compiler/pipes/inline-simple-functions.h b/compiler/pipes/inline-simple-functions.h index 1ee410903a..fc3bd89837 100644 --- a/compiler/pipes/inline-simple-functions.h +++ b/compiler/pipes/inline-simple-functions.h @@ -4,9 +4,14 @@ #pragma once +#include + +#include "compiler/data/data_ptr.h" +#include "compiler/data/vertex-adaptor.h" #include "compiler/function-pass.h" class InlineSimpleFunctions final : public FunctionPassBase { + private: bool inline_is_possible_{true}; int n_simple_operations_{0}; diff --git a/compiler/pipes/load-files.cpp b/compiler/pipes/load-files.cpp index 6c0856adfb..afb504bcae 100644 --- a/compiler/pipes/load-files.cpp +++ b/compiler/pipes/load-files.cpp @@ -4,8 +4,12 @@ #include "compiler/pipes/load-files.h" +#include + #include "compiler/data/src-file.h" +#include "compiler/kphp_assert.h" #include "compiler/stage.h" +#include "compiler/threading/data-stream.h" #include "compiler/threading/profiler.h" void LoadFileF::execute(SrcFilePtr file, DataStream& os) { diff --git a/compiler/pipes/load-files.h b/compiler/pipes/load-files.h index cd0e68f9ce..890ddba094 100644 --- a/compiler/pipes/load-files.h +++ b/compiler/pipes/load-files.h @@ -7,7 +7,10 @@ #include "compiler/data/data_ptr.h" #include "compiler/threading/data-stream.h" +template +class DataStream; class LoadFileF { + public: void execute(SrcFilePtr file, DataStream& os); }; diff --git a/compiler/pipes/parse.cpp b/compiler/pipes/parse.cpp index 122685ac79..1cf43398a6 100644 --- a/compiler/pipes/parse.cpp +++ b/compiler/pipes/parse.cpp @@ -5,6 +5,12 @@ #include "compiler/pipes/parse.h" #include "compiler/gentree.h" +#include "compiler/kphp_assert.h" +#include "compiler/stage.h" +#include "compiler/token.h" + +template +class DataStream; void ParseF::execute(std::pair> file_and_tokens, DataStream& os) { stage::set_name("Parse file"); diff --git a/compiler/pipes/parse.h b/compiler/pipes/parse.h index acd333f94c..6d8070e7ea 100644 --- a/compiler/pipes/parse.h +++ b/compiler/pipes/parse.h @@ -4,11 +4,18 @@ #pragma once +#include +#include + #include "compiler/data/data_ptr.h" #include "compiler/threading/data-stream.h" #include "compiler/token.h" +class Token; +template +class DataStream; class ParseF { + public: void execute(std::pair> file_and_tokens, DataStream& os); }; diff --git a/compiler/pipes/register-defines.cpp b/compiler/pipes/register-defines.cpp index 60ac6b64b1..c3a9011aa7 100644 --- a/compiler/pipes/register-defines.cpp +++ b/compiler/pipes/register-defines.cpp @@ -4,9 +4,15 @@ #include "compiler/pipes/register-defines.h" +#include "auto/compiler/vertex/vertex-op_define.h" +#include "auto/compiler/vertex/vertex-types.h" #include "compiler/compiler-core.h" #include "compiler/data/class-data.h" +#include "compiler/data/data_ptr.h" +#include "compiler/data/function-data.h" #include "compiler/data/src-file.h" +#include "compiler/kphp_assert.h" +#include "compiler/stage.h" VertexPtr RegisterDefinesPass::on_exit_vertex(VertexPtr root) { // 1. an explicit define('name', value) diff --git a/compiler/pipes/register-defines.h b/compiler/pipes/register-defines.h index e0461e1d3f..d6e3fc749f 100644 --- a/compiler/pipes/register-defines.h +++ b/compiler/pipes/register-defines.h @@ -4,10 +4,15 @@ #pragma once +#include + #include "compiler/data/define-data.h" +#include "compiler/data/vertex-adaptor.h" #include "compiler/function-pass.h" +#include "compiler/vertex-meta_op_base.h" class RegisterDefinesPass final : public FunctionPassBase { + public: std::string get_description() override { return "Register defines"; diff --git a/compiler/pipes/type-inferer.cpp b/compiler/pipes/type-inferer.cpp index 2f7a3bbbc5..177e59de05 100644 --- a/compiler/pipes/type-inferer.cpp +++ b/compiler/pipes/type-inferer.cpp @@ -2,9 +2,18 @@ // Copyright (c) 2020 LLC «V Kontakte» // Distributed under the GPL v3 License, see LICENSE.notice.txt -#include "compiler/pipes/type-inferer.h" +#include "compiler/inferring/type-inferer.h" + +#include +#include #include "compiler/inferring/public.h" +#include "compiler/pipes/function-and-cfg.h" +#include "compiler/pipes/type-inferer.h" +#include "compiler/scheduler/scheduler-base.h" +#include "compiler/threading/data-stream.h" + +class Task; void TypeInfererF::execute(FunctionAndCFG input, DataStream& os) { os << input; diff --git a/compiler/pipes/type-inferer.h b/compiler/pipes/type-inferer.h index a30239790a..7d5997f9cc 100644 --- a/compiler/pipes/type-inferer.h +++ b/compiler/pipes/type-inferer.h @@ -4,10 +4,16 @@ #pragma once +#include + #include "compiler/pipes/function-and-cfg.h" #include "compiler/threading/data-stream.h" +struct FunctionAndCFG; +template +class DataStream; class TypeInfererF { + public: // don't show on_finish() in profiler, as it does nothing and is just a zero line using need_on_finish_profiler = std::false_type; diff --git a/compiler/pipes/wait-for-all-classes.cpp b/compiler/pipes/wait-for-all-classes.cpp index d4e283c8e4..757588094f 100644 --- a/compiler/pipes/wait-for-all-classes.cpp +++ b/compiler/pipes/wait-for-all-classes.cpp @@ -3,13 +3,21 @@ // Distributed under the GPL v3 License, see LICENSE.notice.txt #include "compiler/pipes/wait-for-all-classes.h" -#include "compiler/pipes/sort-and-inherit-classes.h" + +#include +#include +#include #include "compiler/compiler-core.h" #include "compiler/data/composer-json-data.h" #include "compiler/data/modulite-data.h" #include "compiler/data/src-dir.h" #include "compiler/data/src-file.h" +#include "compiler/pipes/sort-and-inherit-classes.h" +#include "compiler/stage.h" + +template +class DataStream; /* * This is a sync point. When `on_finish()` is called (once, in a single thread), then diff --git a/compiler/pipes/wait-for-all-classes.h b/compiler/pipes/wait-for-all-classes.h index 531ac57f76..fd2c25c0c6 100644 --- a/compiler/pipes/wait-for-all-classes.h +++ b/compiler/pipes/wait-for-all-classes.h @@ -4,12 +4,19 @@ #pragma once +#include +#include + #include "compiler/data/class-data.h" +#include "compiler/data/data_ptr.h" #include "compiler/data/function-data.h" #include "compiler/pipes/sync.h" #include "compiler/threading/data-stream.h" +template +class DataStream; class WaitForAllClassesF final : public SyncPipeF { + using Base = SyncPipeF; public: diff --git a/compiler/scheduler/one-thread-scheduler.cpp b/compiler/scheduler/one-thread-scheduler.cpp index a9193bfadf..5770fff08b 100644 --- a/compiler/scheduler/one-thread-scheduler.cpp +++ b/compiler/scheduler/one-thread-scheduler.cpp @@ -5,7 +5,9 @@ #include "compiler/scheduler/one-thread-scheduler.h" #include +#include +#include "compiler/scheduler/node.h" #include "compiler/scheduler/task-pull.h" #include "compiler/scheduler/task.h" diff --git a/compiler/scheduler/one-thread-scheduler.h b/compiler/scheduler/one-thread-scheduler.h index 7bbb36c2f4..ef057df5f4 100644 --- a/compiler/scheduler/one-thread-scheduler.h +++ b/compiler/scheduler/one-thread-scheduler.h @@ -9,9 +9,11 @@ #include "compiler/scheduler/scheduler-base.h" +class Node; +class Task; class TaskPull; - class OneThreadScheduler : public SchedulerBase { + private: std::vector nodes; std::queue sync_nodes; diff --git a/compiler/scheduler/scheduler.cpp b/compiler/scheduler/scheduler.cpp index db63ace969..54a277112d 100644 --- a/compiler/scheduler/scheduler.cpp +++ b/compiler/scheduler/scheduler.cpp @@ -4,13 +4,21 @@ #include "compiler/scheduler/scheduler.h" +#include +#include +#include +#include +#include #include +#include "compiler/scheduler/node.h" +#include "compiler/scheduler/task-pull.h" #include "compiler/scheduler/task.h" #include "compiler/threading/thread-id.h" #include "compiler/threading/tls.h" class ThreadContext { + public: pthread_t pthread_id; int thread_id; diff --git a/compiler/scheduler/scheduler.h b/compiler/scheduler/scheduler.h index 2766ba2b1f..6735f7623a 100644 --- a/compiler/scheduler/scheduler.h +++ b/compiler/scheduler/scheduler.h @@ -10,9 +10,12 @@ #include "compiler/scheduler/scheduler-base.h" #include "compiler/scheduler/task-pull.h" +class Node; +class Task; +class TaskPull; class ThreadContext; - class Scheduler : public SchedulerBase { + private: std::vector nodes; std::vector one_thread_nodes; diff --git a/compiler/stats.cpp b/compiler/stats.cpp index 250724bf63..835df1c4bf 100644 --- a/compiler/stats.cpp +++ b/compiler/stats.cpp @@ -4,9 +4,13 @@ #include "compiler/stats.h" -#include "common/dl-utils-lite.h" +#include +#include +#include +#include "common/dl-utils-lite.h" #include "compiler/data/function-data.h" +#include "compiler/threading/profiler.h" void Stats::on_var_inserting(VarData::Type type) { switch (type) { diff --git a/compiler/stats.h b/compiler/stats.h index 070c0f15ba..31c2bfa011 100644 --- a/compiler/stats.h +++ b/compiler/stats.h @@ -6,11 +6,17 @@ #include #include +#include +#include +#include +#include "compiler/data/data_ptr.h" #include "compiler/data/var-data.h" #include "compiler/threading/profiler.h" +class ProfilerRaw; class Stats { + public: void on_var_inserting(VarData::Type type); void on_function_processed(FunctionPtr function); diff --git a/compiler/type-hint.cpp b/compiler/type-hint.cpp index 449cfd96d0..7ecf37bdd7 100644 --- a/compiler/type-hint.cpp +++ b/compiler/type-hint.cpp @@ -4,15 +4,26 @@ #include "compiler/type-hint.h" +#include +#include #include +#include "common/algorithms/string-algorithms.h" #include "common/php-functions.h" - +#include "common/wrappers/iterator_range.h" +#include "compiler/compiler-core.h" #include "compiler/data/class-data.h" +#include "compiler/data/class-members.h" #include "compiler/data/ffi-data.h" #include "compiler/data/function-data.h" +#include "compiler/ffi/ffi_types.h" +#include "compiler/inferring/type-data.h" +#include "compiler/kphp_assert.h" #include "compiler/lambda-utils.h" #include "compiler/name-gen.h" +#include "compiler/threading/hash-table.h" +#include "compiler/threading/locks.h" +#include "compiler/utils/string-utils.h" /** * This class stores a big hashtable [hash => TypeHint] diff --git a/compiler/type-hint.h b/compiler/type-hint.h index 2ebdf8f584..e0d2e0f212 100644 --- a/compiler/type-hint.h +++ b/compiler/type-hint.h @@ -4,14 +4,22 @@ #pragma once +#include +#include +#include #include #include +#include #include #include "compiler/compiler-core.h" +#include "compiler/data/data_ptr.h" +#include "compiler/data/vertex-adaptor.h" #include "compiler/debug.h" #include "compiler/inferring/primitive-type.h" +struct FFIType; + // do not confuse TypeHint with TypeData! // TypeData is a part of _type inferring_; it's mutable and plain, it represents current inferred state of every vertex class TypeData; diff --git a/compiler/utils/string-utils.cpp b/compiler/utils/string-utils.cpp index e30a157dc0..417f81d7f8 100644 --- a/compiler/utils/string-utils.cpp +++ b/compiler/utils/string-utils.cpp @@ -4,6 +4,9 @@ #include "compiler/utils/string-utils.h" +#include +#include + // perform "blahBlah" to "blah_blah" translation std::string transform_to_snake_case(vk::string_view origin) noexcept { std::string name; diff --git a/compiler/utils/string-utils.h b/compiler/utils/string-utils.h index 7c0920f586..a9b0dc5c6c 100644 --- a/compiler/utils/string-utils.h +++ b/compiler/utils/string-utils.h @@ -6,7 +6,12 @@ #include #include +#include +#include +#include #include +#include +#include #include #include "common/algorithms/string-algorithms.h" diff --git a/tests/cpp/compiler/_compiler-tests-env.cpp b/tests/cpp/compiler/_compiler-tests-env.cpp index ec9ce33e24..0ac941b0fc 100644 --- a/tests/cpp/compiler/_compiler-tests-env.cpp +++ b/tests/cpp/compiler/_compiler-tests-env.cpp @@ -1,9 +1,15 @@ #include #include "compiler/compiler-core.h" +#include "compiler/compiler-settings.h" +#include "compiler/inferring/multi-key.h" +#include "compiler/inferring/type-data.h" #include "compiler/lexer.h" +#include "compiler/operation.h" +#include "gtest/gtest_pred_impl.h" class CompilerTestsEnvironment final : public testing::Environment { + public: ~CompilerTestsEnvironment() final {} diff --git a/tests/cpp/compiler/data/performance-inspections-test.cpp b/tests/cpp/compiler/data/performance-inspections-test.cpp index ad479b5a34..b43b5dbbe4 100644 --- a/tests/cpp/compiler/data/performance-inspections-test.cpp +++ b/tests/cpp/compiler/data/performance-inspections-test.cpp @@ -1,6 +1,12 @@ +#include +#include #include +#include +#include +#include #include "compiler/data/performance-inspections.h" +#include "gtest/gtest_pred_impl.h" using PI = PerformanceInspections; diff --git a/tests/cpp/compiler/ffi-parser-test.cpp b/tests/cpp/compiler/ffi-parser-test.cpp index ec6669c7a3..927cc5b19d 100644 --- a/tests/cpp/compiler/ffi-parser-test.cpp +++ b/tests/cpp/compiler/ffi-parser-test.cpp @@ -2,11 +2,24 @@ // Copyright (c) 2021 LLC «V Kontakte» // Distributed under the GPL v3 License, see LICENSE.notice.txt +#include +#include +#include #include +#include +#include +#include +#include +#include +#include +#include -#include "compiler/ffi/ffi_parser.h" -#include "compiler/ffi/c_parser/lexer.h" #include "compiler/data/ffi-data.h" +#include "compiler/ffi/c_parser/lexer.h" +#include "compiler/ffi/c_parser/yy_parser_generated.hpp" +#include "compiler/ffi/ffi_parser.h" +#include "compiler/ffi/ffi_types.h" +#include "gtest/gtest_pred_impl.h" static std::string ffi_test_join_types(const FFIParseResult &parse_result) { std::vector types; diff --git a/tests/cpp/compiler/lexer-test.cpp b/tests/cpp/compiler/lexer-test.cpp index ef2cd8e8b9..511d0d2367 100644 --- a/tests/cpp/compiler/lexer-test.cpp +++ b/tests/cpp/compiler/lexer-test.cpp @@ -1,7 +1,16 @@ +#include +#include +#include #include +#include +#include +#include +#include -#include "compiler/lexer.h" #include "compiler/debug.h" +#include "compiler/lexer.h" +#include "compiler/token.h" +#include "gtest/gtest_pred_impl.h" TEST(lexer_test, test_php_tokens) { std::string debugTokenName(TokenType t); // implemented in debug.cpp diff --git a/tests/cpp/compiler/phpdoc-test.cpp b/tests/cpp/compiler/phpdoc-test.cpp index 4acb4f1480..a04fa3382e 100644 --- a/tests/cpp/compiler/phpdoc-test.cpp +++ b/tests/cpp/compiler/phpdoc-test.cpp @@ -1,6 +1,12 @@ +#include +#include +#include #include +#include +#include #include "compiler/phpdoc.h" +#include "gtest/gtest_pred_impl.h" TEST(phpdoc_test, parse_php_doc) { PhpDocComment doc( diff --git a/tests/cpp/compiler/typedata-test.cpp b/tests/cpp/compiler/typedata-test.cpp index 8c7ee6a537..a93720ac1b 100644 --- a/tests/cpp/compiler/typedata-test.cpp +++ b/tests/cpp/compiler/typedata-test.cpp @@ -1,6 +1,13 @@ +#include +#include #include +#include +#include "compiler/inferring/key.h" +#include "compiler/inferring/multi-key.h" +#include "compiler/inferring/primitive-type.h" #include "compiler/inferring/type-data.h" +#include "gtest/gtest_pred_impl.h" TEST(typedata_test, typedata_human_readable) { auto *td_int = TypeData::get_type(tp_int); diff --git a/tests/cpp/compiler/utils/string-utils-test.cpp b/tests/cpp/compiler/utils/string-utils-test.cpp index 0c5dc2f788..11de368ec3 100644 --- a/tests/cpp/compiler/utils/string-utils-test.cpp +++ b/tests/cpp/compiler/utils/string-utils-test.cpp @@ -1,6 +1,10 @@ +#include +#include #include +#include #include "compiler/utils/string-utils.h" +#include "gtest/gtest_pred_impl.h" TEST(string_utils, snake_case) { ASSERT_EQ(transform_to_snake_case(""), ""); From d7ea0c42d17278204d8de4d21194c825a126f79c Mon Sep 17 00:00:00 2001 From: Denis Zubarev Date: Fri, 4 Sep 2026 17:55:38 +0300 Subject: [PATCH 2/5] fix --- compiler/pipes/type-inferer.cpp | 4 ++-- tests/cpp/compiler/_compiler-tests-env.cpp | 1 - tests/cpp/compiler/data/performance-inspections-test.cpp | 3 --- tests/cpp/compiler/ffi-parser-test.cpp | 3 --- tests/cpp/compiler/lexer-test.cpp | 3 --- tests/cpp/compiler/phpdoc-test.cpp | 3 --- tests/cpp/compiler/typedata-test.cpp | 3 --- tests/cpp/compiler/utils/string-utils-test.cpp | 3 --- 8 files changed, 2 insertions(+), 21 deletions(-) diff --git a/compiler/pipes/type-inferer.cpp b/compiler/pipes/type-inferer.cpp index 177e59de05..eb8f9c3fe5 100644 --- a/compiler/pipes/type-inferer.cpp +++ b/compiler/pipes/type-inferer.cpp @@ -2,14 +2,14 @@ // Copyright (c) 2020 LLC «V Kontakte» // Distributed under the GPL v3 License, see LICENSE.notice.txt -#include "compiler/inferring/type-inferer.h" +#include "compiler/pipes/type-inferer.h" #include #include #include "compiler/inferring/public.h" +#include "compiler/inferring/type-inferer.h" #include "compiler/pipes/function-and-cfg.h" -#include "compiler/pipes/type-inferer.h" #include "compiler/scheduler/scheduler-base.h" #include "compiler/threading/data-stream.h" diff --git a/tests/cpp/compiler/_compiler-tests-env.cpp b/tests/cpp/compiler/_compiler-tests-env.cpp index 0ac941b0fc..e664f38d12 100644 --- a/tests/cpp/compiler/_compiler-tests-env.cpp +++ b/tests/cpp/compiler/_compiler-tests-env.cpp @@ -6,7 +6,6 @@ #include "compiler/inferring/type-data.h" #include "compiler/lexer.h" #include "compiler/operation.h" -#include "gtest/gtest_pred_impl.h" class CompilerTestsEnvironment final : public testing::Environment { diff --git a/tests/cpp/compiler/data/performance-inspections-test.cpp b/tests/cpp/compiler/data/performance-inspections-test.cpp index b43b5dbbe4..786b8c0c49 100644 --- a/tests/cpp/compiler/data/performance-inspections-test.cpp +++ b/tests/cpp/compiler/data/performance-inspections-test.cpp @@ -1,12 +1,9 @@ -#include -#include #include #include #include #include #include "compiler/data/performance-inspections.h" -#include "gtest/gtest_pred_impl.h" using PI = PerformanceInspections; diff --git a/tests/cpp/compiler/ffi-parser-test.cpp b/tests/cpp/compiler/ffi-parser-test.cpp index 927cc5b19d..5de93ffcae 100644 --- a/tests/cpp/compiler/ffi-parser-test.cpp +++ b/tests/cpp/compiler/ffi-parser-test.cpp @@ -3,8 +3,6 @@ // Distributed under the GPL v3 License, see LICENSE.notice.txt #include -#include -#include #include #include #include @@ -19,7 +17,6 @@ #include "compiler/ffi/c_parser/yy_parser_generated.hpp" #include "compiler/ffi/ffi_parser.h" #include "compiler/ffi/ffi_types.h" -#include "gtest/gtest_pred_impl.h" static std::string ffi_test_join_types(const FFIParseResult &parse_result) { std::vector types; diff --git a/tests/cpp/compiler/lexer-test.cpp b/tests/cpp/compiler/lexer-test.cpp index 511d0d2367..7b94cf72c0 100644 --- a/tests/cpp/compiler/lexer-test.cpp +++ b/tests/cpp/compiler/lexer-test.cpp @@ -1,6 +1,4 @@ #include -#include -#include #include #include #include @@ -10,7 +8,6 @@ #include "compiler/debug.h" #include "compiler/lexer.h" #include "compiler/token.h" -#include "gtest/gtest_pred_impl.h" TEST(lexer_test, test_php_tokens) { std::string debugTokenName(TokenType t); // implemented in debug.cpp diff --git a/tests/cpp/compiler/phpdoc-test.cpp b/tests/cpp/compiler/phpdoc-test.cpp index a04fa3382e..0c1800ffd5 100644 --- a/tests/cpp/compiler/phpdoc-test.cpp +++ b/tests/cpp/compiler/phpdoc-test.cpp @@ -1,12 +1,9 @@ #include -#include -#include #include #include #include #include "compiler/phpdoc.h" -#include "gtest/gtest_pred_impl.h" TEST(phpdoc_test, parse_php_doc) { PhpDocComment doc( diff --git a/tests/cpp/compiler/typedata-test.cpp b/tests/cpp/compiler/typedata-test.cpp index a93720ac1b..2806cebd20 100644 --- a/tests/cpp/compiler/typedata-test.cpp +++ b/tests/cpp/compiler/typedata-test.cpp @@ -1,5 +1,3 @@ -#include -#include #include #include @@ -7,7 +5,6 @@ #include "compiler/inferring/multi-key.h" #include "compiler/inferring/primitive-type.h" #include "compiler/inferring/type-data.h" -#include "gtest/gtest_pred_impl.h" TEST(typedata_test, typedata_human_readable) { auto *td_int = TypeData::get_type(tp_int); diff --git a/tests/cpp/compiler/utils/string-utils-test.cpp b/tests/cpp/compiler/utils/string-utils-test.cpp index 11de368ec3..31e07fdaf8 100644 --- a/tests/cpp/compiler/utils/string-utils-test.cpp +++ b/tests/cpp/compiler/utils/string-utils-test.cpp @@ -1,10 +1,7 @@ -#include -#include #include #include #include "compiler/utils/string-utils.h" -#include "gtest/gtest_pred_impl.h" TEST(string_utils, snake_case) { ASSERT_EQ(transform_to_snake_case(""), ""); From 422654aec7b42d38452673b616930831f77c715a Mon Sep 17 00:00:00 2001 From: Denis Zubarev Date: Fri, 4 Sep 2026 18:16:16 +0300 Subject: [PATCH 3/5] delete unused include --- compiler/data/ffi-data.h | 1 - 1 file changed, 1 deletion(-) diff --git a/compiler/data/ffi-data.h b/compiler/data/ffi-data.h index 076dd34afc..c95845b765 100644 --- a/compiler/data/ffi-data.h +++ b/compiler/data/ffi-data.h @@ -5,7 +5,6 @@ #pragma once #include -#include #include #include #include From 8004a4b355834f9197ba28e179065bba41131828 Mon Sep 17 00:00:00 2001 From: Denis Zubarev Date: Tue, 8 Sep 2026 16:58:53 +0300 Subject: [PATCH 4/5] add new inludes and declarations --- common/tl/compiler/tl-compiler.cpp | 6 ++-- compiler/class-assumptions.cpp | 27 ++++++++++++++- compiler/class-assumptions.h | 4 +++ compiler/code-gen/code-gen-task.h | 1 - compiler/code-gen/code-generator.h | 5 +-- .../code-gen/const-globals-batched-mem.cpp | 26 ++++++++++++--- compiler/code-gen/const-globals-batched-mem.h | 2 ++ compiler/code-gen/declarations.cpp | 27 ++++++++++++++- compiler/code-gen/declarations.h | 6 +++- compiler/code-gen/files/cmake-lists-txt.cpp | 4 +++ compiler/code-gen/files/const-vars-init.cpp | 25 ++++++++++++++ compiler/code-gen/files/function-header.cpp | 2 +- compiler/code-gen/files/function-header.h | 1 - compiler/code-gen/files/function-source.cpp | 2 +- compiler/code-gen/files/function-source.h | 1 - .../code-gen/files/global-vars-memory-stats.h | 1 - compiler/code-gen/files/global-vars-reset.cpp | 14 ++++++++ compiler/code-gen/files/init-scripts.cpp | 2 +- compiler/code-gen/files/init-scripts.h | 1 - compiler/code-gen/files/lib-header.h | 1 - compiler/code-gen/files/shape-keys.h | 2 +- .../code-gen/files/tl2cpp/tl-combinator.cpp | 13 ++++++-- .../code-gen/files/tl2cpp/tl-combinator.h | 6 ++++ .../code-gen/files/tl2cpp/tl-function.cpp | 6 ++++ compiler/code-gen/files/tl2cpp/tl-function.h | 10 ++++++ .../code-gen/files/tl2cpp/tl-type-expr.cpp | 14 ++++++++ compiler/code-gen/files/tl2cpp/tl-type-expr.h | 6 ++++ compiler/code-gen/files/tl2cpp/tl-type.cpp | 10 ++++++ compiler/code-gen/files/tl2cpp/tl-type.h | 8 +++++ .../code-gen/files/tl2cpp/tl2cpp-utils.cpp | 24 ++++++++++++-- compiler/code-gen/files/tl2cpp/tl2cpp-utils.h | 8 ++++- compiler/code-gen/files/tl2cpp/tl2cpp.cpp | 21 ++++++++++++ compiler/code-gen/files/tracing-autogen.cpp | 8 +++++ compiler/code-gen/files/tracing-autogen.h | 2 ++ compiler/code-gen/files/type-tagger.cpp | 7 ++++ compiler/code-gen/files/type-tagger.h | 1 + compiler/code-gen/includes.h | 4 +-- compiler/code-gen/raw-data.cpp | 16 +++++++++ compiler/code-gen/raw-data.h | 6 ++++ compiler/code-gen/vertex-compiler.cpp | 27 +++++++++++++++ compiler/code-gen/vertex-compiler.h | 1 + compiler/code-gen/writer-data.cpp | 8 +++++ compiler/code-gen/writer-data.h | 1 + compiler/compiler-core.cpp | 22 ++++++++++++- compiler/compiler-core.h | 11 ++++++- compiler/compiler-settings.cpp | 16 ++++++--- compiler/compiler-settings.h | 3 ++ compiler/compiler.cpp | 27 ++++++++++++++- compiler/composer.cpp | 8 ++++- compiler/composer.h | 1 + compiler/cpp-dest-dir-initializer.h | 2 +- compiler/data/class-data.cpp | 16 ++++++++- compiler/data/class-data.h | 15 ++++++++- compiler/data/class-members.cpp | 10 +++++- compiler/data/class-members.h | 10 +++++- compiler/data/composer-json-data.cpp | 9 ++++- compiler/data/ffi-data.h | 1 + compiler/data/function-data.cpp | 19 ++++++++++- compiler/data/function-data.h | 14 +++++++- compiler/data/generics-mixins.cpp | 14 ++++++++ compiler/data/generics-mixins.h | 7 ++++ compiler/data/kphp-json-tags.cpp | 20 +++++++++-- compiler/data/kphp-json-tags.h | 1 + compiler/data/kphp-tracing-tags.cpp | 6 ++++ compiler/data/kphp-tracing-tags.h | 2 ++ compiler/data/modulite-data.cpp | 14 ++++++-- compiler/data/modulite-data.h | 2 +- compiler/data/src-file.cpp | 9 ++++- compiler/data/src-file.h | 4 ++- compiler/data/var-data.h | 2 -- compiler/debug.cpp | 14 ++++++++ compiler/debug.h | 2 ++ compiler/ffi/c_parser/c.y | 2 +- compiler/ffi/c_parser/location.h | 2 +- compiler/ffi/c_parser/parsing_driver.cpp | 2 +- compiler/ffi/c_parser/parsing_driver.h | 2 +- compiler/ffi/ffi_parser.cpp | 2 +- compiler/ffi/ffi_parser.h | 4 +-- compiler/function-colors.h | 2 +- compiler/generics-reification.cpp | 25 ++++++++++++++ compiler/generics-reification.h | 2 ++ compiler/gentree.cpp | 22 ++++++++++++- compiler/gentree.h | 15 +++++++++ compiler/index.cpp | 14 ++++++-- compiler/index.h | 2 ++ compiler/inferring/expr-node.cpp | 22 ++++++++++++- compiler/inferring/expr-node.h | 6 ++++ compiler/inferring/ifi.cpp | 6 ++++ compiler/inferring/key.cpp | 5 ++- compiler/inferring/lvalue.cpp | 10 +++++- compiler/inferring/lvalue.h | 3 ++ compiler/inferring/node-recalc.cpp | 15 ++++++++- compiler/inferring/node-recalc.h | 9 +++++ compiler/inferring/node.cpp | 2 +- compiler/inferring/node.h | 2 -- compiler/inferring/public.h | 2 -- compiler/inferring/restriction-isset.cpp | 12 +++++++ compiler/inferring/restriction-isset.h | 5 +++ compiler/inferring/restriction-match-phpdoc.h | 4 +++ .../restriction-stacktrace-finder.cpp | 18 +++++++++- .../inferring/restriction-stacktrace-finder.h | 9 +++++ compiler/inferring/type-data.cpp | 11 ++++++- compiler/inferring/type-data.h | 5 +++ compiler/inferring/type-hint-recalc.cpp | 31 +++++++++++++++-- compiler/inferring/type-inferer.h | 3 +- compiler/inferring/type-node.h | 1 + compiler/inferring/var-node.cpp | 17 ++++++++++ compiler/inferring/var-node.h | 6 ++++ compiler/kphp2cpp.cpp | 14 +++++++- compiler/lambda-utils.cpp | 24 ++++++++++++++ compiler/lambda-utils.h | 5 +++ compiler/lexer.cpp | 8 ++++- compiler/lexer.h | 5 ++- compiler/make/hardlink-or-copy.cpp | 8 +++-- compiler/make/make-runner.cpp | 11 ++++++- compiler/make/make-runner.h | 4 ++- compiler/make/make.cpp | 26 ++++++++++++++- compiler/make/target.cpp | 2 ++ compiler/make/target.h | 1 - compiler/modulite-check-rules.cpp | 14 +++++++- compiler/modulite-check-rules.h | 2 ++ compiler/name-gen.cpp | 17 +++++++++- compiler/operation.cpp | 1 + compiler/phpdoc.cpp | 17 +++++++++- compiler/phpdoc.h | 5 +++ compiler/pipes/analyze-performance.cpp | 25 +++++++++++++- compiler/pipes/analyze-performance.h | 17 +++++++++- compiler/pipes/analyzer.cpp | 21 +++++++++++- compiler/pipes/analyzer.h | 6 ++++ compiler/pipes/array-access-transform.cpp | 13 ++++++++ compiler/pipes/array-access-transform.h | 3 ++ compiler/pipes/calc-actual-edges.cpp | 9 +++++ compiler/pipes/calc-actual-edges.h | 5 +++ compiler/pipes/calc-bad-vars.cpp | 22 +++++++++++++ compiler/pipes/calc-bad-vars.h | 2 ++ compiler/pipes/calc-const-types.cpp | 12 +++++++ compiler/pipes/calc-const-types.h | 4 +++ compiler/pipes/calc-empty-functions.cpp | 10 ++++++ compiler/pipes/calc-func-dep.cpp | 10 ++++++ compiler/pipes/calc-func-dep.h | 7 +++- compiler/pipes/calc-real-defines-values.cpp | 20 ++++++++++- compiler/pipes/calc-real-defines-values.h | 9 +++++ compiler/pipes/calc-rl.cpp | 15 +++++++++ compiler/pipes/cfg-end.cpp | 20 +++++++++++ .../check-abstract-function-defaults.cpp | 17 +++++++++- compiler/pipes/check-access-modifiers.cpp | 7 ++++ compiler/pipes/check-access-modifiers.h | 8 +++++ compiler/pipes/check-classes.cpp | 23 ++++++++++++- compiler/pipes/check-classes.h | 6 ++++ compiler/pipes/check-conversions.cpp | 11 +++++++ compiler/pipes/check-conversions.h | 6 ++++ .../pipes/check-func-calls-and-vararg.cpp | 23 +++++++++++++ compiler/pipes/check-func-calls-and-vararg.h | 7 ++++ .../check-modifications-of-const-vars.cpp | 15 ++++++++- .../pipes/check-modifications-of-const-vars.h | 4 +++ compiler/pipes/check-nested-foreach.cpp | 8 ++++- compiler/pipes/check-nested-foreach.h | 6 ++++ compiler/pipes/check-tl-classes.cpp | 15 +++++++++ compiler/pipes/check-tl-classes.h | 3 ++ compiler/pipes/check-type-hint-variance.cpp | 18 ++++++++-- compiler/pipes/check-ub.cpp | 19 +++++++++++ compiler/pipes/clone-strange-const-params.cpp | 16 +++++++++ compiler/pipes/clone-strange-const-params.h | 3 ++ compiler/pipes/code-gen.cpp | 24 ++++++++++++++ compiler/pipes/code-gen.h | 6 ++++ compiler/pipes/collect-const-vars.cpp | 14 ++++++++ compiler/pipes/collect-const-vars.h | 5 +++ compiler/pipes/collect-forkable-types.h | 1 + compiler/pipes/collect-main-edges.cpp | 25 ++++++++++++++ compiler/pipes/collect-main-edges.h | 8 +++++ .../pipes/collect-required-and-classes.cpp | 33 +++++++++++++++++++ compiler/pipes/collect-required-and-classes.h | 2 ++ .../pipes/convert-invoke-to-func-call.cpp | 19 +++++++++++ compiler/pipes/convert-invoke-to-func-call.h | 10 ++++++ compiler/pipes/convert-list-assignments.cpp | 7 ++++ compiler/pipes/convert-list-assignments.h | 4 +++ compiler/pipes/convert-sprintf-calls.cpp | 15 ++++++++- compiler/pipes/convert-sprintf-calls.h | 6 ++++ .../pipes/deduce-implicit-types-and-casts.cpp | 32 +++++++++++++++++- .../pipes/deduce-implicit-types-and-casts.h | 9 +++++ compiler/pipes/early-optimization.cpp | 18 ++++++++++ compiler/pipes/extract-async.cpp | 8 +++++ compiler/pipes/extract-async.h | 6 ++++ compiler/pipes/extract-resumable-calls.cpp | 12 +++++++ compiler/pipes/extract-resumable-calls.h | 6 ++++ compiler/pipes/file-to-tokens.h | 3 -- compiler/pipes/filter-only-actually-used.cpp | 24 ++++++++++++++ compiler/pipes/filter-only-actually-used.h | 4 +++ compiler/pipes/final-check.cpp | 30 +++++++++++++++++ compiler/pipes/final-check.h | 6 ++++ compiler/pipes/fix-returns.cpp | 18 ++++++++++ compiler/pipes/fix-returns.h | 3 ++ compiler/pipes/gen-tree-postprocess.cpp | 24 ++++++++++++++ compiler/pipes/gen-tree-postprocess.h | 4 +++ compiler/pipes/generate-virtual-methods.cpp | 26 +++++++++++++-- compiler/pipes/generate-virtual-methods.h | 3 ++ compiler/pipes/inline-defines-usages.cpp | 18 ++++++++++ compiler/pipes/inline-defines-usages.h | 4 +++ compiler/pipes/inline-simple-functions.cpp | 1 + compiler/pipes/instantiate-ffi-operations.cpp | 22 +++++++++++++ compiler/pipes/instantiate-ffi-operations.h | 7 ++++ .../instantiate-generics-and-lambdas.cpp | 18 ++++++++++ .../pipes/instantiate-generics-and-lambdas.h | 2 ++ compiler/pipes/load-files.h | 2 -- compiler/pipes/optimization.cpp | 30 +++++++++++++---- compiler/pipes/optimization.h | 7 ++++ compiler/pipes/parse-and-apply-phpdoc.cpp | 30 ++++++++++++++++- compiler/pipes/parse-and-apply-phpdoc.h | 4 +++ compiler/pipes/parse.h | 3 -- compiler/pipes/preprocess-break.cpp | 9 +++++ compiler/pipes/preprocess-break.h | 5 +++ compiler/pipes/preprocess-eq3.cpp | 7 +++- compiler/pipes/preprocess-eq3.h | 3 ++ compiler/pipes/preprocess-exceptions.cpp | 13 ++++++++ compiler/pipes/preprocess-exceptions.h | 3 ++ compiler/pipes/propagate-throw-flag.cpp | 8 +++++ compiler/pipes/propagate-throw-flag.h | 3 ++ compiler/pipes/register-ffi-scopes.cpp | 32 ++++++++++++++++-- compiler/pipes/register-ffi-scopes.h | 4 +++ .../pipes/register-kphp-configuration.cpp | 17 +++++++++- compiler/pipes/register-kphp-configuration.h | 10 ++++++ compiler/pipes/register-variables.cpp | 18 ++++++++++ compiler/pipes/register-variables.h | 5 +++ .../pipes/remove-empty-function-calls.cpp | 9 +++++ compiler/pipes/remove-empty-function-calls.h | 3 ++ compiler/pipes/resolve-self-static-parent.cpp | 14 +++++++- compiler/pipes/resolve-self-static-parent.h | 5 +++ compiler/pipes/sort-and-inherit-classes.cpp | 25 +++++++++++++- compiler/pipes/sort-and-inherit-classes.h | 3 ++ compiler/pipes/split-switch.cpp | 18 ++++++++++ .../pipes/transform-to-smart-instanceof.cpp | 13 +++++++- .../pipes/transform-to-smart-instanceof.h | 3 ++ compiler/pipes/type-inferer.h | 3 -- compiler/pipes/wait-for-all-classes.h | 2 -- compiler/pipes/write-files.cpp | 12 ++++++- .../replace-extern-func-calls.cpp | 19 ++++++++++- .../rewrite-rules/replace-extern-func-calls.h | 2 ++ compiler/rewrite-rules/rules_runtime.cpp | 8 +++++ compiler/rewrite-rules/rules_runtime.h | 10 +++++- compiler/scheduler/one-thread-scheduler.cpp | 2 +- compiler/scheduler/scheduler.cpp | 2 +- compiler/scheduler/scheduler.h | 1 - compiler/stage.cpp | 13 +++++++- compiler/stage.h | 3 +- compiler/stats.cpp | 1 + compiler/stats.h | 3 +- compiler/threading/profiler.cpp | 4 +++ compiler/threading/profiler.h | 5 ++- compiler/tl-classes.cpp | 6 +++- compiler/tl-classes.h | 4 ++- compiler/type-hint.h | 2 +- compiler/utils/string-utils.h | 6 ++-- compiler/vertex-util.cpp | 9 +++++ compiler/vertex-util.h | 8 +++++ compiler/vertex.cpp | 2 ++ compiler/vertex.h | 10 +++++- tests/cpp/compiler/ffi-parser-test.cpp | 4 +-- tests/cpp/compiler/lexer-test.cpp | 1 + tests/cpp/compiler/phpdoc-test.cpp | 1 + 259 files changed, 2336 insertions(+), 157 deletions(-) diff --git a/common/tl/compiler/tl-compiler.cpp b/common/tl/compiler/tl-compiler.cpp index 04acb412d5..1c39f2b1f8 100644 --- a/common/tl/compiler/tl-compiler.cpp +++ b/common/tl/compiler/tl-compiler.cpp @@ -2,10 +2,10 @@ // Copyright (c) 2020 LLC «V Kontakte» // Distributed under the GPL v3 License, see LICENSE.notice.txt -#include +#include +#include +#include #include -#include -#include #include #include #include diff --git a/compiler/class-assumptions.cpp b/compiler/class-assumptions.cpp index c25cf4837a..d9238eb84b 100644 --- a/compiler/class-assumptions.cpp +++ b/compiler/class-assumptions.cpp @@ -30,15 +30,40 @@ */ #include "compiler/class-assumptions.h" +#include +#include +#include +#include +#include +#include #include - +#include +#include +#include + +#include "auto/compiler/vertex/vertex-types.h" +#include "common/algorithms/find.h" +#include "common/termformat/termformat.h" +#include "common/wrappers/copyable-atomic.h" +#include "common/wrappers/fmt_format.h" +#include "common/wrappers/iterator_range.h" +#include "compiler/compiler-core.h" #include "compiler/data/class-data.h" +#include "compiler/data/class-members.h" +#include "compiler/data/ffi-data.h" #include "compiler/data/function-data.h" +#include "compiler/data/function-modifiers.h" +#include "compiler/ffi/ffi_types.h" #include "compiler/function-pass.h" +#include "compiler/inferring/primitive-type.h" +#include "compiler/kphp_assert.h" #include "compiler/phpdoc.h" #include "compiler/pipes/deduce-implicit-types-and-casts.h" #include "compiler/pipes/instantiate-ffi-operations.h" +#include "compiler/stage.h" #include "compiler/type-hint.h" +#include "compiler/utils/string-utils.h" +#include "compiler/vertex-meta_op_base.h" #include "compiler/vertex-util.h" #include "compiler/vertex.h" diff --git a/compiler/class-assumptions.h b/compiler/class-assumptions.h index ab365c459f..de6a849798 100644 --- a/compiler/class-assumptions.h +++ b/compiler/class-assumptions.h @@ -4,10 +4,14 @@ #pragma once +#include + #include "compiler/data/data_ptr.h" #include "compiler/data/vertex-adaptor.h" #include "compiler/debug.h" +class TypeHint; + class Assumption { DEBUG_STRING_METHOD { return as_human_readable(); diff --git a/compiler/code-gen/code-gen-task.h b/compiler/code-gen/code-gen-task.h index 163db023c0..8d1293173b 100644 --- a/compiler/code-gen/code-gen-task.h +++ b/compiler/code-gen/code-gen-task.h @@ -14,7 +14,6 @@ #include "compiler/stage.h" #include "compiler/threading/profiler.h" -class ProfilerRaw; template class DataStream; diff --git a/compiler/code-gen/code-generator.h b/compiler/code-gen/code-generator.h index 466263f7d1..9140d141c4 100644 --- a/compiler/code-gen/code-generator.h +++ b/compiler/code-gen/code-generator.h @@ -4,7 +4,7 @@ #pragma once -#include +#include #include #include #include @@ -17,9 +17,6 @@ #include "compiler/inferring/type-data.h" #include "compiler/threading/data-stream.h" -class TypeData; -template -class DataStream; struct CGContext { std::vector catch_labels; diff --git a/compiler/code-gen/const-globals-batched-mem.cpp b/compiler/code-gen/const-globals-batched-mem.cpp index b4e50262a7..c7728382bb 100644 --- a/compiler/code-gen/const-globals-batched-mem.cpp +++ b/compiler/code-gen/const-globals-batched-mem.cpp @@ -4,16 +4,34 @@ #include "compiler/code-gen/const-globals-batched-mem.h" -#include -#include - +#include +#include +#include +#include +#include +#include +#include + +#include "auto/compiler/vertex/vertex-op_var.h" +#include "auto/compiler/vertex/vertex-types.h" +#include "common/algorithms/find.h" +#include "common/algorithms/hashes.h" +#include "common/algorithms/string-algorithms.h" #include "common/php-functions.h" - +#include "common/wrappers/fmt_format.h" +#include "common/wrappers/string_view.h" +#include "compiler/code-gen/code-generator.h" #include "compiler/code-gen/common.h" #include "compiler/code-gen/includes.h" #include "compiler/compiler-core.h" +#include "compiler/compiler-settings.h" +#include "compiler/data/function-data.h" #include "compiler/data/var-data.h" +#include "compiler/inferring/primitive-type.h" #include "compiler/inferring/public.h" +#include "compiler/inferring/type-data.h" +#include "compiler/kphp_assert.h" +#include "compiler/vertex-meta_op_base.h" // see const-globals-batched-mem.h for detailed comments of what's going on diff --git a/compiler/code-gen/const-globals-batched-mem.h b/compiler/code-gen/const-globals-batched-mem.h index b540ceea52..380090e8bb 100644 --- a/compiler/code-gen/const-globals-batched-mem.h +++ b/compiler/code-gen/const-globals-batched-mem.h @@ -4,7 +4,9 @@ #pragma once +#include #include +#include #include "compiler/data/data_ptr.h" #include "compiler/data/vertex-adaptor.h" diff --git a/compiler/code-gen/declarations.cpp b/compiler/code-gen/declarations.cpp index bcf4327d3d..7f86f4306d 100644 --- a/compiler/code-gen/declarations.cpp +++ b/compiler/code-gen/declarations.cpp @@ -4,8 +4,23 @@ #include "compiler/code-gen/declarations.h" -#include "common/algorithms/compare.h" +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include "common/algorithms/compare.h" +#include "common/algorithms/find.h" +#include "common/tlo-parsing/tl-objects.h" +#include "common/wrappers/fmt_format.h" +#include "common/wrappers/iterator_range.h" +#include "compiler/code-gen/code-generator.h" #include "compiler/code-gen/common.h" #include "compiler/code-gen/const-globals-batched-mem.h" #include "compiler/code-gen/files/json-encoder-tags.h" @@ -14,17 +29,27 @@ #include "compiler/code-gen/namespace.h" #include "compiler/code-gen/naming.h" #include "compiler/code-gen/vertex-compiler.h" +#include "compiler/compiler-core.h" +#include "compiler/compiler-settings.h" #include "compiler/data/class-data.h" +#include "compiler/data/class-members.h" #include "compiler/data/ffi-data.h" #include "compiler/data/function-data.h" #include "compiler/data/kphp-json-tags.h" #include "compiler/data/lib-data.h" #include "compiler/data/src-file.h" #include "compiler/data/var-data.h" +#include "compiler/data/vertex-adaptor.h" +#include "compiler/ffi/ffi_types.h" +#include "compiler/inferring/primitive-type.h" #include "compiler/inferring/public.h" #include "compiler/inferring/type-data.h" +#include "compiler/kphp_assert.h" +#include "compiler/stage.h" #include "compiler/tl-classes.h" +#include "compiler/utils/string-utils.h" #include "compiler/vertex-util.h" +#include "compiler/vertex.h" VarDeclaration VarPlainDeclaration(VarPtr var) { return {var, false, false}; diff --git a/compiler/code-gen/declarations.h b/compiler/code-gen/declarations.h index 2b5927e288..b88b01dc36 100644 --- a/compiler/code-gen/declarations.h +++ b/compiler/code-gen/declarations.h @@ -4,11 +4,15 @@ #pragma once +#include +#include +#include #include #include +#include "auto/compiler/vertex/vertex-types.h" #include "common/tlo-parsing/tl-objects.h" - +#include "common/wrappers/string_view.h" #include "compiler/code-gen/code-gen-root-cmd.h" #include "compiler/code-gen/code-generator.h" #include "compiler/code-gen/gen-out-style.h" diff --git a/compiler/code-gen/files/cmake-lists-txt.cpp b/compiler/code-gen/files/cmake-lists-txt.cpp index 29c5e5339a..bfdcea1986 100644 --- a/compiler/code-gen/files/cmake-lists-txt.cpp +++ b/compiler/code-gen/files/cmake-lists-txt.cpp @@ -5,11 +5,15 @@ #include "compiler/code-gen/files/cmake-lists-txt.h" #include +#include #include +#include #include "common/wrappers/fmt_format.h" +#include "compiler/code-gen/code-generator.h" #include "compiler/code-gen/common.h" #include "compiler/compiler-core.h" +#include "compiler/compiler-settings.h" void CmakeListsTxt::compile_include_cmake() const noexcept { // 1) creating of file outside of CompilerSettings::dest_cpp_dir directory is unable with CodeGenerator, diff --git a/compiler/code-gen/files/const-vars-init.cpp b/compiler/code-gen/files/const-vars-init.cpp index c860d0ff17..fba9ce49df 100644 --- a/compiler/code-gen/files/const-vars-init.cpp +++ b/compiler/code-gen/files/const-vars-init.cpp @@ -4,16 +4,41 @@ #include "compiler/code-gen/files/const-vars-init.h" +#include +#include +#include +#include +#include + +#include "auto/compiler/vertex/vertex-op_string.h" +#include "auto/compiler/vertex/vertex-types.h" +#include "common/algorithms/find.h" #include "common/algorithms/hashes.h" +#include "common/wrappers/fmt_format.h" +#include "compiler/code-gen/code-generator.h" +#include "compiler/code-gen/common.h" #include "compiler/code-gen/const-globals-batched-mem.h" #include "compiler/code-gen/declarations.h" +#include "compiler/code-gen/includes.h" #include "compiler/code-gen/namespace.h" +#include "compiler/code-gen/naming.h" #include "compiler/code-gen/raw-data.h" #include "compiler/code-gen/vertex-compiler.h" #include "compiler/compiler-core.h" +#include "compiler/compiler-settings.h" +#include "compiler/data/data_ptr.h" #include "compiler/data/function-data.h" #include "compiler/data/src-file.h" +#include "compiler/data/var-data.h" +#include "compiler/data/vertex-adaptor.h" +#include "compiler/inferring/primitive-type.h" #include "compiler/inferring/public.h" +#include "compiler/inferring/type-data.h" +#include "compiler/inferring/var-node.h" +#include "compiler/kphp_assert.h" +#include "compiler/location.h" +#include "compiler/stage.h" +#include "compiler/vertex-meta_op_base.h" struct InitConstVar { VarPtr var; diff --git a/compiler/code-gen/files/function-header.cpp b/compiler/code-gen/files/function-header.cpp index 93f68d70a4..eb656db375 100644 --- a/compiler/code-gen/files/function-header.cpp +++ b/compiler/code-gen/files/function-header.cpp @@ -4,9 +4,9 @@ #include "compiler/code-gen/files/function-header.h" +#include #include #include -#include #include #include "compiler/code-gen/code-generator.h" diff --git a/compiler/code-gen/files/function-header.h b/compiler/code-gen/files/function-header.h index 5e06c249f8..36bb902c73 100644 --- a/compiler/code-gen/files/function-header.h +++ b/compiler/code-gen/files/function-header.h @@ -8,7 +8,6 @@ #include "compiler/code-gen/code-generator.h" #include "compiler/data/data_ptr.h" -class CodeGenerator; struct FunctionH : CodeGenRootCmd { FunctionPtr function; diff --git a/compiler/code-gen/files/function-source.cpp b/compiler/code-gen/files/function-source.cpp index 0bbeaaaa33..0919d5d9cf 100644 --- a/compiler/code-gen/files/function-source.cpp +++ b/compiler/code-gen/files/function-source.cpp @@ -4,9 +4,9 @@ #include "compiler/code-gen/files/function-source.h" +#include #include #include -#include #include #include "compiler/code-gen/code-generator.h" diff --git a/compiler/code-gen/files/function-source.h b/compiler/code-gen/files/function-source.h index 7f5bca136b..9ab240575d 100644 --- a/compiler/code-gen/files/function-source.h +++ b/compiler/code-gen/files/function-source.h @@ -8,7 +8,6 @@ #include "compiler/code-gen/code-generator.h" #include "compiler/data/data_ptr.h" -class CodeGenerator; struct FunctionCpp : CodeGenRootCmd { FunctionPtr function; diff --git a/compiler/code-gen/files/global-vars-memory-stats.h b/compiler/code-gen/files/global-vars-memory-stats.h index a42aeef01e..ce32843461 100644 --- a/compiler/code-gen/files/global-vars-memory-stats.h +++ b/compiler/code-gen/files/global-vars-memory-stats.h @@ -10,7 +10,6 @@ #include "compiler/code-gen/code-generator.h" #include "compiler/data/data_ptr.h" -class CodeGenerator; struct GlobalVarsMemoryStats : CodeGenRootCmd { explicit GlobalVarsMemoryStats(const std::vector& all_globals); diff --git a/compiler/code-gen/files/global-vars-reset.cpp b/compiler/code-gen/files/global-vars-reset.cpp index 14fe28c2f2..261d527a0b 100644 --- a/compiler/code-gen/files/global-vars-reset.cpp +++ b/compiler/code-gen/files/global-vars-reset.cpp @@ -4,12 +4,26 @@ #include "compiler/code-gen/files/global-vars-reset.h" +#include +#include +#include + +#include "common/wrappers/fmt_format.h" +#include "compiler/code-gen/code-generator.h" #include "compiler/code-gen/common.h" #include "compiler/code-gen/const-globals-batched-mem.h" #include "compiler/code-gen/declarations.h" +#include "compiler/code-gen/includes.h" #include "compiler/code-gen/namespace.h" +#include "compiler/code-gen/naming.h" #include "compiler/code-gen/vertex-compiler.h" +#include "compiler/compiler-core.h" +#include "compiler/compiler-settings.h" +#include "compiler/data/data_ptr.h" #include "compiler/data/src-file.h" +#include "compiler/data/var-data.h" +#include "compiler/data/vertex-adaptor.h" +#include "compiler/inferring/primitive-type.h" #include "compiler/inferring/public.h" #include "compiler/inferring/type-data.h" #include "compiler/kphp_assert.h" diff --git a/compiler/code-gen/files/init-scripts.cpp b/compiler/code-gen/files/init-scripts.cpp index ba192d4728..57b3988697 100644 --- a/compiler/code-gen/files/init-scripts.cpp +++ b/compiler/code-gen/files/init-scripts.cpp @@ -5,9 +5,9 @@ #include "compiler/code-gen/files/init-scripts.h" #include +#include #include #include -#include #include #include diff --git a/compiler/code-gen/files/init-scripts.h b/compiler/code-gen/files/init-scripts.h index 9e2661a681..bff7c0f662 100644 --- a/compiler/code-gen/files/init-scripts.h +++ b/compiler/code-gen/files/init-scripts.h @@ -10,7 +10,6 @@ #include "compiler/code-gen/code-generator.h" #include "compiler/data/data_ptr.h" -class CodeGenerator; struct InitScriptsCpp : CodeGenRootCmd { SrcFilePtr main_file_id; diff --git a/compiler/code-gen/files/lib-header.h b/compiler/code-gen/files/lib-header.h index 8b6694f444..c2ee97f3dd 100644 --- a/compiler/code-gen/files/lib-header.h +++ b/compiler/code-gen/files/lib-header.h @@ -10,7 +10,6 @@ #include "compiler/code-gen/code-generator.h" #include "compiler/data/data_ptr.h" -class CodeGenerator; struct StaticLibraryRunGlobalHeaderH : CodeGenRootCmd { void compile(CodeGenerator& W) const final; diff --git a/compiler/code-gen/files/shape-keys.h b/compiler/code-gen/files/shape-keys.h index e2c6598230..760df6e022 100644 --- a/compiler/code-gen/files/shape-keys.h +++ b/compiler/code-gen/files/shape-keys.h @@ -4,8 +4,8 @@ #pragma once +#include #include -#include #include #include diff --git a/compiler/code-gen/files/tl2cpp/tl-combinator.cpp b/compiler/code-gen/files/tl2cpp/tl-combinator.cpp index fadc35d332..2ac0a9ffbc 100644 --- a/compiler/code-gen/files/tl2cpp/tl-combinator.cpp +++ b/compiler/code-gen/files/tl2cpp/tl-combinator.cpp @@ -4,9 +4,18 @@ #include "compiler/code-gen/files/tl2cpp/tl-combinator.h" -#include "common/tl/constants/common.h" - +#include +#include +#include + +#include "common/tlo-parsing/tl-objects.h" +#include "common/wrappers/fmt_format.h" +#include "compiler/code-gen/code-generator.h" +#include "compiler/code-gen/common.h" #include "compiler/code-gen/files/tl2cpp/tl-type-expr.h" +#include "compiler/code-gen/files/tl2cpp/tl2cpp-utils.h" +#include "compiler/compiler-core.h" +#include "compiler/kphp_assert.h" namespace tl2cpp { inline std::vector get_not_optional_fields_masks(const vk::tlo_parsing::combinator* constructor) { diff --git a/compiler/code-gen/files/tl2cpp/tl-combinator.h b/compiler/code-gen/files/tl2cpp/tl-combinator.h index a79e1526af..d47399a79b 100644 --- a/compiler/code-gen/files/tl2cpp/tl-combinator.h +++ b/compiler/code-gen/files/tl2cpp/tl-combinator.h @@ -4,8 +4,14 @@ #pragma once +#include +#include +#include + #include "compiler/code-gen/files/tl2cpp/tl2cpp-utils.h" +class CodeGenerator; + namespace tl2cpp { enum class CombinatorPart { LEFT, RIGHT }; diff --git a/compiler/code-gen/files/tl2cpp/tl-function.cpp b/compiler/code-gen/files/tl2cpp/tl-function.cpp index f09243c949..c24ce947fa 100644 --- a/compiler/code-gen/files/tl2cpp/tl-function.cpp +++ b/compiler/code-gen/files/tl2cpp/tl-function.cpp @@ -4,8 +4,14 @@ #include "compiler/code-gen/files/tl2cpp/tl-function.h" +#include + +#include "compiler/code-gen/code-generator.h" +#include "compiler/code-gen/common.h" #include "compiler/code-gen/files/tl2cpp/tl-combinator.h" #include "compiler/code-gen/naming.h" +#include "compiler/compiler-core.h" +#include "compiler/compiler-settings.h" namespace tl2cpp { void TlFunctionDecl::compile(CodeGenerator& W) const { diff --git a/compiler/code-gen/files/tl2cpp/tl-function.h b/compiler/code-gen/files/tl2cpp/tl-function.h index 1a6dcb3076..c4ba150bd5 100644 --- a/compiler/code-gen/files/tl2cpp/tl-function.h +++ b/compiler/code-gen/files/tl2cpp/tl-function.h @@ -3,7 +3,17 @@ // Distributed under the GPL v3 License, see LICENSE.notice.txt #pragma once +#include +#include +#include + +#include "common/tlo-parsing/tl-objects.h" +#include "common/wrappers/fmt_format.h" #include "compiler/code-gen/files/tl2cpp/tl2cpp-utils.h" +#include "compiler/data/data_ptr.h" +#include "compiler/kphp_assert.h" + +class CodeGenerator; namespace tl2cpp { struct TlFunctionDecl { diff --git a/compiler/code-gen/files/tl2cpp/tl-type-expr.cpp b/compiler/code-gen/files/tl2cpp/tl-type-expr.cpp index dbd8d1104b..0123866780 100644 --- a/compiler/code-gen/files/tl2cpp/tl-type-expr.cpp +++ b/compiler/code-gen/files/tl2cpp/tl-type-expr.cpp @@ -4,7 +4,21 @@ #include "compiler/code-gen/files/tl2cpp/tl-type-expr.h" +#include +#include +#include +#include + +#include "common/algorithms/string-algorithms.h" +#include "common/functional/identity.h" #include "common/tl/constants/common.h" +#include "common/tlo-parsing/tl-objects.h" +#include "common/wrappers/fmt_format.h" +#include "common/wrappers/string_view.h" +#include "compiler/code-gen/code-generator.h" +#include "compiler/code-gen/common.h" +#include "compiler/code-gen/files/tl2cpp/tl2cpp-utils.h" +#include "compiler/kphp_assert.h" namespace tl2cpp { // Recursively traverse the type expression tree and return pair diff --git a/compiler/code-gen/files/tl2cpp/tl-type-expr.h b/compiler/code-gen/files/tl2cpp/tl-type-expr.h index a821cd22c0..9c6cd7fc80 100644 --- a/compiler/code-gen/files/tl2cpp/tl-type-expr.h +++ b/compiler/code-gen/files/tl2cpp/tl-type-expr.h @@ -4,8 +4,14 @@ #pragma once +#include +#include +#include + #include "compiler/code-gen/files/tl2cpp/tl2cpp-utils.h" +class CodeGenerator; + namespace tl2cpp { std::pair get_full_type_expr_str(vk::tlo_parsing::expr_base* type_expr, const std::string& var_num_access); diff --git a/compiler/code-gen/files/tl2cpp/tl-type.cpp b/compiler/code-gen/files/tl2cpp/tl-type.cpp index 03e13c1b60..8972d19256 100644 --- a/compiler/code-gen/files/tl2cpp/tl-type.cpp +++ b/compiler/code-gen/files/tl2cpp/tl-type.cpp @@ -4,8 +4,18 @@ #include "compiler/code-gen/files/tl2cpp/tl-type.h" +#include +#include +#include + +#include "common/algorithms/string-algorithms.h" +#include "common/functional/identity.h" +#include "common/wrappers/fmt_format.h" +#include "compiler/code-gen/code-generator.h" +#include "compiler/code-gen/common.h" #include "compiler/code-gen/files/tl2cpp/tl-template-php-type-helpers.h" #include "compiler/code-gen/naming.h" +#include "compiler/kphp_assert.h" namespace tl2cpp { using vk::tlo_parsing::FLAG_DEFAULT_CONSTRUCTOR; diff --git a/compiler/code-gen/files/tl2cpp/tl-type.h b/compiler/code-gen/files/tl2cpp/tl-type.h index 2d6a3a536b..3323e56eec 100644 --- a/compiler/code-gen/files/tl2cpp/tl-type.h +++ b/compiler/code-gen/files/tl2cpp/tl-type.h @@ -5,8 +5,16 @@ #pragma once #include +#include +#include +#include "common/tl2php/php-classes.h" +#include "common/tlo-parsing/tl-objects.h" #include "compiler/code-gen/files/tl2cpp/tl2cpp-utils.h" +#include "compiler/compiler-core.h" +#include "compiler/data/data_ptr.h" + +class CodeGenerator; namespace tl2cpp { // Generated code example: diff --git a/compiler/code-gen/files/tl2cpp/tl2cpp-utils.cpp b/compiler/code-gen/files/tl2cpp/tl2cpp-utils.cpp index fbce961191..0cb7afdb97 100644 --- a/compiler/code-gen/files/tl2cpp/tl2cpp-utils.cpp +++ b/compiler/code-gen/files/tl2cpp/tl2cpp-utils.cpp @@ -4,9 +4,29 @@ #include "compiler/code-gen/files/tl2cpp/tl2cpp-utils.h" -#include "common/tl/constants/common.h" - +#include +#include +#include +#include +#include +#include +#include + +#include "common/algorithms/find.h" +#include "common/algorithms/string-algorithms.h" +#include "common/functional/identity.h" #include "common/php-functions.h" +#include "common/tl/constants/common.h" +#include "common/tl2php/php-classes.h" +#include "common/tlo-parsing/tl-objects.h" +#include "common/wrappers/fmt_format.h" +#include "common/wrappers/string_view.h" +#include "compiler/compiler-core.h" +#include "compiler/compiler-settings.h" +#include "compiler/data/class-data.h" +#include "compiler/kphp_assert.h" +#include "compiler/tl-classes.h" +#include "compiler/utils/string-utils.h" namespace tl2cpp { const std::string T_TYPE = "Type"; diff --git a/compiler/code-gen/files/tl2cpp/tl2cpp-utils.h b/compiler/code-gen/files/tl2cpp/tl2cpp-utils.h index f0cb654f2d..767c8abec8 100644 --- a/compiler/code-gen/files/tl2cpp/tl2cpp-utils.h +++ b/compiler/code-gen/files/tl2cpp/tl2cpp-utils.h @@ -4,8 +4,14 @@ #pragma once -#include "common/tlo-parsing/tl-objects.h" +#include +#include +#include +#include +#include +#include +#include "common/tlo-parsing/tl-objects.h" #include "compiler/code-gen/common.h" #include "compiler/compiler-core.h" #include "compiler/data/class-data.h" diff --git a/compiler/code-gen/files/tl2cpp/tl2cpp.cpp b/compiler/code-gen/files/tl2cpp/tl2cpp.cpp index 5e6be6324a..a32f6b3dc6 100644 --- a/compiler/code-gen/files/tl2cpp/tl2cpp.cpp +++ b/compiler/code-gen/files/tl2cpp/tl2cpp.cpp @@ -4,13 +4,34 @@ #include "compiler/code-gen/files/tl2cpp/tl2cpp.h" +#include +#include +#include +#include +#include +#include +#include #include +#include +#include +#include +#include +#include +#include "common/tlo-parsing/tl-objects.h" #include "common/tlo-parsing/tlo-parsing.h" +#include "common/wrappers/fmt_format.h" +#include "compiler/code-gen/code-generator.h" +#include "compiler/code-gen/common.h" #include "compiler/code-gen/files/tl2cpp/tl-module.h" #include "compiler/code-gen/files/tl2cpp/tl2cpp-utils.h" +#include "compiler/code-gen/includes.h" #include "compiler/code-gen/naming.h" #include "compiler/code-gen/raw-data.h" +#include "compiler/compiler-core.h" +#include "compiler/compiler-settings.h" +#include "compiler/data/data_ptr.h" +#include "compiler/kphp_assert.h" /* There are 3 important kinds of types (each with its own store and fetch methods): * 1) Function - an entry point for every TL query. We start de\serialization of every query from here. diff --git a/compiler/code-gen/files/tracing-autogen.cpp b/compiler/code-gen/files/tracing-autogen.cpp index 681be561a1..2a636b66b1 100644 --- a/compiler/code-gen/files/tracing-autogen.cpp +++ b/compiler/code-gen/files/tracing-autogen.cpp @@ -5,14 +5,22 @@ #include "compiler/code-gen/files/tracing-autogen.h" #include +#include +#include #include +#include +#include "common/wrappers/fmt_format.h" +#include "common/wrappers/string_view.h" #include "compiler/code-gen/code-generator.h" #include "compiler/code-gen/common.h" #include "compiler/code-gen/includes.h" #include "compiler/compiler-core.h" +#include "compiler/compiler-settings.h" #include "compiler/data/function-data.h" #include "compiler/data/kphp-tracing-tags.h" +#include "compiler/kphp_assert.h" +#include "compiler/utils/string-utils.h" std::vector TracingAutogen::all_with_aggregate; std::vector TracingAutogen::all_aggregate_names; diff --git a/compiler/code-gen/files/tracing-autogen.h b/compiler/code-gen/files/tracing-autogen.h index ea8b4ed35a..14f459767c 100644 --- a/compiler/code-gen/files/tracing-autogen.h +++ b/compiler/code-gen/files/tracing-autogen.h @@ -7,7 +7,9 @@ #include #include +#include "common/wrappers/string_view.h" #include "compiler/code-gen/code-gen-root-cmd.h" +#include "compiler/data/data_ptr.h" class CodeGenerator; class KphpTracingDeclarationMixin; diff --git a/compiler/code-gen/files/type-tagger.cpp b/compiler/code-gen/files/type-tagger.cpp index 581c2698a9..7f41d25c58 100644 --- a/compiler/code-gen/files/type-tagger.cpp +++ b/compiler/code-gen/files/type-tagger.cpp @@ -4,15 +4,22 @@ #include "compiler/code-gen/files/type-tagger.h" +#include +#include +#include #include #include +#include #include "common/algorithms/hashes.h" +#include "common/wrappers/fmt_format.h" #include "compiler/code-gen/code-generator.h" #include "compiler/code-gen/common.h" +#include "compiler/code-gen/gen-out-style.h" #include "compiler/code-gen/includes.h" #include "compiler/code-gen/naming.h" #include "compiler/compiler-core.h" +#include "compiler/compiler-settings.h" #include "compiler/inferring/type-data.h" #include "compiler/kphp_assert.h" diff --git a/compiler/code-gen/files/type-tagger.h b/compiler/code-gen/files/type-tagger.h index 2ba9fd0f82..a1aa790104 100644 --- a/compiler/code-gen/files/type-tagger.h +++ b/compiler/code-gen/files/type-tagger.h @@ -4,6 +4,7 @@ #pragma once +#include #include #include #include diff --git a/compiler/code-gen/includes.h b/compiler/code-gen/includes.h index 7ceafc099f..95ff85354b 100644 --- a/compiler/code-gen/includes.h +++ b/compiler/code-gen/includes.h @@ -10,15 +10,13 @@ #include #include +#include "common/wrappers/string_view.h" #include "compiler/code-gen/code-generator.h" #include "compiler/data/data_ptr.h" #include "compiler/data/vertex-adaptor.h" #include "compiler/inferring/type-data.h" -class CodeGenerator; -class TypeData; struct ExternInclude { - explicit ExternInclude(vk::string_view file_name); void compile(CodeGenerator& W) const; diff --git a/compiler/code-gen/raw-data.cpp b/compiler/code-gen/raw-data.cpp index b66bd1a4c8..fffb1112b4 100644 --- a/compiler/code-gen/raw-data.cpp +++ b/compiler/code-gen/raw-data.cpp @@ -4,8 +4,24 @@ #include "compiler/code-gen/raw-data.h" +#include +#include +#include +#include + +#include "auto/compiler/vertex/vertex-types.h" +#include "common/algorithms/find.h" #include "compiler/code-gen/vertex-compiler.h" #include "compiler/const-manipulations.h" +#include "compiler/data/var-data.h" +#include "compiler/data/vertex-adaptor.h" +#include "compiler/inferring/expr-node.h" +#include "compiler/inferring/primitive-type.h" +#include "compiler/inferring/type-data.h" +#include "compiler/stage.h" +#include "compiler/vertex-meta_op_base.h" +#include "compiler/vertex-util.h" +#include "compiler/vertex.h" void RawString::compile(CodeGenerator& W) const { W << "\""; diff --git a/compiler/code-gen/raw-data.h b/compiler/code-gen/raw-data.h index b1beb5012c..2246f3528c 100644 --- a/compiler/code-gen/raw-data.h +++ b/compiler/code-gen/raw-data.h @@ -4,13 +4,19 @@ #pragma once +#include #include +#include #include +#include #include "common/php-functions.h" +#include "common/wrappers/string_view.h" #include "compiler/code-gen/code-generator.h" #include "compiler/code-gen/common.h" +#include "compiler/data/data_ptr.h" #include "compiler/data/var-data.h" +#include "compiler/kphp_assert.h" #include "compiler/vertex.h" struct DepLevelContainer { diff --git a/compiler/code-gen/vertex-compiler.cpp b/compiler/code-gen/vertex-compiler.cpp index c9278f8ee9..ee9bd862a3 100644 --- a/compiler/code-gen/vertex-compiler.cpp +++ b/compiler/code-gen/vertex-compiler.cpp @@ -4,12 +4,31 @@ #include "compiler/code-gen/vertex-compiler.h" +#include +#include +#include +#include +#include +#include +#include #include +#include +#include +#include +#include +#include #include #include +#include +#include +#include +#include "common/algorithms/find.h" #include "common/containers/final_action.h" +#include "common/php-functions.h" #include "common/wrappers/field_getter.h" +#include "common/wrappers/fmt_format.h" +#include "common/wrappers/iterator_range.h" #include "common/wrappers/likely.h" #include "common/wrappers/string_view.h" #include "common/wrappers/to_underlying.h" @@ -22,6 +41,7 @@ #include "compiler/code-gen/naming.h" #include "compiler/code-gen/raw-data.h" #include "compiler/compiler-core.h" +#include "compiler/compiler-settings.h" #include "compiler/data/class-data.h" #include "compiler/data/data_ptr.h" #include "compiler/data/define-data.h" @@ -29,11 +49,18 @@ #include "compiler/data/function-data.h" #include "compiler/data/src-file.h" #include "compiler/data/var-data.h" +#include "compiler/ffi/ffi_types.h" +#include "compiler/inferring/expr-node.h" #include "compiler/inferring/primitive-type.h" #include "compiler/inferring/public.h" #include "compiler/inferring/type-data.h" +#include "compiler/kphp_assert.h" +#include "compiler/location.h" #include "compiler/name-gen.h" +#include "compiler/operation.h" +#include "compiler/stage.h" #include "compiler/type-hint.h" +#include "compiler/vertex-meta_op_base.h" #include "compiler/vertex-util.h" #include "compiler/vertex.h" diff --git a/compiler/code-gen/vertex-compiler.h b/compiler/code-gen/vertex-compiler.h index d1cbb28133..8b0a66602e 100644 --- a/compiler/code-gen/vertex-compiler.h +++ b/compiler/code-gen/vertex-compiler.h @@ -4,6 +4,7 @@ #pragma once +#include "auto/compiler/vertex/vertex-types.h" #include "compiler/code-gen/code-generator.h" #include "compiler/data/vertex-adaptor.h" diff --git a/compiler/code-gen/writer-data.cpp b/compiler/code-gen/writer-data.cpp index fcdd64273a..ff70245899 100644 --- a/compiler/code-gen/writer-data.cpp +++ b/compiler/code-gen/writer-data.cpp @@ -4,8 +4,16 @@ #include "compiler/code-gen/writer-data.h" +#include +#include +#include +#include +#include + #include "common/wrappers/fmt_format.h" +#include "common/wrappers/string_view.h" #include "compiler/data/src-file.h" +#include "compiler/kphp_assert.h" #include "compiler/stage.h" WriterData::WriterData(File* file, bool compile_with_crc) diff --git a/compiler/code-gen/writer-data.h b/compiler/code-gen/writer-data.h index 549fa2f6e0..fc68c711f0 100644 --- a/compiler/code-gen/writer-data.h +++ b/compiler/code-gen/writer-data.h @@ -4,6 +4,7 @@ #pragma once +#include #include #include #include diff --git a/compiler/compiler-core.cpp b/compiler/compiler-core.cpp index ff38c06f09..ce75891626 100644 --- a/compiler/compiler-core.cpp +++ b/compiler/compiler-core.cpp @@ -4,15 +4,26 @@ #include "compiler/compiler-core.h" +#include #include +#include #include +#include +#include #include +#include +#include +#include +#include +#include "auto/compiler/vertex/vertex-types.h" #include "common/algorithms/contains.h" #include "common/smart_ptrs/unique_ptr_with_delete_function.h" +#include "common/wrappers/fmt_format.h" #include "common/wrappers/mkdir_recursive.h" - +#include "compiler/compiler-settings.h" #include "compiler/const-manipulations.h" +#include "compiler/data/class-data.h" #include "compiler/data/composer-json-data.h" #include "compiler/data/define-data.h" #include "compiler/data/ffi-data.h" @@ -22,8 +33,17 @@ #include "compiler/data/src-dir.h" #include "compiler/data/src-file.h" #include "compiler/index.h" +#include "compiler/inferring/var-node.h" +#include "compiler/kphp_assert.h" +#include "compiler/location.h" #include "compiler/name-gen.h" #include "compiler/runtime_build_info.h" +#include "compiler/stage.h" +#include "compiler/threading/data-stream.h" +#include "compiler/threading/profiler.h" +#include "compiler/utils/string-utils.h" +#include "compiler/vertex-meta_op_base.h" +#include "compiler/vertex.h" namespace { diff --git a/compiler/compiler-core.h b/compiler/compiler-core.h index cdec4ceeba..bfdbb6d113 100644 --- a/compiler/compiler-core.h +++ b/compiler/compiler-core.h @@ -7,20 +7,29 @@ /*** Core ***/ //Consists mostly of functions that require synchronization +#include +#include #include +#include +#include +#include +#include #include #include "common/algorithms/hashes.h" - +#include "common/wrappers/string_view.h" #include "compiler/compiler-settings.h" #include "compiler/composer.h" #include "compiler/data/data_ptr.h" #include "compiler/data/ffi-data.h" +#include "compiler/data/var-data.h" +#include "compiler/data/vertex-adaptor.h" #include "compiler/function-colors.h" #include "compiler/index.h" #include "compiler/stats.h" #include "compiler/threading/data-stream.h" #include "compiler/threading/hash-table.h" +#include "compiler/threading/locks.h" #include "compiler/tl-classes.h" enum class OutputMode { diff --git a/compiler/compiler-settings.cpp b/compiler/compiler-settings.cpp index 282a11b5d9..2eab8d9f83 100644 --- a/compiler/compiler-settings.cpp +++ b/compiler/compiler-settings.cpp @@ -4,25 +4,33 @@ #include "compiler/compiler-settings.h" +#include +#include #include +#include +#include +#include #include +#include #include +#include #include #include -#include - -#include "openssl/sha.h" #include "common/algorithms/contains.h" #include "common/algorithms/find.h" +#include "common/algorithms/string-algorithms.h" +#include "common/functional/identity.h" #include "common/version-string.h" #include "common/wrappers/fmt_format.h" #include "common/wrappers/mkdir_recursive.h" +#include "common/wrappers/string_view.h" #include "common/wrappers/to_array.h" - +#include "compiler/kphp_assert.h" #include "compiler/stage.h" #include "compiler/threading/tls.h" #include "compiler/utils/string-utils.h" +#include "openssl/sha.h" void KphpRawOption::init(const char* env, std::string default_value, std::vector choices) noexcept { if (char* val = getenv(env)) { diff --git a/compiler/compiler-settings.h b/compiler/compiler-settings.h index 097210fcad..fc2aa2c635 100644 --- a/compiler/compiler-settings.h +++ b/compiler/compiler-settings.h @@ -6,8 +6,11 @@ #include #include +#include #include #include +#include +#include #include #include "common/mixin/not_copyable.h" diff --git a/compiler/compiler.cpp b/compiler/compiler.cpp index 043d1cfeed..293233bab2 100644 --- a/compiler/compiler.cpp +++ b/compiler/compiler.cpp @@ -4,27 +4,46 @@ #include "compiler/compiler.h" +#include +#include +#include +#include +#include +#include #include +#include #include #include #include #include #include #include +#include #include #include +#include #include +#include +#include +#include #include "common/algorithms/hashes.h" #include "common/crc32.h" #include "common/dl-utils-lite.h" +#include "common/smart_ptrs/singleton.h" #include "common/type_traits/function_traits.h" #include "common/version-string.h" - #include "compiler/compiler-core.h" +#include "compiler/compiler-settings.h" #include "compiler/cpp-dest-dir-initializer.h" +#include "compiler/data/data_ptr.h" +#include "compiler/function-pass.h" +#include "compiler/index.h" +#include "compiler/inferring/multi-key.h" +#include "compiler/inferring/type-data.h" #include "compiler/lexer.h" #include "compiler/make/make.h" +#include "compiler/operation.h" #include "compiler/pipes/analyze-performance.h" #include "compiler/pipes/analyzer.h" #include "compiler/pipes/array-access-transform.h" @@ -32,6 +51,7 @@ #include "compiler/pipes/calc-bad-vars.h" #include "compiler/pipes/calc-const-types.h" #include "compiler/pipes/calc-empty-functions.h" +#include "compiler/pipes/calc-func-dep.h" #include "compiler/pipes/calc-locations.h" #include "compiler/pipes/calc-real-defines-values.h" #include "compiler/pipes/calc-rl.h" @@ -94,9 +114,14 @@ #include "compiler/pipes/write-files.h" #include "compiler/scheduler/constructor.h" #include "compiler/scheduler/one-thread-scheduler.h" +#include "compiler/scheduler/pipe.h" #include "compiler/scheduler/pipe_with_progress.h" +#include "compiler/scheduler/scheduler-base.h" #include "compiler/scheduler/scheduler.h" #include "compiler/stage.h" +#include "compiler/stats.h" +#include "compiler/threading/data-stream.h" +#include "compiler/threading/profiler.h" class lockf_wrapper { std::string locked_filename_; diff --git a/compiler/composer.cpp b/compiler/composer.cpp index 25772b8e3b..ef38ea33dd 100644 --- a/compiler/composer.cpp +++ b/compiler/composer.cpp @@ -4,11 +4,17 @@ #include "compiler/composer.h" +#include +#include +#include +#include +#include + #include "common/algorithms/contains.h" #include "common/wrappers/fmt_format.h" - #include "compiler/compiler-core.h" #include "compiler/data/composer-json-data.h" +#include "compiler/data/data_ptr.h" #include "compiler/kphp_assert.h" static bool file_exists(const std::string& filename) { diff --git a/compiler/composer.h b/compiler/composer.h index 8c15366885..3ea7983783 100644 --- a/compiler/composer.h +++ b/compiler/composer.h @@ -4,6 +4,7 @@ #pragma once +#include #include #include #include diff --git a/compiler/cpp-dest-dir-initializer.h b/compiler/cpp-dest-dir-initializer.h index 0b452d02a8..52c63f70b1 100644 --- a/compiler/cpp-dest-dir-initializer.h +++ b/compiler/cpp-dest-dir-initializer.h @@ -4,8 +4,8 @@ #pragma once +#include #include -#include #include #include "common/mixin/not_copyable.h" diff --git a/compiler/data/class-data.cpp b/compiler/data/class-data.cpp index 780e433f1e..392686cd48 100644 --- a/compiler/data/class-data.cpp +++ b/compiler/data/class-data.cpp @@ -4,21 +4,35 @@ #include "compiler/data/class-data.h" +#include +#include +#include +#include #include #include #include "common/termformat/termformat.h" +#include "common/wrappers/fmt_format.h" #include "common/wrappers/string_view.h" - #include "compiler/compiler-core.h" +#include "compiler/data/class-member-modifiers.h" #include "compiler/data/define-data.h" #include "compiler/data/function-data.h" +#include "compiler/data/function-modifiers.h" #include "compiler/data/src-file.h" +#include "compiler/data/var-data.h" #include "compiler/inferring/type-data.h" +#include "compiler/inferring/var-node.h" +#include "compiler/kphp_assert.h" #include "compiler/name-gen.h" +#include "compiler/operation.h" +#include "compiler/phpdoc.h" +#include "compiler/threading/data-stream.h" #include "compiler/type-hint.h" #include "compiler/utils/string-utils.h" +#include "compiler/vertex-meta_op_base.h" #include "compiler/vertex-util.h" +#include "compiler/vertex.h" const char* ClassData::NAME_OF_VIRT_CLONE = "__virt_clone$"; const char* ClassData::NAME_OF_CLONE = "__clone"; diff --git a/compiler/data/class-data.h b/compiler/data/class-data.h index 051f1f3875..23f3e83fd6 100644 --- a/compiler/data/class-data.h +++ b/compiler/data/class-data.h @@ -4,14 +4,23 @@ #pragma once +#include #include #include #include +#include +#include +#include +#include +#include "auto/compiler/vertex/vertex-types.h" #include "common/algorithms/compare.h" #include "common/algorithms/hashes.h" +#include "common/wrappers/string_view.h" #include "compiler/data/class-members.h" #include "compiler/data/class-modifiers.h" +#include "compiler/data/data_ptr.h" +#include "compiler/data/vertex-adaptor.h" #include "compiler/debug.h" #include "compiler/ffi/ffi_types.h" #include "compiler/location.h" @@ -22,9 +31,13 @@ struct FFIClassDataMixin; struct FFIScopeDataMixin; +class PhpDocComment; +class TypeData; +class TypeHint; + namespace kphp_json { class KphpJsonTagList; -} +} // namespace kphp_json enum class SubtreeImmutableType { immutable, not_immutable, not_visited }; diff --git a/compiler/data/class-members.cpp b/compiler/data/class-members.cpp index 8f7054ee01..4c47b06ace 100644 --- a/compiler/data/class-members.cpp +++ b/compiler/data/class-members.cpp @@ -4,17 +4,25 @@ #include "compiler/data/class-members.h" +#include +#include +#include + #include "common/algorithms/contains.h" #include "common/algorithms/hashes.h" - +#include "common/wrappers/fmt_format.h" +#include "common/wrappers/iterator_range.h" #include "compiler/compiler-core.h" #include "compiler/data/class-data.h" #include "compiler/data/function-data.h" +#include "compiler/data/function-modifiers.h" #include "compiler/data/src-file.h" #include "compiler/data/var-data.h" #include "compiler/inferring/public.h" +#include "compiler/kphp_assert.h" #include "compiler/name-gen.h" #include "compiler/phpdoc.h" +#include "compiler/stage.h" #include "compiler/type-hint.h" #include "compiler/utils/string-utils.h" #include "compiler/vertex.h" diff --git a/compiler/data/class-members.h b/compiler/data/class-members.h index 462c8fd137..4fc9039a37 100644 --- a/compiler/data/class-members.h +++ b/compiler/data/class-members.h @@ -20,20 +20,28 @@ */ #pragma once +#include #include #include #include #include +#include #include +#include "auto/compiler/vertex/vertex-types.h" #include "common/type_traits/function_traits.h" - +#include "common/wrappers/string_view.h" +#include "compiler/data/class-member-modifiers.h" #include "compiler/data/data_ptr.h" #include "compiler/data/field-modifiers.h" #include "compiler/data/function-modifiers.h" #include "compiler/data/vertex-adaptor.h" class TypeData; +class ClassData; +class PhpDocComment; +class TypeHint; + class ClassMembersContainer; namespace kphp_json { class KphpJsonTagList; diff --git a/compiler/data/composer-json-data.cpp b/compiler/data/composer-json-data.cpp index 99908a3f13..0d7b05d040 100644 --- a/compiler/data/composer-json-data.cpp +++ b/compiler/data/composer-json-data.cpp @@ -4,11 +4,18 @@ #include "compiler/data/composer-json-data.h" -#include "yaml-cpp/yaml.h" +#include +#include +#include +#include +#include "common/wrappers/fmt_format.h" #include "compiler/compiler-core.h" #include "compiler/data/src-dir.h" #include "compiler/data/src-file.h" +#include "compiler/kphp_assert.h" +#include "compiler/stage.h" +#include "yaml-cpp/yaml.h" [[gnu::cold]] static void fire_json_error(ComposerJsonPtr inside_j, const std::string& reason, int line) { inside_j->json_file->load(); // load a file from disk, so that error message in console outputs a line diff --git a/compiler/data/ffi-data.h b/compiler/data/ffi-data.h index c95845b765..56c03573a2 100644 --- a/compiler/data/ffi-data.h +++ b/compiler/data/ffi-data.h @@ -16,6 +16,7 @@ #include #include "auto/compiler/vertex/vertex-types.h" +#include "common/wrappers/string_view.h" #include "compiler/data/class-data.h" #include "compiler/data/data_ptr.h" #include "compiler/ffi/ffi_types.h" diff --git a/compiler/data/function-data.cpp b/compiler/data/function-data.cpp index db22df3055..8d3e7a291f 100644 --- a/compiler/data/function-data.cpp +++ b/compiler/data/function-data.cpp @@ -4,9 +4,20 @@ #include "compiler/data/function-data.h" -#include "common/termformat/termformat.h" +#include +#include +#include +#include +#include +#include +#include #include "common/algorithms/contains.h" +#include "common/algorithms/string-algorithms.h" +#include "common/functional/identity.h" +#include "common/termformat/termformat.h" +#include "common/wrappers/fmt_format.h" +#include "common/wrappers/iterator_range.h" #include "compiler/compiler-core.h" #include "compiler/data/class-data.h" #include "compiler/data/generics-mixins.h" @@ -14,7 +25,13 @@ #include "compiler/data/src-file.h" #include "compiler/data/var-data.h" #include "compiler/inferring/public.h" +#include "compiler/kphp_assert.h" +#include "compiler/operation.h" +#include "compiler/stage.h" +#include "compiler/threading/data-stream.h" +#include "compiler/threading/profiler.h" #include "compiler/type-hint.h" +#include "compiler/utils/string-utils.h" #include "compiler/vertex.h" FunctionPtr FunctionData::create_function(std::string name, VertexAdaptor root, func_type_t type) { diff --git a/compiler/data/function-data.h b/compiler/data/function-data.h index b462798c87..f8cfe82e08 100644 --- a/compiler/data/function-data.h +++ b/compiler/data/function-data.h @@ -4,15 +4,23 @@ #pragma once +#include +#include +#include #include #include #include #include +#include +#include +#include +#include "auto/compiler/vertex/vertex-op_func_param_list.h" #include "auto/compiler/vertex/vertex-op_function.h" +#include "auto/compiler/vertex/vertex-types.h" #include "common/mixin/not_copyable.h" #include "common/wrappers/copyable-atomic.h" - +#include "common/wrappers/string_view.h" #include "compiler/class-assumptions.h" #include "compiler/data/class-members.h" #include "compiler/data/data_ptr.h" @@ -22,11 +30,15 @@ #include "compiler/debug.h" #include "compiler/function-colors.h" #include "compiler/inferring/var-node.h" +#include "compiler/location.h" #include "compiler/threading/data-stream.h" #include "compiler/vertex-meta_op_base.h" class GenericsDeclarationMixin; class KphpTracingDeclarationMixin; +class GenericsInstantiationMixin; +class PhpDocComment; +class TypeHint; class FunctionData { DEBUG_STRING_METHOD { diff --git a/compiler/data/generics-mixins.cpp b/compiler/data/generics-mixins.cpp index 5ce256dc3d..071fb8e802 100644 --- a/compiler/data/generics-mixins.cpp +++ b/compiler/data/generics-mixins.cpp @@ -4,12 +4,26 @@ #include "compiler/data/generics-mixins.h" +#include +#include +#include +#include + +#include "auto/compiler/vertex/vertex-types.h" +#include "common/algorithms/string-algorithms.h" +#include "common/wrappers/fmt_format.h" +#include "common/wrappers/string_view.h" #include "compiler/data/function-data.h" +#include "compiler/kphp_assert.h" #include "compiler/lexer.h" #include "compiler/name-gen.h" +#include "compiler/operation.h" #include "compiler/phpdoc.h" +#include "compiler/token.h" #include "compiler/type-hint.h" #include "compiler/utils/string-utils.h" +#include "compiler/vertex-meta_op_base.h" +#include "compiler/vertex.h" /* * Generic functions are functions marked with @kphp-generic, which expresses `f` with phpdoc at declaration. diff --git a/compiler/data/generics-mixins.h b/compiler/data/generics-mixins.h index 9840ac2844..5f3ef3f75a 100644 --- a/compiler/data/generics-mixins.h +++ b/compiler/data/generics-mixins.h @@ -4,14 +4,21 @@ #pragma once +#include #include +#include #include +#include #include #include "common/wrappers/string_view.h" #include "compiler/data/data_ptr.h" #include "compiler/data/vertex-adaptor.h" #include "compiler/debug.h" +#include "compiler/location.h" + +class PhpDocComment; +class TypeHint; // see the .cpp file for detailed comments of how do generics work diff --git a/compiler/data/kphp-json-tags.cpp b/compiler/data/kphp-json-tags.cpp index 33adde89de..317f1c858e 100644 --- a/compiler/data/kphp-json-tags.cpp +++ b/compiler/data/kphp-json-tags.cpp @@ -4,18 +4,34 @@ #include "compiler/data/kphp-json-tags.h" +#include #include - +#include +#include +#include +#include +#include +#include + +#include "auto/compiler/vertex/vertex-types.h" +#include "common/algorithms/compare.h" +#include "common/algorithms/find.h" +#include "common/algorithms/hashes.h" #include "common/algorithms/string-algorithms.h" #include "common/wrappers/fmt_format.h" - +#include "compiler/compiler-core.h" #include "compiler/data/class-data.h" +#include "compiler/data/class-members.h" +#include "compiler/data/field-modifiers.h" #include "compiler/data/var-data.h" +#include "compiler/data/vertex-adaptor.h" +#include "compiler/inferring/primitive-type.h" #include "compiler/kphp_assert.h" #include "compiler/name-gen.h" #include "compiler/phpdoc.h" #include "compiler/type-hint.h" #include "compiler/utils/string-utils.h" +#include "compiler/vertex-meta_op_base.h" /* * JsonEncoder::encode($obj) and JsonEncode::decode($json_str, Obj::class) are controlled by @kphp-json tags. diff --git a/compiler/data/kphp-json-tags.h b/compiler/data/kphp-json-tags.h index 9043828a74..59513451e3 100644 --- a/compiler/data/kphp-json-tags.h +++ b/compiler/data/kphp-json-tags.h @@ -11,6 +11,7 @@ #include "compiler/data/data_ptr.h" struct ClassMemberInstanceField; +class PhpDocComment; namespace kphp_json { diff --git a/compiler/data/kphp-tracing-tags.cpp b/compiler/data/kphp-tracing-tags.cpp index 6f32acf089..8135205c38 100644 --- a/compiler/data/kphp-tracing-tags.cpp +++ b/compiler/data/kphp-tracing-tags.cpp @@ -4,10 +4,16 @@ #include "compiler/data/kphp-tracing-tags.h" +#include +#include + #include "common/algorithms/string-algorithms.h" +#include "common/wrappers/fmt_format.h" #include "compiler/data/class-data.h" #include "compiler/data/function-data.h" #include "compiler/data/src-file.h" +#include "compiler/kphp_assert.h" +#include "compiler/stage.h" int KphpTracingDeclarationMixin::parse_level_attr(vk::string_view beg, size_t& pos_end) { int level = 0; diff --git a/compiler/data/kphp-tracing-tags.h b/compiler/data/kphp-tracing-tags.h index 10a0a5a9a7..94038a59e6 100644 --- a/compiler/data/kphp-tracing-tags.h +++ b/compiler/data/kphp-tracing-tags.h @@ -4,8 +4,10 @@ #pragma once +#include #include #include +#include #include "common/wrappers/string_view.h" #include "compiler/data/data_ptr.h" diff --git a/compiler/data/modulite-data.cpp b/compiler/data/modulite-data.cpp index dcf37e84cd..1842e8a056 100644 --- a/compiler/data/modulite-data.cpp +++ b/compiler/data/modulite-data.cpp @@ -4,18 +4,28 @@ #include "compiler/data/modulite-data.h" -#include "yaml-cpp/yaml.h" +#include +#include +#include +#include "common/algorithms/compare.h" #include "common/algorithms/contains.h" +#include "common/termformat/termformat.h" +#include "common/wrappers/fmt_format.h" #include "common/wrappers/likely.h" - #include "compiler/compiler-core.h" +#include "compiler/data/class-data.h" +#include "compiler/data/class-members.h" #include "compiler/data/composer-json-data.h" #include "compiler/data/define-data.h" #include "compiler/data/function-data.h" #include "compiler/data/src-dir.h" #include "compiler/data/src-file.h" #include "compiler/data/var-data.h" +#include "compiler/kphp_assert.h" +#include "compiler/stage.h" +#include "compiler/utils/string-utils.h" +#include "yaml-cpp/yaml.h" /* * Modulite is a conception of isolating parts of code. diff --git a/compiler/data/modulite-data.h b/compiler/data/modulite-data.h index 2bdf727bd0..ba862ac291 100644 --- a/compiler/data/modulite-data.h +++ b/compiler/data/modulite-data.h @@ -6,10 +6,10 @@ #include #include +#include #include #include "common/wrappers/string_view.h" - #include "compiler/data/data_ptr.h" #include "compiler/debug.h" diff --git a/compiler/data/src-file.cpp b/compiler/data/src-file.cpp index fe6d491551..08168d8261 100644 --- a/compiler/data/src-file.cpp +++ b/compiler/data/src-file.cpp @@ -4,16 +4,23 @@ #include "compiler/data/src-file.h" +#include +#include +#include #include +#include #include #include #include #include "auto/compiler/vertex/vertex-all.h" +#include "auto/compiler/vertex/vertex-types.h" +#include "common/wrappers/fmt_format.h" #include "common/wrappers/likely.h" - #include "compiler/compiler-core.h" #include "compiler/data/lib-data.h" +#include "compiler/kphp_assert.h" +#include "compiler/operation.h" #include "compiler/stage.h" bool SrcFile::load() { diff --git a/compiler/data/src-file.h b/compiler/data/src-file.h index 99bfbeaedb..8e0e13ea49 100644 --- a/compiler/data/src-file.h +++ b/compiler/data/src-file.h @@ -5,9 +5,11 @@ #pragma once #include +#include +#include +#include #include "common/wrappers/string_view.h" - #include "compiler/data/data_ptr.h" #include "compiler/data/vertex-adaptor.h" #include "compiler/debug.h" diff --git a/compiler/data/var-data.h b/compiler/data/var-data.h index 996fdb088d..a1ac95d06f 100644 --- a/compiler/data/var-data.h +++ b/compiler/data/var-data.h @@ -14,8 +14,6 @@ #include "compiler/debug.h" #include "compiler/inferring/var-node.h" -struct ClassMemberInstanceField; -struct ClassMemberStaticField; class VarData { DEBUG_STRING_METHOD { diff --git a/compiler/debug.cpp b/compiler/debug.cpp index 2199cc6701..734dec6959 100644 --- a/compiler/debug.cpp +++ b/compiler/debug.cpp @@ -4,14 +4,28 @@ #include "compiler/debug.h" +#include +#include +#include +#include #include +#include +#include "auto/compiler/vertex/vertex-types.h" #include "common/wrappers/to_array.h" #include "compiler/compiler-core.h" #include "compiler/data/class-data.h" +#include "compiler/data/data_ptr.h" #include "compiler/data/function-data.h" #include "compiler/data/src-file.h" +#include "compiler/data/vertex-adaptor.h" +#include "compiler/kphp_assert.h" +#include "compiler/operation.h" +#include "compiler/stage.h" +#include "compiler/token.h" #include "compiler/type-hint.h" +#include "compiler/utils/string-utils.h" +#include "compiler/vertex-meta_op_base.h" #include "compiler/vertex.h" static std::map OPERATION_NAMES; diff --git a/compiler/debug.h b/compiler/debug.h index 5497175a88..2eb5afa07a 100644 --- a/compiler/debug.h +++ b/compiler/debug.h @@ -4,6 +4,8 @@ #pragma once +#include + // using this macro inside a class: DEBUG_STRING_METHOD { ... cpp code ...; return std::string } // that code is also embedded into a release binary, we decided not to do anything about it #define DEBUG_STRING_METHOD std::string _debug_string() const __attribute__((used)) diff --git a/compiler/ffi/c_parser/c.y b/compiler/ffi/c_parser/c.y index 6530418034..899f3d899e 100644 --- a/compiler/ffi/c_parser/c.y +++ b/compiler/ffi/c_parser/c.y @@ -21,10 +21,10 @@ %code requires { + #include #include #include #include - #include #include "compiler/ffi/ffi_types.h" #include "compiler/ffi/c_parser/location.h" diff --git a/compiler/ffi/c_parser/location.h b/compiler/ffi/c_parser/location.h index eb298d185e..a9221fb6bd 100644 --- a/compiler/ffi/c_parser/location.h +++ b/compiler/ffi/c_parser/location.h @@ -4,7 +4,7 @@ #pragma once -#include +#include namespace ffi { diff --git a/compiler/ffi/c_parser/parsing_driver.cpp b/compiler/ffi/c_parser/parsing_driver.cpp index 00f0e691a9..46450c1d73 100644 --- a/compiler/ffi/c_parser/parsing_driver.cpp +++ b/compiler/ffi/c_parser/parsing_driver.cpp @@ -6,7 +6,7 @@ #include #include -#include +#include #include #include diff --git a/compiler/ffi/c_parser/parsing_driver.h b/compiler/ffi/c_parser/parsing_driver.h index 872bc9fac9..f53f3a82ea 100644 --- a/compiler/ffi/c_parser/parsing_driver.h +++ b/compiler/ffi/c_parser/parsing_driver.h @@ -4,9 +4,9 @@ #pragma once +#include #include #include -#include #include #include #include diff --git a/compiler/ffi/ffi_parser.cpp b/compiler/ffi/ffi_parser.cpp index db1a52d1b0..235f54a667 100644 --- a/compiler/ffi/ffi_parser.cpp +++ b/compiler/ffi/ffi_parser.cpp @@ -5,8 +5,8 @@ #include "compiler/ffi/ffi_parser.h" #include +#include #include -#include #include "compiler/compiler-core.h" #include "compiler/compiler-settings.h" diff --git a/compiler/ffi/ffi_parser.h b/compiler/ffi/ffi_parser.h index 60cfff6447..76b5af7219 100644 --- a/compiler/ffi/ffi_parser.h +++ b/compiler/ffi/ffi_parser.h @@ -4,9 +4,9 @@ #pragma once +#include +#include #include -#include -#include #include #include #include diff --git a/compiler/function-colors.h b/compiler/function-colors.h index e34533b51d..115fad5203 100644 --- a/compiler/function-colors.h +++ b/compiler/function-colors.h @@ -5,9 +5,9 @@ #pragma once #include +#include #include #include -#include #include #include #include diff --git a/compiler/generics-reification.cpp b/compiler/generics-reification.cpp index 67d09052c6..65c5175f48 100644 --- a/compiler/generics-reification.cpp +++ b/compiler/generics-reification.cpp @@ -4,12 +4,37 @@ #include "compiler/generics-reification.h" +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "common/termformat/termformat.h" +#include "common/wrappers/fmt_format.h" +#include "common/wrappers/iterator_range.h" +#include "compiler/class-assumptions.h" +#include "compiler/compiler-core.h" +#include "compiler/data/class-data.h" #include "compiler/data/function-data.h" #include "compiler/data/generics-mixins.h" +#include "compiler/data/vertex-adaptor.h" #include "compiler/function-pass.h" +#include "compiler/inferring/primitive-type.h" +#include "compiler/kphp_assert.h" +#include "compiler/location.h" +#include "compiler/operation.h" #include "compiler/phpdoc.h" +#include "compiler/stage.h" #include "compiler/type-hint.h" +#include "compiler/vertex-meta_op_base.h" #include "compiler/vertex-util.h" +#include "compiler/vertex.h" /* * The word "reification" means deducing generic T to instantiate generic functions/classes. diff --git a/compiler/generics-reification.h b/compiler/generics-reification.h index 8b45b028c4..fefe8823b1 100644 --- a/compiler/generics-reification.h +++ b/compiler/generics-reification.h @@ -4,10 +4,12 @@ #pragma once +#include "auto/compiler/vertex/vertex-types.h" #include "compiler/data/data_ptr.h" #include "compiler/vertex.h" class GenericsDeclarationMixin; +class GenericsInstantiationPhpComment; void apply_instantiationTs_from_php_comment(FunctionPtr generic_function, VertexAdaptor call, const GenericsInstantiationPhpComment* commentTs); void reify_function_genericTs_on_generic_func_call(FunctionPtr current_function, FunctionPtr generic_function, VertexAdaptor call, diff --git a/compiler/gentree.cpp b/compiler/gentree.cpp index 1f4bf19f52..64d81889ee 100644 --- a/compiler/gentree.cpp +++ b/compiler/gentree.cpp @@ -4,24 +4,44 @@ #include "compiler/gentree.h" +#include #include +#include +#include +#include +#include +#include +#include +#include +#include +#include #include "common/algorithms/contains.h" #include "common/algorithms/find.h" - #include "common/php-functions.h" +#include "common/wrappers/fmt_format.h" +#include "common/wrappers/iterator_range.h" #include "compiler/compiler-core.h" +#include "compiler/compiler-settings.h" #include "compiler/data/class-data.h" +#include "compiler/data/class-members.h" +#include "compiler/data/class-modifiers.h" #include "compiler/data/define-data.h" +#include "compiler/data/field-modifiers.h" #include "compiler/data/function-data.h" #include "compiler/data/generics-mixins.h" #include "compiler/data/lib-data.h" #include "compiler/data/src-file.h" +#include "compiler/inferring/primitive-type.h" +#include "compiler/kphp_assert.h" #include "compiler/lambda-utils.h" #include "compiler/lexer.h" #include "compiler/name-gen.h" +#include "compiler/operation.h" #include "compiler/phpdoc.h" #include "compiler/stage.h" +#include "compiler/stats.h" +#include "compiler/threading/data-stream.h" #include "compiler/type-hint.h" #include "compiler/utils/string-utils.h" #include "compiler/vertex-util.h" diff --git a/compiler/gentree.h b/compiler/gentree.h index 0d13897cc9..1175fd5d60 100644 --- a/compiler/gentree.h +++ b/compiler/gentree.h @@ -4,18 +4,33 @@ #pragma once +#include #include +#include #include +#include "auto/compiler/vertex/vertex-types.h" +#include "common/type_traits/function_traits.h" +#include "common/wrappers/string_view.h" #include "compiler/compiler-core.h" #include "compiler/data/class-data.h" #include "compiler/data/class-member-modifiers.h" +#include "compiler/data/data_ptr.h" #include "compiler/data/field-modifiers.h" #include "compiler/data/function-modifiers.h" +#include "compiler/data/vertex-adaptor.h" +#include "compiler/location.h" #include "compiler/operation.h" #include "compiler/token.h" +#include "compiler/vertex-meta_op_base.h" #include "compiler/vertex.h" +class GenericsInstantiationPhpComment; +class PhpDocComment; +class TypeHint; +template +class DataStream; + class GenTree { template diff --git a/compiler/index.cpp b/compiler/index.cpp index bc417c8132..19493687ac 100644 --- a/compiler/index.cpp +++ b/compiler/index.cpp @@ -4,17 +4,27 @@ #include "compiler/index.h" +#include #include +#include +#include +#include +#include #include +#include #include +#include #include +#include +#include #include "common/containers/final_action.h" #include "common/macos-ports.h" +#include "common/wrappers/fmt_format.h" #include "common/wrappers/mkdir_recursive.h" -#include "compiler/kphp_assert.h" - #include "compiler/compiler-core.h" +#include "compiler/compiler-settings.h" +#include "compiler/kphp_assert.h" #include "compiler/stage.h" #include "compiler/utils/string-utils.h" diff --git a/compiler/index.h b/compiler/index.h index d61123d2cd..0d401e01d1 100644 --- a/compiler/index.h +++ b/compiler/index.h @@ -4,6 +4,7 @@ #pragma once +#include #include #include #include @@ -11,6 +12,7 @@ #include #include #include +#include #include #include "common/wrappers/iterator_range.h" diff --git a/compiler/inferring/expr-node.cpp b/compiler/inferring/expr-node.cpp index 9044238cc0..c07e3d32c0 100644 --- a/compiler/inferring/expr-node.cpp +++ b/compiler/inferring/expr-node.cpp @@ -4,16 +4,36 @@ #include "compiler/inferring/expr-node.h" -#include "common/php-functions.h" +#include +#include +#include +#include "auto/compiler/vertex/vertex-types.h" +#include "common/algorithms/find.h" +#include "common/php-functions.h" +#include "common/wrappers/iterator_range.h" #include "compiler/compiler-core.h" +#include "compiler/data/class-data.h" +#include "compiler/data/data_ptr.h" #include "compiler/data/define-data.h" #include "compiler/data/function-data.h" #include "compiler/data/var-data.h" #include "compiler/inferring/edge.h" +#include "compiler/inferring/key.h" +#include "compiler/inferring/multi-key.h" #include "compiler/inferring/node-recalc.h" +#include "compiler/inferring/primitive-type.h" +#include "compiler/inferring/public.h" +#include "compiler/inferring/rvalue.h" +#include "compiler/inferring/type-data.h" +#include "compiler/inferring/type-inferer.h" +#include "compiler/location.h" +#include "compiler/operation.h" +#include "compiler/stage.h" #include "compiler/type-hint.h" +#include "compiler/vertex-meta_op_base.h" #include "compiler/vertex-util.h" +#include "compiler/vertex.h" class ExprNodeRecalc : public NodeRecalc { private: diff --git a/compiler/inferring/expr-node.h b/compiler/inferring/expr-node.h index 3834e13cd0..1fb716f769 100644 --- a/compiler/inferring/expr-node.h +++ b/compiler/inferring/expr-node.h @@ -4,11 +4,17 @@ #pragma once +#include + #include "compiler/data/vertex-adaptor.h" #include "compiler/inferring/node.h" #include "compiler/stage.h" +class Location; +class TypeData; + namespace tinf { +class TypeInferer; class ExprNode : public Node { private: diff --git a/compiler/inferring/ifi.cpp b/compiler/inferring/ifi.cpp index 7d66478210..14ef7fb4a4 100644 --- a/compiler/inferring/ifi.cpp +++ b/compiler/inferring/ifi.cpp @@ -4,8 +4,14 @@ #include "compiler/inferring/ifi.h" +#include + +#include "auto/compiler/vertex/vertex-types.h" +#include "common/algorithms/find.h" +#include "compiler/data/data_ptr.h" #include "compiler/data/function-data.h" #include "compiler/data/var-data.h" +#include "compiler/vertex-meta_op_base.h" #include "compiler/vertex-util.h" #include "compiler/vertex.h" diff --git a/compiler/inferring/key.cpp b/compiler/inferring/key.cpp index 15f64d3d87..8f12c14ed7 100644 --- a/compiler/inferring/key.cpp +++ b/compiler/inferring/key.cpp @@ -4,11 +4,14 @@ #include "compiler/inferring/key.h" +#include + #include "common/algorithms/hashes.h" #include "common/wrappers/fmt_format.h" - +#include "compiler/kphp_assert.h" #include "compiler/stage.h" #include "compiler/threading/hash-table.h" +#include "compiler/threading/locks.h" static TSHashTable int_keys_ht; static TSHashTable string_keys_ht; diff --git a/compiler/inferring/lvalue.cpp b/compiler/inferring/lvalue.cpp index 225f78f3b6..056085913c 100644 --- a/compiler/inferring/lvalue.cpp +++ b/compiler/inferring/lvalue.cpp @@ -4,8 +4,16 @@ #include "compiler/inferring/lvalue.h" -#include "common/algorithms/find.h" +#include +#include "auto/compiler/vertex/vertex-types.h" +#include "common/algorithms/find.h" +#include "common/wrappers/fmt_format.h" +#include "compiler/inferring/node.h" +#include "compiler/kphp_assert.h" +#include "compiler/operation.h" +#include "compiler/stage.h" +#include "compiler/vertex-meta_op_base.h" #include "compiler/vertex.h" LValue as_lvalue(VertexPtr v) { diff --git a/compiler/inferring/lvalue.h b/compiler/inferring/lvalue.h index 6065946785..9ab21045f2 100644 --- a/compiler/inferring/lvalue.h +++ b/compiler/inferring/lvalue.h @@ -4,6 +4,9 @@ #pragma once +#include "compiler/data/data_ptr.h" +#include "compiler/data/vertex-adaptor.h" +#include "compiler/inferring/multi-key.h" #include "compiler/inferring/node.h" #include "compiler/inferring/public.h" diff --git a/compiler/inferring/node-recalc.cpp b/compiler/inferring/node-recalc.cpp index ea7619c41b..1f71931626 100644 --- a/compiler/inferring/node-recalc.cpp +++ b/compiler/inferring/node-recalc.cpp @@ -4,13 +4,26 @@ #include "compiler/inferring/node-recalc.h" +#include +#include +#include +#include + +#include "common/algorithms/find.h" #include "common/termformat/termformat.h" +#include "common/wrappers/fmt_format.h" #include "common/wrappers/likely.h" - #include "compiler/data/class-data.h" #include "compiler/inferring/edge.h" +#include "compiler/inferring/key.h" +#include "compiler/inferring/multi-key.h" +#include "compiler/inferring/node.h" +#include "compiler/inferring/rvalue.h" +#include "compiler/inferring/type-data.h" #include "compiler/inferring/type-inferer.h" +#include "compiler/kphp_assert.h" #include "compiler/stage.h" +#include "compiler/threading/locks.h" // this callback is invoked immediately when new_type_ has become tp_Error during recalculation // by default, we try to detect the reason and print it out diff --git a/compiler/inferring/node-recalc.h b/compiler/inferring/node-recalc.h index b499a1d433..50cc24f142 100644 --- a/compiler/inferring/node-recalc.h +++ b/compiler/inferring/node-recalc.h @@ -4,9 +4,18 @@ #pragma once +#include "compiler/data/data_ptr.h" +#include "compiler/data/vertex-adaptor.h" #include "compiler/inferring/node.h" +#include "compiler/inferring/primitive-type.h" #include "compiler/inferring/rvalue.h" +class MultiKey; +class TypeData; +namespace tinf { +class TypeInferer; +} // namespace tinf + class NodeRecalc { protected: TypeData* new_type_; diff --git a/compiler/inferring/node.cpp b/compiler/inferring/node.cpp index 174a4aeaae..3b7ac0c8a8 100644 --- a/compiler/inferring/node.cpp +++ b/compiler/inferring/node.cpp @@ -4,7 +4,7 @@ #include "compiler/inferring/node.h" -#include +#include #include "compiler/inferring/type-data.h" #include "compiler/kphp_assert.h" diff --git a/compiler/inferring/node.h b/compiler/inferring/node.h index bf33d274bb..e76950bf0d 100644 --- a/compiler/inferring/node.h +++ b/compiler/inferring/node.h @@ -13,8 +13,6 @@ #include "compiler/location.h" #include "compiler/threading/locks.h" -class Location; - namespace tinf { class Edge; diff --git a/compiler/inferring/public.h b/compiler/inferring/public.h index dc02b5d0cb..155541e8da 100644 --- a/compiler/inferring/public.h +++ b/compiler/inferring/public.h @@ -10,8 +10,6 @@ #include "compiler/inferring/type-data.h" #include "compiler/inferring/type-inferer.h" -class TypeData; - namespace tinf { tinf::Node* get_tinf_node(VertexPtr vertex); diff --git a/compiler/inferring/restriction-isset.cpp b/compiler/inferring/restriction-isset.cpp index bb5400961a..7455fa5cd4 100644 --- a/compiler/inferring/restriction-isset.cpp +++ b/compiler/inferring/restriction-isset.cpp @@ -4,14 +4,26 @@ #include "compiler/inferring/restriction-isset.h" +#include + +#include "auto/compiler/vertex/vertex-types.h" +#include "common/algorithms/find.h" +#include "compiler/data/data_ptr.h" #include "compiler/data/function-data.h" #include "compiler/data/var-data.h" +#include "compiler/data/vertex-adaptor.h" #include "compiler/inferring/edge.h" #include "compiler/inferring/expr-node.h" #include "compiler/inferring/ifi.h" +#include "compiler/inferring/multi-key.h" +#include "compiler/inferring/node.h" +#include "compiler/inferring/primitive-type.h" #include "compiler/inferring/public.h" +#include "compiler/inferring/type-data.h" #include "compiler/inferring/type-node.h" #include "compiler/inferring/var-node.h" +#include "compiler/stage.h" +#include "compiler/vertex-meta_op_base.h" #include "compiler/vertex.h" RestrictionIsset::RestrictionIsset(tinf::Node* a) diff --git a/compiler/inferring/restriction-isset.h b/compiler/inferring/restriction-isset.h index 37c0b93bc1..b4c1b78036 100644 --- a/compiler/inferring/restriction-isset.h +++ b/compiler/inferring/restriction-isset.h @@ -4,9 +4,14 @@ #pragma once +#include +#include + #include "compiler/inferring/node.h" #include "compiler/inferring/restriction-base.h" +class TypeData; + class RestrictionIsset : public tinf::RestrictionBase { tinf::Node* a_; std::string desc; diff --git a/compiler/inferring/restriction-match-phpdoc.h b/compiler/inferring/restriction-match-phpdoc.h index 2039333634..3707961734 100644 --- a/compiler/inferring/restriction-match-phpdoc.h +++ b/compiler/inferring/restriction-match-phpdoc.h @@ -11,6 +11,10 @@ #include "compiler/inferring/var-node.h" class TypeData; +namespace tinf { +class Node; +} // namespace tinf + class RestrictionMatchPhpdoc : public tinf::RestrictionBase { tinf::VarNode* restricted_node; diff --git a/compiler/inferring/restriction-stacktrace-finder.cpp b/compiler/inferring/restriction-stacktrace-finder.cpp index 7279b3a199..b1390a09ec 100644 --- a/compiler/inferring/restriction-stacktrace-finder.cpp +++ b/compiler/inferring/restriction-stacktrace-finder.cpp @@ -4,17 +4,33 @@ #include "compiler/inferring/restriction-stacktrace-finder.h" +#include +#include +#include + +#include "auto/compiler/vertex/vertex-types.h" #include "common/algorithms/contains.h" #include "common/algorithms/string-algorithms.h" #include "common/termformat/termformat.h" - +#include "common/wrappers/iterator_range.h" +#include "common/wrappers/string_view.h" #include "compiler/data/function-data.h" #include "compiler/data/src-file.h" +#include "compiler/data/var-data.h" +#include "compiler/data/vertex-adaptor.h" #include "compiler/inferring/edge.h" +#include "compiler/inferring/expr-node.h" +#include "compiler/inferring/node.h" #include "compiler/inferring/public.h" +#include "compiler/inferring/type-data.h" #include "compiler/inferring/type-node.h" #include "compiler/inferring/var-node.h" +#include "compiler/kphp_assert.h" +#include "compiler/location.h" +#include "compiler/operation.h" +#include "compiler/stage.h" #include "compiler/type-hint.h" +#include "compiler/vertex-meta_op_base.h" #include "compiler/vertex-util.h" #include "compiler/vertex.h" diff --git a/compiler/inferring/restriction-stacktrace-finder.h b/compiler/inferring/restriction-stacktrace-finder.h index a606f2f0fa..cfd4032ce5 100644 --- a/compiler/inferring/restriction-stacktrace-finder.h +++ b/compiler/inferring/restriction-stacktrace-finder.h @@ -4,10 +4,19 @@ #pragma once +#include +#include + +#include "compiler/data/data_ptr.h" #include "compiler/inferring/multi-key.h" #include "compiler/inferring/node.h" #include "compiler/inferring/restriction-base.h" +class TypeData; +namespace tinf { +class Edge; +} // namespace tinf + class RestrictionStacktraceFinder { static const unsigned long max_cnt_nodes_in_path = 50; diff --git a/compiler/inferring/type-data.cpp b/compiler/inferring/type-data.cpp index b27362cc23..461c5b6747 100644 --- a/compiler/inferring/type-data.cpp +++ b/compiler/inferring/type-data.cpp @@ -4,18 +4,27 @@ #include "compiler/inferring/type-data.h" +#include +#include +#include +#include +#include #include #include #include "common/algorithms/compare.h" #include "common/algorithms/contains.h" +#include "common/algorithms/find.h" +#include "common/algorithms/string-algorithms.h" #include "common/php-functions.h" #include "common/termformat/termformat.h" - +#include "common/wrappers/fmt_format.h" #include "compiler/code-gen/common.h" #include "compiler/compiler-core.h" #include "compiler/data/class-data.h" #include "compiler/data/ffi-data.h" +#include "compiler/ffi/ffi_types.h" +#include "compiler/inferring/multi-key.h" #include "compiler/inferring/primitive-type.h" #include "compiler/kphp_assert.h" #include "compiler/pipes/collect-main-edges.h" diff --git a/compiler/inferring/type-data.h b/compiler/inferring/type-data.h index 520f7eba86..70bf85b0f7 100644 --- a/compiler/inferring/type-data.h +++ b/compiler/inferring/type-data.h @@ -4,9 +4,13 @@ #pragma once +#include +#include #include #include #include +#include +#include #include "compiler/code-gen/gen-out-style.h" #include "compiler/data/data_ptr.h" @@ -14,6 +18,7 @@ #include "compiler/inferring/key.h" #include "compiler/inferring/multi-key.h" #include "compiler/inferring/primitive-type.h" +#include "compiler/kphp_assert.h" #include "compiler/stage.h" #include "compiler/threading/tls.h" diff --git a/compiler/inferring/type-hint-recalc.cpp b/compiler/inferring/type-hint-recalc.cpp index ef1ad1de2c..b8aa239911 100644 --- a/compiler/inferring/type-hint-recalc.cpp +++ b/compiler/inferring/type-hint-recalc.cpp @@ -2,11 +2,38 @@ // Copyright (c) 2020 LLC «V Kontakte» // Distributed under the GPL v3 License, see LICENSE.notice.txt -#include "compiler/type-hint.h" - +#include +#include +#include +#include +#include +#include +#include +#include + +#include "auto/compiler/vertex/vertex-types.h" +#include "common/algorithms/find.h" +#include "common/wrappers/fmt_format.h" +#include "common/wrappers/iterator_range.h" +#include "compiler/compiler-core.h" +#include "compiler/data/class-data.h" +#include "compiler/data/data_ptr.h" +#include "compiler/data/ffi-data.h" #include "compiler/data/function-data.h" +#include "compiler/data/vertex-adaptor.h" +#include "compiler/ffi/ffi_types.h" +#include "compiler/inferring/expr-node.h" +#include "compiler/inferring/key.h" +#include "compiler/inferring/multi-key.h" +#include "compiler/inferring/primitive-type.h" #include "compiler/inferring/public.h" +#include "compiler/inferring/type-data.h" +#include "compiler/kphp_assert.h" +#include "compiler/stage.h" +#include "compiler/type-hint.h" +#include "compiler/vertex-meta_op_base.h" #include "compiler/vertex-util.h" +#include "compiler/vertex.h" // recalc_type_data_in_context_of_call() from type-hint.h for all ancestors // they are implemented in a separate .cpp file to leave type-hint.cpp more clear, as recalculation is a separate inferring part diff --git a/compiler/inferring/type-inferer.h b/compiler/inferring/type-inferer.h index 8382415932..7cbc84d758 100644 --- a/compiler/inferring/type-inferer.h +++ b/compiler/inferring/type-inferer.h @@ -12,9 +12,8 @@ #include "compiler/scheduler/task.h" #include "compiler/threading/tls.h" -class Task; - namespace tinf { +class Edge; using NodeQueue = std::queue; diff --git a/compiler/inferring/type-node.h b/compiler/inferring/type-node.h index 8431247ff4..0aab9cd7ab 100644 --- a/compiler/inferring/type-node.h +++ b/compiler/inferring/type-node.h @@ -13,6 +13,7 @@ class TypeData; namespace tinf { +class TypeInferer; class TypeNode : public Node { Location location_; diff --git a/compiler/inferring/var-node.cpp b/compiler/inferring/var-node.cpp index 1a25d631da..06bb9d934c 100644 --- a/compiler/inferring/var-node.cpp +++ b/compiler/inferring/var-node.cpp @@ -4,11 +4,28 @@ #include "compiler/inferring/var-node.h" +#include +#include +#include +#include +#include + +#include "auto/compiler/vertex/vertex-op_function.h" +#include "common/wrappers/fmt_format.h" #include "compiler/data/function-data.h" #include "compiler/data/var-data.h" +#include "compiler/data/vertex-adaptor.h" #include "compiler/inferring/edge.h" #include "compiler/inferring/node-recalc.h" +#include "compiler/inferring/public.h" #include "compiler/inferring/restriction-match-phpdoc.h" +#include "compiler/inferring/rvalue.h" +#include "compiler/inferring/type-data.h" +#include "compiler/inferring/type-inferer.h" +#include "compiler/kphp_assert.h" +#include "compiler/location.h" +#include "compiler/stage.h" +#include "compiler/vertex-meta_op_base.h" #include "compiler/vertex.h" class VarNodeRecalc : public NodeRecalc { diff --git a/compiler/inferring/var-node.h b/compiler/inferring/var-node.h index 82a31066d2..ec82fd3631 100644 --- a/compiler/inferring/var-node.h +++ b/compiler/inferring/var-node.h @@ -4,10 +4,16 @@ #pragma once +#include + #include "compiler/data/data_ptr.h" #include "compiler/inferring/node.h" +class Location; +class TypeData; + namespace tinf { +class TypeInferer; class VarNode : public Node { public: diff --git a/compiler/kphp2cpp.cpp b/compiler/kphp2cpp.cpp index 552091d68b..73aadf441c 100644 --- a/compiler/kphp2cpp.cpp +++ b/compiler/kphp2cpp.cpp @@ -2,18 +2,30 @@ // Copyright (c) 2020 LLC «V Kontakte» // Distributed under the GPL v3 License, see LICENSE.notice.txt +#include +#include +#include +#include +#include #include +#include #include +#include +#include +#include #include +#include +#include #include "common/algorithms/string-algorithms.h" +#include "common/functional/identity.h" +#include "common/mixin/not_copyable.h" #include "common/options.h" #include "common/sanitizer.h" #include "common/server/limits.h" #include "common/server/signals.h" #include "common/version-string.h" #include "common/wrappers/string_view.h" - #include "compiler/compiler-settings.h" #include "compiler/compiler.h" #include "compiler/threading/tls.h" diff --git a/compiler/lambda-utils.cpp b/compiler/lambda-utils.cpp index 7083c6cb76..107018e572 100644 --- a/compiler/lambda-utils.cpp +++ b/compiler/lambda-utils.cpp @@ -4,14 +4,38 @@ #include "compiler/lambda-utils.h" +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "common/wrappers/fmt_format.h" +#include "common/wrappers/iterator_range.h" +#include "compiler/class-assumptions.h" #include "compiler/compiler-core.h" #include "compiler/data/class-data.h" +#include "compiler/data/class-members.h" +#include "compiler/data/class-modifiers.h" +#include "compiler/data/field-modifiers.h" #include "compiler/data/function-data.h" +#include "compiler/data/function-modifiers.h" #include "compiler/data/src-file.h" +#include "compiler/data/var-data.h" #include "compiler/gentree.h" +#include "compiler/kphp_assert.h" +#include "compiler/location.h" #include "compiler/name-gen.h" +#include "compiler/operation.h" +#include "compiler/stats.h" +#include "compiler/threading/locks.h" #include "compiler/type-hint.h" #include "compiler/utils/string-utils.h" +#include "compiler/vertex-meta_op_base.h" #include "compiler/vertex-util.h" #include "compiler/vertex.h" diff --git a/compiler/lambda-utils.h b/compiler/lambda-utils.h index 7bc36c4e77..f3501ebc4e 100644 --- a/compiler/lambda-utils.h +++ b/compiler/lambda-utils.h @@ -4,11 +4,16 @@ #pragma once +#include + +#include "auto/compiler/vertex/vertex-types.h" #include "compiler/data/data_ptr.h" #include "compiler/data/vertex-adaptor.h" #include "compiler/threading/data-stream.h" #include "compiler/vertex.h" +class TypeHint; + // see the .cpp file for detailed comments of how do lambdas work void auto_capture_vars_from_body_in_arrow_lambda(FunctionPtr f_lambda); diff --git a/compiler/lexer.cpp b/compiler/lexer.cpp index a9fd14fcef..aa4031aac5 100644 --- a/compiler/lexer.cpp +++ b/compiler/lexer.cpp @@ -4,18 +4,24 @@ #include "compiler/lexer.h" +#include +#include +#include +#include +#include #include #include #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wregister" #include "auto/compiler/keywords_set.hpp" +#include "compiler/kphp_assert.h" +#include "compiler/utils/string-utils.h" #pragma GCC diagnostic pop #include "common/algorithms/find.h" #include "common/smart_ptrs/singleton.h" #include "common/wrappers/fmt_format.h" - #include "compiler/stage.h" #include "compiler/threading/thread-id.h" diff --git a/compiler/lexer.h b/compiler/lexer.h index 62040597e1..ac01d309d1 100644 --- a/compiler/lexer.h +++ b/compiler/lexer.h @@ -4,12 +4,15 @@ #pragma once +#include +#include #include +#include #include +#include "common/mixin/not_copyable.h" #include "common/smart_ptrs/singleton.h" #include "common/wrappers/string_view.h" - #include "compiler/helper.h" #include "compiler/token.h" #include "compiler/utils/string-utils.h" diff --git a/compiler/make/hardlink-or-copy.cpp b/compiler/make/hardlink-or-copy.cpp index ee51692c0d..c9a265ed40 100644 --- a/compiler/make/hardlink-or-copy.cpp +++ b/compiler/make/hardlink-or-copy.cpp @@ -4,15 +4,19 @@ #include "compiler/make/hardlink-or-copy.h" +#include +#include #include -#include #include +#include +#include #include +#include #include "common/algorithms/find.h" #include "common/macos-ports.h" - #include "common/wrappers/fmt_format.h" +#include "compiler/kphp_assert.h" #include "compiler/stage.h" static void hard_link_or_copy_impl(const std::string& from, const std::string& to, bool replace, bool allow_copy) noexcept { diff --git a/compiler/make/make-runner.cpp b/compiler/make/make-runner.cpp index 78ba732f89..3567f9480b 100644 --- a/compiler/make/make-runner.cpp +++ b/compiler/make/make-runner.cpp @@ -4,11 +4,20 @@ #include "compiler/make/make-runner.h" +#include +#include +#include +#include +#include +#include +#include #include +#include +#include #include "common/dl-utils-lite.h" #include "common/server/signals.h" - +#include "common/wrappers/fmt_format.h" #include "compiler/compiler-core.h" #include "compiler/utils/string-utils.h" diff --git a/compiler/make/make-runner.h b/compiler/make/make-runner.h index fda1c30a17..8ccc106398 100644 --- a/compiler/make/make-runner.h +++ b/compiler/make/make-runner.h @@ -4,11 +4,13 @@ #pragma once +#include #include #include +#include +#include #include "common/mixin/not_copyable.h" - #include "compiler/make/target.h" class MakeRunner : private vk::not_copyable { diff --git a/compiler/make/make.cpp b/compiler/make/make.cpp index a57ff15a0b..55e5dc1369 100644 --- a/compiler/make/make.cpp +++ b/compiler/make/make.cpp @@ -4,24 +4,46 @@ #include "compiler/make/make.h" +#include +#include +#include +#include +#include +#include #include +#include #include #include +#include +#include +#include +#include #include +#include +#include #include #include #include #include +#include +#include +#include "common/algorithms/contains.h" +#include "common/algorithms/find.h" #include "common/algorithms/hashes.h" +#include "common/exit-codes.h" +#include "common/wrappers/fmt_format.h" #include "common/wrappers/likely.h" #include "common/wrappers/mkdir_recursive.h" #include "common/wrappers/pathname.h" - +#include "common/wrappers/string_view.h" #include "compiler/compiler-core.h" +#include "compiler/compiler-settings.h" +#include "compiler/data/data_ptr.h" #include "compiler/data/ffi-data.h" #include "compiler/data/lib-data.h" #include "compiler/index.h" +#include "compiler/kphp_assert.h" #include "compiler/make/cpp-to-obj-target.h" #include "compiler/make/file-target.h" #include "compiler/make/h-to-pch-target.h" @@ -32,8 +54,10 @@ #include "compiler/make/objs-to-obj-target.h" #include "compiler/make/objs-to-static-lib-target.h" #include "compiler/make/runtime-src-to-obj-target.h" +#include "compiler/make/target.h" #include "compiler/runtime_build_info.h" #include "compiler/stage.h" +#include "compiler/stats.h" #include "compiler/threading/profiler.h" class MakeSetup { diff --git a/compiler/make/target.cpp b/compiler/make/target.cpp index ed778e69e5..5ab531a78f 100644 --- a/compiler/make/target.cpp +++ b/compiler/make/target.cpp @@ -5,9 +5,11 @@ #include "compiler/make/target.h" #include +#include #include #include "common/wrappers/fmt_format.h" +#include "compiler/index.h" void Target::set_mtime(long long new_mtime) { assert(mtime == 0); diff --git a/compiler/make/target.h b/compiler/make/target.h index cc5b533204..aac0a3ff94 100644 --- a/compiler/make/target.h +++ b/compiler/make/target.h @@ -8,7 +8,6 @@ #include #include "common/mixin/not_copyable.h" - #include "compiler/index.h" class CompilerSettings; diff --git a/compiler/modulite-check-rules.cpp b/compiler/modulite-check-rules.cpp index 644c149573..73be87b062 100644 --- a/compiler/modulite-check-rules.cpp +++ b/compiler/modulite-check-rules.cpp @@ -4,11 +4,23 @@ #include "compiler/modulite-check-rules.h" -#include "common/algorithms/contains.h" +#include +#include +#include +#include "common/algorithms/compare.h" +#include "common/algorithms/contains.h" +#include "common/termformat/termformat.h" +#include "common/wrappers/fmt_format.h" +#include "common/wrappers/string_view.h" #include "compiler/compiler-core.h" +#include "compiler/data/class-data.h" #include "compiler/data/define-data.h" #include "compiler/data/function-data.h" +#include "compiler/data/function-modifiers.h" +#include "compiler/data/modulite-data.h" +#include "compiler/data/var-data.h" +#include "compiler/kphp_assert.h" /* * Modulite is a conception of isolating parts of code. Read `modulite-data.cpp` for a brief description. diff --git a/compiler/modulite-check-rules.h b/compiler/modulite-check-rules.h index 522068a14b..6316cbc088 100644 --- a/compiler/modulite-check-rules.h +++ b/compiler/modulite-check-rules.h @@ -4,6 +4,8 @@ #pragma once +#include + #include "compiler/data/data_ptr.h" #include "compiler/data/modulite-data.h" diff --git a/compiler/name-gen.cpp b/compiler/name-gen.cpp index 4b8ae56eab..90076e8f1e 100644 --- a/compiler/name-gen.cpp +++ b/compiler/name-gen.cpp @@ -4,16 +4,31 @@ #include "compiler/name-gen.h" +#include +#include +#include +#include +#include + +#include "auto/compiler/vertex/vertex-types.h" #include "common/algorithms/hashes.h" +#include "common/wrappers/fmt_format.h" #include "common/wrappers/likely.h" - +#include "common/wrappers/string_view.h" +#include "compiler/class-assumptions.h" #include "compiler/compiler-core.h" #include "compiler/const-manipulations.h" #include "compiler/data/class-data.h" +#include "compiler/data/class-members.h" +#include "compiler/data/function-data.h" #include "compiler/data/src-file.h" +#include "compiler/kphp_assert.h" #include "compiler/pipes/register-variables.h" #include "compiler/stage.h" #include "compiler/type-hint.h" +#include "compiler/utils/string-utils.h" +#include "compiler/vertex-meta_op_base.h" +#include "compiler/vertex.h" std::string gen_anonymous_scope_name(FunctionPtr function) { return gen_unique_name("cdef", function); diff --git a/compiler/operation.cpp b/compiler/operation.cpp index 1f3bdb72cb..599ccacc4b 100644 --- a/compiler/operation.cpp +++ b/compiler/operation.cpp @@ -8,6 +8,7 @@ #include #include +#include "compiler/data/vertex-adaptor.h" #include "compiler/vertex.h" inline void OpInfo::add_binary_op(int priority, TokenType tok, Operation op) { diff --git a/compiler/phpdoc.cpp b/compiler/phpdoc.cpp index 32ac4c5c30..75e4282218 100644 --- a/compiler/phpdoc.cpp +++ b/compiler/phpdoc.cpp @@ -4,24 +4,39 @@ #include "compiler/phpdoc.h" +#include +#include #include +#include +#include +#include #include +#include "auto/compiler/vertex/vertex-types.h" +#include "common/algorithms/find.h" #include "common/php-functions.h" #include "common/termformat/termformat.h" - +#include "common/wrappers/fmt_format.h" #include "compiler/compiler-core.h" +#include "compiler/compiler-settings.h" +#include "compiler/data/class-data.h" +#include "compiler/data/ffi-data.h" #include "compiler/data/function-data.h" #include "compiler/data/generics-mixins.h" #include "compiler/data/src-file.h" #include "compiler/ffi/ffi_parser.h" +#include "compiler/ffi/ffi_types.h" +#include "compiler/inferring/primitive-type.h" +#include "compiler/kphp_assert.h" #include "compiler/lexer.h" #include "compiler/modulite-check-rules.h" #include "compiler/name-gen.h" #include "compiler/stage.h" #include "compiler/type-hint.h" #include "compiler/utils/string-utils.h" +#include "compiler/vertex-meta_op_base.h" #include "compiler/vertex-util.h" +#include "compiler/vertex.h" static constexpr unsigned int calcHashOfTagName(const char* start, const char* end) { unsigned int hash = 5381; diff --git a/compiler/phpdoc.h b/compiler/phpdoc.h index ced07d3908..b5fc4ebc33 100644 --- a/compiler/phpdoc.h +++ b/compiler/phpdoc.h @@ -8,8 +8,13 @@ #include #include +#include "common/wrappers/string_view.h" #include "compiler/data/data_ptr.h" #include "compiler/data/vertex-adaptor.h" +#include "compiler/token.h" + +class GenericsInstantiationMixin; +class TypeHint; enum class PhpDocType { unknown, diff --git a/compiler/pipes/analyze-performance.cpp b/compiler/pipes/analyze-performance.cpp index 6ca295c6a7..064cd97633 100644 --- a/compiler/pipes/analyze-performance.cpp +++ b/compiler/pipes/analyze-performance.cpp @@ -3,15 +3,38 @@ // Distributed under the GPL v3 License, see LICENSE.notice.txt #include "compiler/pipes/analyze-performance.h" +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "common/algorithms/compare.h" +#include "common/algorithms/find.h" #include "common/algorithms/sorting.h" #include "common/algorithms/string-algorithms.h" +#include "common/smart_ptrs/singleton.h" #include "common/termformat/termformat.h" +#include "common/wrappers/fmt_format.h" +#include "common/wrappers/iterator_range.h" +#include "common/wrappers/string_view.h" #include "common/wrappers/to_array.h" - #include "compiler/compiler-core.h" #include "compiler/data/src-file.h" +#include "compiler/data/var-data.h" +#include "compiler/inferring/primitive-type.h" #include "compiler/inferring/public.h" +#include "compiler/inferring/type-data.h" +#include "compiler/kphp_assert.h" +#include "compiler/operation.h" +#include "compiler/stage.h" +#include "compiler/vertex-meta_op_base.h" #include "compiler/vertex-util.h" +#include "compiler/vertex.h" namespace { diff --git a/compiler/pipes/analyze-performance.h b/compiler/pipes/analyze-performance.h index 28835da44b..12b594ea80 100644 --- a/compiler/pipes/analyze-performance.h +++ b/compiler/pipes/analyze-performance.h @@ -4,10 +4,25 @@ #pragma once +#include +#include +#include +#include +#include +#include +#include + +#include "auto/compiler/vertex/vertex-types.h" +#include "common/mixin/not_copyable.h" #include "common/smart_ptrs/singleton.h" - +#include "compiler/data/data_ptr.h" +#include "compiler/data/function-data.h" +#include "compiler/data/performance-inspections.h" +#include "compiler/data/vertex-adaptor.h" #include "compiler/function-pass.h" +class TypeData; + class AnalyzePerformance final : public FunctionPassBase { public: std::string get_description() final { diff --git a/compiler/pipes/analyzer.cpp b/compiler/pipes/analyzer.cpp index 1c0dc5e576..ef0a734b42 100644 --- a/compiler/pipes/analyzer.cpp +++ b/compiler/pipes/analyzer.cpp @@ -4,14 +4,33 @@ #include "compiler/pipes/analyzer.h" -#include "common/algorithms/string-algorithms.h" +#include +#include +#include +#include +#include +#include +#include +#include "common/algorithms/find.h" +#include "common/algorithms/string-algorithms.h" +#include "common/functional/identity.h" +#include "common/wrappers/fmt_format.h" #include "compiler/compiler-core.h" #include "compiler/data/class-data.h" +#include "compiler/data/class-members.h" #include "compiler/data/define-data.h" #include "compiler/data/var-data.h" +#include "compiler/inferring/primitive-type.h" #include "compiler/inferring/public.h" +#include "compiler/inferring/type-data.h" +#include "compiler/kphp_assert.h" +#include "compiler/operation.h" +#include "compiler/stage.h" +#include "compiler/stats.h" #include "compiler/utils/string-utils.h" +#include "compiler/vertex-meta_op_base.h" +#include "compiler/vertex.h" namespace { diff --git a/compiler/pipes/analyzer.h b/compiler/pipes/analyzer.h index 5ceedea144..8884facae7 100644 --- a/compiler/pipes/analyzer.h +++ b/compiler/pipes/analyzer.h @@ -4,6 +4,12 @@ #pragma once +#include + +#include "auto/compiler/vertex/vertex-types.h" +#include "compiler/data/data_ptr.h" +#include "compiler/data/function-data.h" +#include "compiler/data/vertex-adaptor.h" #include "compiler/function-pass.h" class CommonAnalyzerPass final : public FunctionPassBase { diff --git a/compiler/pipes/array-access-transform.cpp b/compiler/pipes/array-access-transform.cpp index 4a1bb10c7c..576fe3c300 100644 --- a/compiler/pipes/array-access-transform.cpp +++ b/compiler/pipes/array-access-transform.cpp @@ -4,14 +4,27 @@ #include "compiler/pipes/array-access-transform.h" +#include +#include +#include + +#include "auto/compiler/vertex/vertex-types.h" #include "common/algorithms/contains.h" +#include "common/wrappers/fmt_format.h" +#include "common/wrappers/iterator_range.h" #include "compiler/compiler-core.h" #include "compiler/data/class-data.h" +#include "compiler/data/class-members.h" #include "compiler/data/data_ptr.h" +#include "compiler/data/function-data.h" #include "compiler/data/vertex-adaptor.h" +#include "compiler/inferring/expr-node.h" #include "compiler/inferring/primitive-type.h" #include "compiler/inferring/public.h" #include "compiler/inferring/type-data.h" +#include "compiler/kphp_assert.h" +#include "compiler/vertex-meta_op_base.h" +#include "compiler/vertex.h" namespace { diff --git a/compiler/pipes/array-access-transform.h b/compiler/pipes/array-access-transform.h index 30cf807a31..7905dfc429 100644 --- a/compiler/pipes/array-access-transform.h +++ b/compiler/pipes/array-access-transform.h @@ -4,6 +4,9 @@ #pragma once +#include + +#include "compiler/data/vertex-adaptor.h" #include "compiler/function-pass.h" class ArrayAccessTransformPass final : public FunctionPassBase { diff --git a/compiler/pipes/calc-actual-edges.cpp b/compiler/pipes/calc-actual-edges.cpp index 57bc254edd..f8d4238b0d 100644 --- a/compiler/pipes/calc-actual-edges.cpp +++ b/compiler/pipes/calc-actual-edges.cpp @@ -4,10 +4,19 @@ #include "compiler/pipes/calc-actual-edges.h" +#include +#include +#include + +#include "common/wrappers/iterator_range.h" #include "compiler/compiler-core.h" #include "compiler/data/class-data.h" +#include "compiler/data/function-data.h" #include "compiler/function-pass.h" #include "compiler/inferring/public.h" +#include "compiler/location.h" +#include "compiler/vertex-meta_op_base.h" +#include "compiler/vertex.h" // handle_exception reports whether a thrown_class will be caught by any of the given try blocks; // try_stack should contain the innermost try block in its end. diff --git a/compiler/pipes/calc-actual-edges.h b/compiler/pipes/calc-actual-edges.h index 2b45f40c44..1943942e3a 100644 --- a/compiler/pipes/calc-actual-edges.h +++ b/compiler/pipes/calc-actual-edges.h @@ -5,7 +5,12 @@ #pragma once #include +#include +#include +#include "auto/compiler/vertex/vertex-types.h" +#include "compiler/data/data_ptr.h" +#include "compiler/data/vertex-adaptor.h" #include "compiler/function-pass.h" #include "compiler/threading/data-stream.h" diff --git a/compiler/pipes/calc-bad-vars.cpp b/compiler/pipes/calc-bad-vars.cpp index 3ba1c68451..6b736f57eb 100644 --- a/compiler/pipes/calc-bad-vars.cpp +++ b/compiler/pipes/calc-bad-vars.cpp @@ -5,17 +5,39 @@ #include "compiler/pipes/calc-bad-vars.h" #include +#include +#include +#include +#include +#include #include +#include +#include +#include #include #include +#include "auto/compiler/vertex/vertex-op_function.h" +#include "common/algorithms/compare.h" +#include "common/algorithms/string-algorithms.h" +#include "common/functional/identity.h" +#include "common/termformat/termformat.h" +#include "common/wrappers/fmt_format.h" +#include "common/wrappers/likely.h" #include "compiler/compiler-core.h" +#include "compiler/compiler-settings.h" #include "compiler/data/class-data.h" #include "compiler/data/data_ptr.h" +#include "compiler/data/function-data.h" #include "compiler/data/src-file.h" +#include "compiler/data/var-data.h" +#include "compiler/data/vertex-adaptor.h" +#include "compiler/function-colors.h" #include "compiler/function-pass.h" #include "compiler/kphp_assert.h" #include "compiler/pipes/calc-func-dep.h" +#include "compiler/stage.h" +#include "compiler/threading/data-stream.h" #include "compiler/utils/idmap.h" /*** Common algorithm ***/ diff --git a/compiler/pipes/calc-bad-vars.h b/compiler/pipes/calc-bad-vars.h index 756ae63809..72b5adcf0c 100644 --- a/compiler/pipes/calc-bad-vars.h +++ b/compiler/pipes/calc-bad-vars.h @@ -4,6 +4,8 @@ #pragma once +#include + #include "compiler/data/data_ptr.h" #include "compiler/pipes/calc-func-dep.h" #include "compiler/pipes/sync.h" diff --git a/compiler/pipes/calc-const-types.cpp b/compiler/pipes/calc-const-types.cpp index 406acdfd12..83b05f5d98 100644 --- a/compiler/pipes/calc-const-types.cpp +++ b/compiler/pipes/calc-const-types.cpp @@ -4,10 +4,22 @@ #include "compiler/pipes/calc-const-types.h" +#include +#include + +#include "auto/compiler/vertex/vertex-types.h" +#include "common/algorithms/compare.h" +#include "common/wrappers/fmt_format.h" #include "common/wrappers/to_underlying.h" #include "compiler/data/class-data.h" +#include "compiler/data/class-members.h" +#include "compiler/data/function-data.h" #include "compiler/data/src-file.h" #include "compiler/data/var-data.h" +#include "compiler/kphp_assert.h" +#include "compiler/operation.h" +#include "compiler/vertex-meta_op_base.h" +#include "compiler/vertex.h" void CalcConstTypePass::on_start() { if (current_function->type == FunctionData::func_class_holder) { diff --git a/compiler/pipes/calc-const-types.h b/compiler/pipes/calc-const-types.h index 6de2cd26c3..b30bdeee6e 100644 --- a/compiler/pipes/calc-const-types.h +++ b/compiler/pipes/calc-const-types.h @@ -4,6 +4,10 @@ #pragma once +#include + +#include "compiler/data/data_ptr.h" +#include "compiler/data/vertex-adaptor.h" #include "compiler/function-pass.h" /*** Calculate const_type for all nodes ***/ diff --git a/compiler/pipes/calc-empty-functions.cpp b/compiler/pipes/calc-empty-functions.cpp index b90aeb6f2d..d286bc5f2d 100644 --- a/compiler/pipes/calc-empty-functions.cpp +++ b/compiler/pipes/calc-empty-functions.cpp @@ -4,9 +4,19 @@ #include "compiler/pipes/calc-empty-functions.h" +#include +#include + +#include "auto/compiler/vertex/vertex-types.h" #include "compiler/compiler-core.h" #include "compiler/data/function-data.h" #include "compiler/data/src-file.h" +#include "compiler/data/vertex-adaptor.h" +#include "compiler/kphp_assert.h" +#include "compiler/stage.h" +#include "compiler/threading/data-stream.h" +#include "compiler/vertex-meta_op_base.h" +#include "compiler/vertex.h" namespace { diff --git a/compiler/pipes/calc-func-dep.cpp b/compiler/pipes/calc-func-dep.cpp index 6fe12c7a4e..bb8a5227b8 100644 --- a/compiler/pipes/calc-func-dep.cpp +++ b/compiler/pipes/calc-func-dep.cpp @@ -4,10 +4,20 @@ #include "compiler/pipes/calc-func-dep.h" +#include +#include + #include "auto/compiler/vertex/vertex-types.h" +#include "common/algorithms/find.h" +#include "common/wrappers/iterator_range.h" #include "compiler/data/class-data.h" #include "compiler/data/var-data.h" +#include "compiler/inferring/primitive-type.h" #include "compiler/inferring/public.h" +#include "compiler/inferring/type-data.h" +#include "compiler/kphp_assert.h" +#include "compiler/operation.h" +#include "compiler/vertex-meta_op_base.h" #include "compiler/vertex.h" VertexPtr CalcFuncDepPass::on_enter_vertex(VertexPtr vertex) { diff --git a/compiler/pipes/calc-func-dep.h b/compiler/pipes/calc-func-dep.h index d322863dc7..6e99748c27 100644 --- a/compiler/pipes/calc-func-dep.h +++ b/compiler/pipes/calc-func-dep.h @@ -4,11 +4,16 @@ #pragma once +#include #include +#include +#include #include #include "common/mixin/movable_only.h" - +#include "compiler/data/data_ptr.h" +#include "compiler/data/function-data.h" +#include "compiler/data/vertex-adaptor.h" #include "compiler/function-pass.h" struct DepData : private vk::movable_only { diff --git a/compiler/pipes/calc-real-defines-values.cpp b/compiler/pipes/calc-real-defines-values.cpp index af94d5ee13..df5e2d9332 100644 --- a/compiler/pipes/calc-real-defines-values.cpp +++ b/compiler/pipes/calc-real-defines-values.cpp @@ -4,12 +4,30 @@ #include "compiler/pipes/calc-real-defines-values.h" +#include +#include +#include + +#include "auto/compiler/vertex/vertex-types.h" #include "common/version-string.h" +#include "common/wrappers/fmt_format.h" #include "common/wrappers/likely.h" - +#include "compiler/compiler-core.h" +#include "compiler/compiler-settings.h" +#include "compiler/data/class-data.h" +#include "compiler/data/define-data.h" +#include "compiler/data/function-data.h" +#include "compiler/data/function-modifiers.h" #include "compiler/data/src-dir.h" #include "compiler/data/src-file.h" +#include "compiler/kphp_assert.h" #include "compiler/modulite-check-rules.h" +#include "compiler/name-gen.h" +#include "compiler/operation.h" +#include "compiler/stage.h" +#include "compiler/threading/data-stream.h" +#include "compiler/vertex-meta_op_base.h" +#include "compiler/vertex.h" /* * This is a sync point needed for two things. diff --git a/compiler/pipes/calc-real-defines-values.h b/compiler/pipes/calc-real-defines-values.h index dc4acb1590..acf8e05f51 100644 --- a/compiler/pipes/calc-real-defines-values.h +++ b/compiler/pipes/calc-real-defines-values.h @@ -4,12 +4,21 @@ #pragma once +#include +#include #include +#include +#include #include "compiler/const-manipulations.h" +#include "compiler/data/data_ptr.h" +#include "compiler/data/vertex-adaptor.h" #include "compiler/pipes/sync.h" #include "compiler/vertex.h" +template +class DataStream; + class CalcRealDefinesAndAssignModulitesF final : public SyncPipeF { private: using Base = SyncPipeF; diff --git a/compiler/pipes/calc-rl.cpp b/compiler/pipes/calc-rl.cpp index 2d584b917f..5a3ab16476 100644 --- a/compiler/pipes/calc-rl.cpp +++ b/compiler/pipes/calc-rl.cpp @@ -4,8 +4,23 @@ #include "compiler/pipes/calc-rl.h" +#include +#include +#include +#include + +#include "auto/compiler/vertex/vertex-types.h" +#include "common/algorithms/find.h" +#include "common/wrappers/fmt_format.h" +#include "common/wrappers/iterator_range.h" #include "compiler/data/function-data.h" +#include "compiler/data/vertex-adaptor.h" +#include "compiler/kphp_assert.h" +#include "compiler/operation.h" +#include "compiler/stage.h" +#include "compiler/threading/data-stream.h" #include "compiler/type-hint.h" +#include "compiler/vertex-meta_op_base.h" #include "compiler/vertex.h" void rl_calc(VertexPtr root, RLValueType expected_rl_type); diff --git a/compiler/pipes/cfg-end.cpp b/compiler/pipes/cfg-end.cpp index 5f7070cd28..3aae88eb46 100644 --- a/compiler/pipes/cfg-end.cpp +++ b/compiler/pipes/cfg-end.cpp @@ -4,10 +4,30 @@ #include "compiler/pipes/cfg-end.h" +#include +#include +#include +#include +#include +#include +#include + +#include "auto/compiler/vertex/vertex-op_var.h" +#include "auto/compiler/vertex/vertex-types.h" +#include "common/wrappers/fmt_format.h" +#include "compiler/code-gen/gen-out-style.h" #include "compiler/compiler-core.h" #include "compiler/data/function-data.h" #include "compiler/data/var-data.h" +#include "compiler/data/vertex-adaptor.h" +#include "compiler/inferring/primitive-type.h" #include "compiler/inferring/public.h" +#include "compiler/inferring/type-data.h" +#include "compiler/inferring/var-node.h" +#include "compiler/kphp_assert.h" +#include "compiler/pipes/function-and-cfg.h" +#include "compiler/stage.h" +#include "compiler/threading/data-stream.h" #include "compiler/vertex.h" struct MergeData { diff --git a/compiler/pipes/check-abstract-function-defaults.cpp b/compiler/pipes/check-abstract-function-defaults.cpp index 34ee9e4f76..aa63176950 100644 --- a/compiler/pipes/check-abstract-function-defaults.cpp +++ b/compiler/pipes/check-abstract-function-defaults.cpp @@ -4,12 +4,27 @@ #include "compiler/pipes/check-abstract-function-defaults.h" +#include +#include + +#include "auto/compiler/vertex/vertex-op_func_param.h" +#include "auto/compiler/vertex/vertex-types.h" #include "common/containers/final_action.h" #include "common/termformat/termformat.h" - +#include "common/wrappers/fmt_format.h" +#include "common/wrappers/iterator_range.h" +#include "compiler/const-manipulations.h" #include "compiler/data/class-data.h" +#include "compiler/data/class-members.h" #include "compiler/data/function-data.h" +#include "compiler/data/function-modifiers.h" +#include "compiler/data/vertex-adaptor.h" +#include "compiler/kphp_assert.h" #include "compiler/pipes/calc-real-defines-values.h" +#include "compiler/stage.h" +#include "compiler/threading/data-stream.h" +#include "compiler/vertex-meta_op_base.h" +#include "compiler/vertex-util.h" void CheckAbstractFunctionDefaults::execute(FunctionPtr interface_function, DataStream& os) { stage::set_function(interface_function); diff --git a/compiler/pipes/check-access-modifiers.cpp b/compiler/pipes/check-access-modifiers.cpp index 91cb4897b7..95b59640e2 100644 --- a/compiler/pipes/check-access-modifiers.cpp +++ b/compiler/pipes/check-access-modifiers.cpp @@ -4,8 +4,15 @@ #include "compiler/pipes/check-access-modifiers.h" +#include "auto/compiler/vertex/vertex-types.h" +#include "common/wrappers/string_view.h" #include "compiler/compiler-core.h" #include "compiler/data/class-data.h" +#include "compiler/data/class-members.h" +#include "compiler/data/function-modifiers.h" +#include "compiler/data/var-data.h" +#include "compiler/stage.h" +#include "compiler/vertex.h" void CheckAccessModifiersPass::on_start() { lambda_class_id = current_function->get_this_or_topmost_if_lambda()->class_id; diff --git a/compiler/pipes/check-access-modifiers.h b/compiler/pipes/check-access-modifiers.h index 6a3f1008af..ea90e3db94 100644 --- a/compiler/pipes/check-access-modifiers.h +++ b/compiler/pipes/check-access-modifiers.h @@ -4,9 +4,17 @@ #pragma once +#include +#include + +#include "common/wrappers/fmt_format.h" #include "compiler/data/class-data.h" #include "compiler/data/class-member-modifiers.h" +#include "compiler/data/data_ptr.h" +#include "compiler/data/function-data.h" +#include "compiler/data/vertex-adaptor.h" #include "compiler/function-pass.h" +#include "compiler/kphp_assert.h" class CheckAccessModifiersPass final : public FunctionPassBase { private: diff --git a/compiler/pipes/check-classes.cpp b/compiler/pipes/check-classes.cpp index 6aedff9ae0..cbb4d7b591 100644 --- a/compiler/pipes/check-classes.cpp +++ b/compiler/pipes/check-classes.cpp @@ -4,16 +4,37 @@ #include "compiler/pipes/check-classes.h" +#include +#include +#include +#include +#include +#include +#include +#include + +#include "auto/compiler/vertex/vertex-op_var.h" +#include "auto/compiler/vertex/vertex-types.h" +#include "common/algorithms/find.h" +#include "common/algorithms/string-algorithms.h" #include "common/termformat/termformat.h" - +#include "common/wrappers/fmt_format.h" +#include "common/wrappers/string_view.h" #include "compiler/compiler-core.h" #include "compiler/data/class-data.h" +#include "compiler/data/class-members.h" #include "compiler/data/function-data.h" #include "compiler/data/src-file.h" #include "compiler/data/var-data.h" +#include "compiler/inferring/expr-node.h" +#include "compiler/inferring/primitive-type.h" #include "compiler/inferring/public.h" #include "compiler/inferring/type-data.h" +#include "compiler/inferring/var-node.h" +#include "compiler/kphp_assert.h" #include "compiler/phpdoc.h" +#include "compiler/utils/string-utils.h" +#include "compiler/vertex-meta_op_base.h" VertexPtr CheckClassesPass::on_enter_vertex(VertexPtr root) { const auto* type_data = root->tinf_node.get_type(); diff --git a/compiler/pipes/check-classes.h b/compiler/pipes/check-classes.h index 1c3a8a2833..45c0d3d4f7 100644 --- a/compiler/pipes/check-classes.h +++ b/compiler/pipes/check-classes.h @@ -4,7 +4,13 @@ #pragma once +#include +#include +#include +#include + #include "compiler/data/data_ptr.h" +#include "compiler/data/vertex-adaptor.h" #include "compiler/function-pass.h" #include "compiler/threading/data-stream.h" diff --git a/compiler/pipes/check-conversions.cpp b/compiler/pipes/check-conversions.cpp index 54ebbe849c..06b8fd15a5 100644 --- a/compiler/pipes/check-conversions.cpp +++ b/compiler/pipes/check-conversions.cpp @@ -4,7 +4,18 @@ #include "compiler/pipes/check-conversions.h" +#include +#include +#include + +#include "auto/compiler/vertex/vertex-meta_op_unary.h" +#include "common/termformat/termformat.h" +#include "common/wrappers/fmt_format.h" #include "compiler/inferring/public.h" +#include "compiler/inferring/type-data.h" +#include "compiler/kphp_assert.h" +#include "compiler/operation.h" +#include "compiler/vertex-meta_op_base.h" const std::multimap CheckConversionsPass::forbidden_conversions = { {op_conv_int, tp_Class}, diff --git a/compiler/pipes/check-conversions.h b/compiler/pipes/check-conversions.h index ca6e4c3350..7d92d3eaa5 100644 --- a/compiler/pipes/check-conversions.h +++ b/compiler/pipes/check-conversions.h @@ -4,7 +4,13 @@ #pragma once +#include +#include + +#include "auto/compiler/vertex/vertex-types.h" +#include "compiler/data/vertex-adaptor.h" #include "compiler/function-pass.h" +#include "compiler/inferring/primitive-type.h" // This pipe forbids suspicious conversions (op_conv*) after the type inference. class CheckConversionsPass final : public FunctionPassBase { diff --git a/compiler/pipes/check-func-calls-and-vararg.cpp b/compiler/pipes/check-func-calls-and-vararg.cpp index e3235e64c7..b4d80bcc72 100644 --- a/compiler/pipes/check-func-calls-and-vararg.cpp +++ b/compiler/pipes/check-func-calls-and-vararg.cpp @@ -4,11 +4,34 @@ #include "compiler/pipes/check-func-calls-and-vararg.h" +#include +#include +#include +#include +#include +#include +#include + +#include "common/algorithms/compare.h" +#include "common/termformat/termformat.h" +#include "common/wrappers/fmt_format.h" +#include "common/wrappers/iterator_range.h" +#include "common/wrappers/string_view.h" +#include "compiler/compiler-core.h" +#include "compiler/data/class-data.h" +#include "compiler/data/class-members.h" +#include "compiler/data/function-modifiers.h" #include "compiler/data/src-file.h" +#include "compiler/inferring/primitive-type.h" +#include "compiler/kphp_assert.h" +#include "compiler/location.h" #include "compiler/modulite-check-rules.h" +#include "compiler/operation.h" #include "compiler/rewrite-rules/replace-extern-func-calls.h" #include "compiler/type-hint.h" +#include "compiler/vertex-meta_op_base.h" #include "compiler/vertex-util.h" +#include "compiler/vertex.h" /* * This pass checks that func calls are correct, i.e. provided necessary amount of arguments, etc. diff --git a/compiler/pipes/check-func-calls-and-vararg.h b/compiler/pipes/check-func-calls-and-vararg.h index ab70f943b1..8953d3c3b8 100644 --- a/compiler/pipes/check-func-calls-and-vararg.h +++ b/compiler/pipes/check-func-calls-and-vararg.h @@ -4,9 +4,16 @@ #pragma once +#include + +#include "auto/compiler/vertex/vertex-types.h" #include "compiler/data/data_ptr.h" +#include "compiler/data/function-data.h" +#include "compiler/data/vertex-adaptor.h" #include "compiler/function-pass.h" +class Location; + class CheckFuncCallsAndVarargPass final : public FunctionPassBase { VertexAdaptor process_varargs(VertexAdaptor call, FunctionPtr f_called); diff --git a/compiler/pipes/check-modifications-of-const-vars.cpp b/compiler/pipes/check-modifications-of-const-vars.cpp index 54fb921c0a..98b84aaa3e 100644 --- a/compiler/pipes/check-modifications-of-const-vars.cpp +++ b/compiler/pipes/check-modifications-of-const-vars.cpp @@ -4,11 +4,24 @@ #include "compiler/pipes/check-modifications-of-const-vars.h" -#include "common/termformat/termformat.h" +#include +#include +#include +#include "auto/compiler/vertex/vertex-types.h" +#include "common/termformat/termformat.h" +#include "common/wrappers/fmt_format.h" +#include "common/wrappers/iterator_range.h" +#include "common/wrappers/string_view.h" #include "compiler/data/class-data.h" +#include "compiler/data/data_ptr.h" +#include "compiler/data/function-data.h" #include "compiler/data/var-data.h" +#include "compiler/kphp_assert.h" +#include "compiler/operation.h" #include "compiler/phpdoc.h" +#include "compiler/vertex-meta_op_base.h" +#include "compiler/vertex.h" VertexPtr CheckModificationsOfConstVars::on_enter_vertex(VertexPtr v) { check_modifications(v); diff --git a/compiler/pipes/check-modifications-of-const-vars.h b/compiler/pipes/check-modifications-of-const-vars.h index 7d1278f787..e28502a593 100644 --- a/compiler/pipes/check-modifications-of-const-vars.h +++ b/compiler/pipes/check-modifications-of-const-vars.h @@ -4,7 +4,11 @@ #pragma once +#include + +#include "compiler/data/vertex-adaptor.h" #include "compiler/function-pass.h" +#include "compiler/stage.h" class CheckModificationsOfConstVars final : public FunctionPassBase { public: diff --git a/compiler/pipes/check-nested-foreach.cpp b/compiler/pipes/check-nested-foreach.cpp index 192a0ce8bf..8a6271a04c 100644 --- a/compiler/pipes/check-nested-foreach.cpp +++ b/compiler/pipes/check-nested-foreach.cpp @@ -4,10 +4,16 @@ #include "compiler/pipes/check-nested-foreach.h" +#include +#include + +#include "auto/compiler/vertex/vertex-types.h" #include "common/algorithms/contains.h" #include "common/termformat/termformat.h" - +#include "common/wrappers/fmt_format.h" #include "compiler/data/var-data.h" +#include "compiler/kphp_assert.h" +#include "compiler/vertex.h" VarPtr get_non_local_scope_visible_var(VertexAdaptor params) noexcept { if (auto iterable_instance = params->xs().try_as()) { diff --git a/compiler/pipes/check-nested-foreach.h b/compiler/pipes/check-nested-foreach.h index 8ab2f139b0..567bb990f8 100644 --- a/compiler/pipes/check-nested-foreach.h +++ b/compiler/pipes/check-nested-foreach.h @@ -4,6 +4,12 @@ #pragma once +#include +#include + +#include "compiler/data/data_ptr.h" +#include "compiler/data/function-data.h" +#include "compiler/data/vertex-adaptor.h" #include "compiler/function-pass.h" class CheckNestedForeachPass final : public FunctionPassBase { diff --git a/compiler/pipes/check-tl-classes.cpp b/compiler/pipes/check-tl-classes.cpp index ea9ebfd48e..7652a509f8 100644 --- a/compiler/pipes/check-tl-classes.cpp +++ b/compiler/pipes/check-tl-classes.cpp @@ -4,10 +4,25 @@ #include "compiler/pipes/check-tl-classes.h" +#include +#include +#include +#include +#include +#include +#include + +#include "common/tl2php/php-classes.h" +#include "common/wrappers/fmt_format.h" +#include "common/wrappers/string_view.h" #include "compiler/compiler-core.h" +#include "compiler/compiler-settings.h" #include "compiler/data/class-data.h" +#include "compiler/data/class-members.h" #include "compiler/data/function-data.h" +#include "compiler/kphp_assert.h" #include "compiler/phpdoc.h" +#include "compiler/tl-classes.h" namespace { diff --git a/compiler/pipes/check-tl-classes.h b/compiler/pipes/check-tl-classes.h index 37875c5b60..84a44d409f 100644 --- a/compiler/pipes/check-tl-classes.h +++ b/compiler/pipes/check-tl-classes.h @@ -4,6 +4,9 @@ #pragma once +#include + +#include "compiler/data/data_ptr.h" #include "compiler/function-pass.h" class CheckTlClasses final : public FunctionPassBase { diff --git a/compiler/pipes/check-type-hint-variance.cpp b/compiler/pipes/check-type-hint-variance.cpp index c390820a7a..c450be3d53 100644 --- a/compiler/pipes/check-type-hint-variance.cpp +++ b/compiler/pipes/check-type-hint-variance.cpp @@ -3,11 +3,25 @@ // Distributed under the GPL v3 License, see LICENSE.notice.txt #include "compiler/pipes/check-type-hint-variance.h" + +#include +#include + +#include "auto/compiler/vertex/vertex-types.h" +#include "common/containers/final_action.h" +#include "common/wrappers/fmt_format.h" +#include "common/wrappers/iterator_range.h" #include "compiler/data/class-data.h" +#include "compiler/data/class-members.h" #include "compiler/data/function-data.h" +#include "compiler/data/function-modifiers.h" +#include "compiler/data/vertex-adaptor.h" +#include "compiler/kphp_assert.h" +#include "compiler/location.h" +#include "compiler/stage.h" +#include "compiler/threading/data-stream.h" #include "compiler/type-hint.h" - -#include "common/containers/final_action.h" +#include "compiler/vertex.h" namespace { diff --git a/compiler/pipes/check-ub.cpp b/compiler/pipes/check-ub.cpp index 48c501e781..75ddd52f59 100644 --- a/compiler/pipes/check-ub.cpp +++ b/compiler/pipes/check-ub.cpp @@ -4,8 +4,27 @@ #include "compiler/pipes/check-ub.h" +#include +#include +#include +#include +#include + +#include "auto/compiler/vertex/vertex-types.h" +#include "common/algorithms/find.h" +#include "common/wrappers/fmt_format.h" #include "compiler/compiler-core.h" #include "compiler/data/function-data.h" +#include "compiler/data/var-data.h" +#include "compiler/data/vertex-adaptor.h" +#include "compiler/kphp_assert.h" +#include "compiler/location.h" +#include "compiler/operation.h" +#include "compiler/stage.h" +#include "compiler/threading/data-stream.h" +#include "compiler/threading/tls.h" +#include "compiler/vertex-meta_op_base.h" +#include "compiler/vertex.h" /* * C++ undefined behaviour fixes. diff --git a/compiler/pipes/clone-strange-const-params.cpp b/compiler/pipes/clone-strange-const-params.cpp index 5bbbe725c0..e28aa4dcdf 100644 --- a/compiler/pipes/clone-strange-const-params.cpp +++ b/compiler/pipes/clone-strange-const-params.cpp @@ -4,8 +4,24 @@ #include "compiler/pipes/clone-strange-const-params.h" +#include +#include +#include +#include + +#include "auto/compiler/vertex/vertex-types.h" +#include "common/algorithms/find.h" +#include "common/wrappers/fmt_format.h" +#include "common/wrappers/iterator_range.h" #include "compiler/compiler-core.h" +#include "compiler/data/data_ptr.h" +#include "compiler/data/function-data.h" +#include "compiler/data/function-modifiers.h" #include "compiler/data/var-data.h" +#include "compiler/kphp_assert.h" +#include "compiler/stats.h" +#include "compiler/vertex-meta_op_base.h" +#include "compiler/vertex.h" VertexPtr CloneStrangeConstParams::on_enter_vertex(VertexPtr root) { auto func_call = root.try_as(); diff --git a/compiler/pipes/clone-strange-const-params.h b/compiler/pipes/clone-strange-const-params.h index b36b19e41e..cad3acbe76 100644 --- a/compiler/pipes/clone-strange-const-params.h +++ b/compiler/pipes/clone-strange-const-params.h @@ -4,6 +4,9 @@ #pragma once +#include + +#include "compiler/data/vertex-adaptor.h" #include "compiler/function-pass.h" #include "compiler/pipes/function-and-cfg.h" diff --git a/compiler/pipes/code-gen.cpp b/compiler/pipes/code-gen.cpp index d8a09e3fbf..2523e94b94 100644 --- a/compiler/pipes/code-gen.cpp +++ b/compiler/pipes/code-gen.cpp @@ -4,6 +4,20 @@ #include "compiler/pipes/code-gen.h" +#include +#include +#include +#include +#include +#include +#include + +#include "common/algorithms/hashes.h" +#include "common/algorithms/string-algorithms.h" +#include "common/smart_ptrs/singleton.h" +#include "common/wrappers/fmt_format.h" +#include "common/wrappers/string_view.h" +#include "compiler/code-gen/code-gen-root-cmd.h" #include "compiler/code-gen/code-gen-task.h" #include "compiler/code-gen/code-generator.h" #include "compiler/code-gen/common.h" @@ -23,16 +37,26 @@ #include "compiler/code-gen/files/tracing-autogen.h" #include "compiler/code-gen/files/type-tagger.h" #include "compiler/code-gen/raw-data.h" +#include "compiler/code-gen/writer-data.h" #include "compiler/compiler-core.h" +#include "compiler/compiler-settings.h" #include "compiler/cpp-dest-dir-initializer.h" #include "compiler/data/class-data.h" +#include "compiler/data/ffi-data.h" #include "compiler/data/function-data.h" +#include "compiler/data/function-modifiers.h" #include "compiler/data/generics-mixins.h" #include "compiler/data/lib-data.h" #include "compiler/data/src-file.h" +#include "compiler/data/var-data.h" #include "compiler/inferring/public.h" +#include "compiler/kphp_assert.h" #include "compiler/pipes/collect-forkable-types.h" +#include "compiler/stage.h" +#include "compiler/stats.h" +#include "compiler/threading/data-stream.h" #include "compiler/type-hint.h" +#include "compiler/utils/string-utils.h" void CodeGenF::execute(FunctionPtr function, DataStream>& unused_os __attribute__((unused))) { if (function->does_need_codegen() || function->is_imported_from_static_lib()) { diff --git a/compiler/pipes/code-gen.h b/compiler/pipes/code-gen.h index afabef5502..04c5d43b7c 100644 --- a/compiler/pipes/code-gen.h +++ b/compiler/pipes/code-gen.h @@ -4,8 +4,14 @@ #pragma once +#include +#include +#include +#include + #include "compiler/code-gen/code-gen-root-cmd.h" #include "compiler/code-gen/writer-data.h" +#include "compiler/data/data_ptr.h" #include "compiler/pipes/sync.h" #include "compiler/threading/data-stream.h" diff --git a/compiler/pipes/collect-const-vars.cpp b/compiler/pipes/collect-const-vars.cpp index ba7a61e1f8..6c2101653a 100644 --- a/compiler/pipes/collect-const-vars.cpp +++ b/compiler/pipes/collect-const-vars.cpp @@ -4,17 +4,31 @@ #include "compiler/pipes/collect-const-vars.h" +#include +#include +#include +#include #include #include "auto/compiler/vertex/vertex-types.h" +#include "common/algorithms/find.h" #include "common/algorithms/hashes.h" +#include "common/wrappers/fmt_format.h" #include "compiler/compiler-core.h" #include "compiler/const-manipulations.h" +#include "compiler/data/class-data.h" +#include "compiler/data/class-members.h" +#include "compiler/data/data_ptr.h" +#include "compiler/data/function-data.h" #include "compiler/data/var-data.h" #include "compiler/data/vertex-adaptor.h" #include "compiler/kphp_assert.h" +#include "compiler/location.h" #include "compiler/name-gen.h" +#include "compiler/operation.h" +#include "compiler/vertex-meta_op_base.h" #include "compiler/vertex-util.h" +#include "compiler/vertex.h" namespace { diff --git a/compiler/pipes/collect-const-vars.h b/compiler/pipes/collect-const-vars.h index f1a311b467..5443fe1452 100644 --- a/compiler/pipes/collect-const-vars.h +++ b/compiler/pipes/collect-const-vars.h @@ -4,8 +4,13 @@ #pragma once +#include + +#include "compiler/data/vertex-adaptor.h" #include "compiler/function-pass.h" +class Location; + /*** Replace constant expressions with const variables ***/ class CollectConstVarsPass final : public FunctionPassBase { private: diff --git a/compiler/pipes/collect-forkable-types.h b/compiler/pipes/collect-forkable-types.h index 4ac81d141e..e5511f9872 100644 --- a/compiler/pipes/collect-forkable-types.h +++ b/compiler/pipes/collect-forkable-types.h @@ -14,6 +14,7 @@ #include "compiler/function-pass.h" class TypeData; + class CollectForkableTypesPass final : public FunctionPassBase { public: diff --git a/compiler/pipes/collect-main-edges.cpp b/compiler/pipes/collect-main-edges.cpp index 5a192fdf1d..8918aea0fb 100644 --- a/compiler/pipes/collect-main-edges.cpp +++ b/compiler/pipes/collect-main-edges.cpp @@ -4,21 +4,46 @@ #include "compiler/pipes/collect-main-edges.h" +#include +#include +#include +#include +#include + +#include "common/algorithms/find.h" #include "common/php-functions.h" +#include "common/wrappers/fmt_format.h" +#include "common/wrappers/iterator_range.h" #include "compiler/compiler-core.h" +#include "compiler/data/class-data.h" +#include "compiler/data/class-members.h" #include "compiler/data/define-data.h" +#include "compiler/data/function-data.h" #include "compiler/data/src-file.h" #include "compiler/data/var-data.h" #include "compiler/function-pass.h" #include "compiler/inferring/edge.h" #include "compiler/inferring/ifi.h" +#include "compiler/inferring/key.h" +#include "compiler/inferring/lvalue.h" +#include "compiler/inferring/multi-key.h" +#include "compiler/inferring/node.h" +#include "compiler/inferring/primitive-type.h" #include "compiler/inferring/public.h" #include "compiler/inferring/restriction-isset.h" #include "compiler/inferring/restriction-match-phpdoc.h" #include "compiler/inferring/restriction-non-void.h" +#include "compiler/inferring/type-data.h" +#include "compiler/inferring/type-inferer.h" #include "compiler/inferring/type-node.h" +#include "compiler/inferring/var-node.h" +#include "compiler/kphp_assert.h" +#include "compiler/operation.h" +#include "compiler/stage.h" #include "compiler/type-hint.h" +#include "compiler/vertex-meta_op_base.h" #include "compiler/vertex-util.h" +#include "compiler/vertex.h" namespace { diff --git a/compiler/pipes/collect-main-edges.h b/compiler/pipes/collect-main-edges.h index 327bf94027..df3d9fb001 100644 --- a/compiler/pipes/collect-main-edges.h +++ b/compiler/pipes/collect-main-edges.h @@ -4,11 +4,19 @@ #pragma once +#include + +#include "auto/compiler/vertex/vertex-types.h" +#include "compiler/data/data_ptr.h" +#include "compiler/data/vertex-adaptor.h" #include "compiler/function-pass.h" #include "compiler/inferring/lvalue.h" #include "compiler/inferring/rvalue.h" #include "compiler/pipes/function-and-cfg.h" +class TypeData; +class TypeHint; + class CollectMainEdgesPass final : public FunctionPassBase { private: bool have_returns = false; diff --git a/compiler/pipes/collect-required-and-classes.cpp b/compiler/pipes/collect-required-and-classes.cpp index 1820696401..96694ed36d 100644 --- a/compiler/pipes/collect-required-and-classes.cpp +++ b/compiler/pipes/collect-required-and-classes.cpp @@ -4,14 +4,47 @@ #include "compiler/pipes/collect-required-and-classes.h" +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "auto/compiler/vertex/vertex-types.h" +#include "common/algorithms/string-algorithms.h" +#include "common/wrappers/fmt_format.h" +#include "common/wrappers/iterator_range.h" +#include "common/wrappers/string_view.h" #include "compiler/compiler-core.h" +#include "compiler/compiler-settings.h" +#include "compiler/composer.h" #include "compiler/const-manipulations.h" +#include "compiler/data/class-data.h" +#include "compiler/data/class-members.h" +#include "compiler/data/ffi-data.h" +#include "compiler/data/function-data.h" #include "compiler/data/modulite-data.h" #include "compiler/data/src-dir.h" #include "compiler/data/src-file.h" +#include "compiler/data/var-data.h" +#include "compiler/data/vertex-adaptor.h" #include "compiler/function-pass.h" +#include "compiler/kphp_assert.h" +#include "compiler/location.h" +#include "compiler/name-gen.h" +#include "compiler/operation.h" #include "compiler/phpdoc.h" +#include "compiler/stage.h" #include "compiler/type-hint.h" +#include "compiler/utils/string-utils.h" +#include "compiler/vertex-meta_op_base.h" +#include "compiler/vertex.h" class CollectRequiredPass final : public FunctionPassBase { private: diff --git a/compiler/pipes/collect-required-and-classes.h b/compiler/pipes/collect-required-and-classes.h index 3083aab243..e88ce2c2b4 100644 --- a/compiler/pipes/collect-required-and-classes.h +++ b/compiler/pipes/collect-required-and-classes.h @@ -4,6 +4,8 @@ #pragma once +#include + #include "compiler/data/data_ptr.h" #include "compiler/threading/data-stream.h" diff --git a/compiler/pipes/convert-invoke-to-func-call.cpp b/compiler/pipes/convert-invoke-to-func-call.cpp index 1b3b827cae..e83b00366f 100644 --- a/compiler/pipes/convert-invoke-to-func-call.cpp +++ b/compiler/pipes/convert-invoke-to-func-call.cpp @@ -4,8 +4,27 @@ #include "compiler/pipes/convert-invoke-to-func-call.h" +#include +#include +#include +#include + +#include "common/algorithms/find.h" +#include "common/wrappers/fmt_format.h" +#include "common/wrappers/iterator_range.h" +#include "common/wrappers/string_view.h" +#include "compiler/class-assumptions.h" +#include "compiler/compiler-core.h" +#include "compiler/data/class-data.h" +#include "compiler/data/class-members.h" +#include "compiler/kphp_assert.h" #include "compiler/name-gen.h" +#include "compiler/operation.h" +#include "compiler/stage.h" +#include "compiler/threading/data-stream.h" #include "compiler/type-hint.h" +#include "compiler/vertex-meta_op_base.h" +#include "compiler/vertex.h" /* * This pass does creates op_func_call that can't be created earlier: at this point, we are after a sync point. diff --git a/compiler/pipes/convert-invoke-to-func-call.h b/compiler/pipes/convert-invoke-to-func-call.h index 29c9b6329a..847f1e4648 100644 --- a/compiler/pipes/convert-invoke-to-func-call.h +++ b/compiler/pipes/convert-invoke-to-func-call.h @@ -4,9 +4,19 @@ #pragma once +#include +#include +#include + +#include "auto/compiler/vertex/vertex-types.h" #include "compiler/data/data_ptr.h" +#include "compiler/data/function-data.h" +#include "compiler/data/vertex-adaptor.h" #include "compiler/function-pass.h" +template +class DataStream; + class ConvertInvokeToFuncCallPass final : public FunctionPassBase { std::forward_list nested_lambdas; diff --git a/compiler/pipes/convert-list-assignments.cpp b/compiler/pipes/convert-list-assignments.cpp index 423c62cf32..c0734de660 100644 --- a/compiler/pipes/convert-list-assignments.cpp +++ b/compiler/pipes/convert-list-assignments.cpp @@ -4,7 +4,14 @@ #include "compiler/pipes/convert-list-assignments.h" +#include +#include + +#include "common/wrappers/iterator_range.h" #include "compiler/name-gen.h" +#include "compiler/operation.h" +#include "compiler/vertex-meta_op_base.h" +#include "compiler/vertex.h" VertexPtr ConvertListAssignmentsPass::process_list_assignment(VertexAdaptor list) { // save right part to temporary variable in cases: diff --git a/compiler/pipes/convert-list-assignments.h b/compiler/pipes/convert-list-assignments.h index d98f3cc26e..6d33e7630c 100644 --- a/compiler/pipes/convert-list-assignments.h +++ b/compiler/pipes/convert-list-assignments.h @@ -4,6 +4,10 @@ #pragma once +#include + +#include "auto/compiler/vertex/vertex-types.h" +#include "compiler/data/vertex-adaptor.h" #include "compiler/function-pass.h" // This pipe rewrites some list assignments. diff --git a/compiler/pipes/convert-sprintf-calls.cpp b/compiler/pipes/convert-sprintf-calls.cpp index 712bfd3f1a..c794c7be72 100644 --- a/compiler/pipes/convert-sprintf-calls.cpp +++ b/compiler/pipes/convert-sprintf-calls.cpp @@ -4,8 +4,21 @@ #include "compiler/pipes/convert-sprintf-calls.h" -#include "compiler/vertex-util.h" +#include +#include #include +#include + +#include "common/algorithms/find.h" +#include "common/wrappers/iterator_range.h" +#include "compiler/data/data_ptr.h" +#include "compiler/data/function-data.h" +#include "compiler/data/var-data.h" +#include "compiler/location.h" +#include "compiler/stage.h" +#include "compiler/vertex-meta_op_base.h" +#include "compiler/vertex-util.h" +#include "compiler/vertex.h" struct FormatCallInfo { FormatCallInfo() diff --git a/compiler/pipes/convert-sprintf-calls.h b/compiler/pipes/convert-sprintf-calls.h index 5c26536ccd..8ea6fa8412 100644 --- a/compiler/pipes/convert-sprintf-calls.h +++ b/compiler/pipes/convert-sprintf-calls.h @@ -4,11 +4,17 @@ #pragma once +#include +#include + +#include "auto/compiler/vertex/vertex-types.h" #include "compiler/compiler-core.h" +#include "compiler/data/vertex-adaptor.h" #include "compiler/function-pass.h" struct FormatCallInfo; struct FormatPart; +class Location; // This pipe rewrites some sprintf calls. // diff --git a/compiler/pipes/deduce-implicit-types-and-casts.cpp b/compiler/pipes/deduce-implicit-types-and-casts.cpp index 3b12df805a..3d27f24e88 100644 --- a/compiler/pipes/deduce-implicit-types-and-casts.cpp +++ b/compiler/pipes/deduce-implicit-types-and-casts.cpp @@ -3,17 +3,47 @@ // Distributed under the GPL v3 License, see LICENSE.notice.txt #include "compiler/pipes/deduce-implicit-types-and-casts.h" -#include "compiler/pipes/transform-to-smart-instanceof.h" +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "common/algorithms/find.h" +#include "common/termformat/termformat.h" +#include "common/wrappers/copyable-atomic.h" +#include "common/wrappers/fmt_format.h" +#include "common/wrappers/iterator_range.h" +#include "compiler/class-assumptions.h" #include "compiler/compiler-core.h" +#include "compiler/data/class-data.h" +#include "compiler/data/class-members.h" +#include "compiler/data/class-modifiers.h" +#include "compiler/data/ffi-data.h" +#include "compiler/data/function-data.h" #include "compiler/data/generics-mixins.h" #include "compiler/data/src-file.h" #include "compiler/generics-reification.h" +#include "compiler/inferring/primitive-type.h" +#include "compiler/kphp_assert.h" #include "compiler/lambda-utils.h" #include "compiler/name-gen.h" +#include "compiler/operation.h" #include "compiler/phpdoc.h" +#include "compiler/pipes/transform-to-smart-instanceof.h" +#include "compiler/stage.h" #include "compiler/type-hint.h" +#include "compiler/utils/string-utils.h" +#include "compiler/vertex-meta_op_base.h" #include "compiler/vertex-util.h" +#include "compiler/vertex.h" /* * Deducing implicit types is a very important step of the compilation pipeline. diff --git a/compiler/pipes/deduce-implicit-types-and-casts.h b/compiler/pipes/deduce-implicit-types-and-casts.h index a23a7205f9..c37b079b39 100644 --- a/compiler/pipes/deduce-implicit-types-and-casts.h +++ b/compiler/pipes/deduce-implicit-types-and-casts.h @@ -4,8 +4,17 @@ #pragma once +#include +#include + +#include "auto/compiler/vertex/vertex-types.h" +#include "compiler/data/data_ptr.h" +#include "compiler/data/vertex-adaptor.h" #include "compiler/function-pass.h" #include "compiler/threading/data-stream.h" +#include "compiler/vertex.h" + +class TypeHint; // see detailed comments is a .cpp file about what this pass does diff --git a/compiler/pipes/early-optimization.cpp b/compiler/pipes/early-optimization.cpp index 0dd116b563..2f1fb0c79a 100644 --- a/compiler/pipes/early-optimization.cpp +++ b/compiler/pipes/early-optimization.cpp @@ -4,11 +4,29 @@ #include "compiler/pipes/early-optimization.h" +#include +#include +#include +#include +#include +#include +#include +#include + #include "auto/compiler/rewrite-rules/early_opt.h" +#include "auto/compiler/vertex/vertex-types.h" +#include "common/algorithms/find.h" +#include "common/wrappers/iterator_range.h" +#include "common/wrappers/string_view.h" #include "compiler/compiler-core.h" #include "compiler/data/function-data.h" +#include "compiler/data/vertex-adaptor.h" #include "compiler/function-pass.h" +#include "compiler/stage.h" +#include "compiler/threading/data-stream.h" +#include "compiler/vertex-meta_op_base.h" #include "compiler/vertex-util.h" +#include "compiler/vertex.h" // EarlyOptimizationPass applies optimizations by rewriting the AST. // It's called "early" because it happens before the type inference. diff --git a/compiler/pipes/extract-async.cpp b/compiler/pipes/extract-async.cpp index ecfe58b744..2c57e41810 100644 --- a/compiler/pipes/extract-async.cpp +++ b/compiler/pipes/extract-async.cpp @@ -5,6 +5,14 @@ #include "compiler/pipes/extract-async.h" #include +#include +#include + +#include "common/wrappers/fmt_format.h" +#include "compiler/data/function-data.h" +#include "compiler/kphp_assert.h" +#include "compiler/operation.h" +#include "compiler/vertex.h" bool ExtractAsyncPass::check_function(FunctionPtr function) const { return !function->is_extern() && function->is_resumable; diff --git a/compiler/pipes/extract-async.h b/compiler/pipes/extract-async.h index 41c9bf08e0..c0d7171208 100644 --- a/compiler/pipes/extract-async.h +++ b/compiler/pipes/extract-async.h @@ -4,7 +4,13 @@ #pragma once +#include + +#include "auto/compiler/vertex/vertex-types.h" +#include "compiler/data/data_ptr.h" +#include "compiler/data/vertex-adaptor.h" #include "compiler/function-pass.h" +#include "compiler/vertex-meta_op_base.h" class ExtractAsyncPass final : public FunctionPassBase { public: diff --git a/compiler/pipes/extract-resumable-calls.cpp b/compiler/pipes/extract-resumable-calls.cpp index 227b97aa16..4ff9d145ba 100644 --- a/compiler/pipes/extract-resumable-calls.cpp +++ b/compiler/pipes/extract-resumable-calls.cpp @@ -4,10 +4,22 @@ #include "compiler/pipes/extract-resumable-calls.h" +#include +#include + +#include "common/algorithms/find.h" #include "compiler/compiler-core.h" +#include "compiler/data/function-data.h" +#include "compiler/data/var-data.h" #include "compiler/inferring/public.h" +#include "compiler/inferring/var-node.h" +#include "compiler/kphp_assert.h" #include "compiler/name-gen.h" +#include "compiler/operation.h" +#include "compiler/stage.h" +#include "compiler/vertex-meta_op_base.h" #include "compiler/vertex-util.h" +#include "compiler/vertex.h" VertexPtr* ExtractResumableCallsPass::skip_conv_and_sets(VertexPtr* replace) noexcept { if (auto set_modify = replace->try_as()) { diff --git a/compiler/pipes/extract-resumable-calls.h b/compiler/pipes/extract-resumable-calls.h index 90b2e0295a..f6536959a5 100644 --- a/compiler/pipes/extract-resumable-calls.h +++ b/compiler/pipes/extract-resumable-calls.h @@ -4,6 +4,12 @@ #pragma once +#include +#include + +#include "auto/compiler/vertex/vertex-types.h" +#include "compiler/data/data_ptr.h" +#include "compiler/data/vertex-adaptor.h" #include "compiler/function-pass.h" class ExtractResumableCallsPass final : public FunctionPassBase { diff --git a/compiler/pipes/file-to-tokens.h b/compiler/pipes/file-to-tokens.h index a4ee6efe3a..73a3b518b9 100644 --- a/compiler/pipes/file-to-tokens.h +++ b/compiler/pipes/file-to-tokens.h @@ -11,9 +11,6 @@ #include "compiler/threading/data-stream.h" #include "compiler/token.h" -class Token; -template -class DataStream; class FileToTokensF { public: diff --git a/compiler/pipes/filter-only-actually-used.cpp b/compiler/pipes/filter-only-actually-used.cpp index 71a844b63b..3ea081740e 100644 --- a/compiler/pipes/filter-only-actually-used.cpp +++ b/compiler/pipes/filter-only-actually-used.cpp @@ -4,13 +4,37 @@ #include "compiler/pipes/filter-only-actually-used.h" +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "auto/compiler/vertex/vertex-types.h" #include "common/algorithms/find.h" +#include "common/wrappers/fmt_format.h" +#include "common/wrappers/string_view.h" #include "compiler/compiler-core.h" +#include "compiler/compiler-settings.h" #include "compiler/data/class-data.h" +#include "compiler/data/class-members.h" #include "compiler/data/function-data.h" +#include "compiler/data/function-modifiers.h" +#include "compiler/data/performance-inspections.h" #include "compiler/data/src-file.h" +#include "compiler/data/vertex-adaptor.h" +#include "compiler/function-pass.h" +#include "compiler/kphp_assert.h" +#include "compiler/stage.h" +#include "compiler/threading/data-stream.h" #include "compiler/threading/profiler.h" +#include "compiler/utils/idmap.h" #include "compiler/vertex-util.h" +#include "compiler/vertex.h" // having a typed callable __invoke(), which is a virtual function with switch-case dispatching, // replace body of `case {lambda_class_to_remove.hash()}:` (which is a lambda invoke call) diff --git a/compiler/pipes/filter-only-actually-used.h b/compiler/pipes/filter-only-actually-used.h index b6bc2176e5..b0d1f0549e 100644 --- a/compiler/pipes/filter-only-actually-used.h +++ b/compiler/pipes/filter-only-actually-used.h @@ -4,6 +4,10 @@ #pragma once +#include +#include + +#include "compiler/data/data_ptr.h" #include "compiler/pipes/calc-actual-edges.h" #include "compiler/pipes/sync.h" #include "compiler/threading/data-stream.h" diff --git a/compiler/pipes/final-check.cpp b/compiler/pipes/final-check.cpp index 8ea896f775..60ab7dfa1f 100644 --- a/compiler/pipes/final-check.cpp +++ b/compiler/pipes/final-check.cpp @@ -4,18 +4,48 @@ #include "compiler/pipes/final-check.h" +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + #include "common/algorithms/contains.h" #include "common/algorithms/find.h" #include "common/algorithms/string-algorithms.h" +#include "common/functional/identity.h" #include "common/termformat/termformat.h" +#include "common/wrappers/fmt_format.h" +#include "common/wrappers/iterator_range.h" +#include "common/wrappers/string_view.h" #include "compiler/compiler-core.h" +#include "compiler/compiler-settings.h" +#include "compiler/data/class-data.h" +#include "compiler/data/class-members.h" +#include "compiler/data/class-modifiers.h" +#include "compiler/data/ffi-data.h" +#include "compiler/data/function-modifiers.h" #include "compiler/data/kphp-json-tags.h" #include "compiler/data/kphp-tracing-tags.h" #include "compiler/data/var-data.h" +#include "compiler/ffi/ffi_types.h" #include "compiler/inferring/primitive-type.h" +#include "compiler/inferring/public.h" +#include "compiler/inferring/type-data.h" +#include "compiler/inferring/var-node.h" #include "compiler/kphp_assert.h" +#include "compiler/operation.h" +#include "compiler/stage.h" +#include "compiler/threading/locks.h" #include "compiler/type-hint.h" +#include "compiler/vertex-meta_op_base.h" #include "compiler/vertex-util.h" +#include "compiler/vertex.h" namespace { void check_class_immutableness(ClassPtr klass) { diff --git a/compiler/pipes/final-check.h b/compiler/pipes/final-check.h index d562e6ccca..620906be51 100644 --- a/compiler/pipes/final-check.h +++ b/compiler/pipes/final-check.h @@ -4,7 +4,13 @@ #pragma once +#include + +#include "auto/compiler/vertex/vertex-types.h" +#include "compiler/data/data_ptr.h" +#include "compiler/data/function-data.h" #include "compiler/data/var-data.h" +#include "compiler/data/vertex-adaptor.h" #include "compiler/function-pass.h" #include "compiler/inferring/public.h" diff --git a/compiler/pipes/fix-returns.cpp b/compiler/pipes/fix-returns.cpp index 1a534e62a9..41be99d686 100644 --- a/compiler/pipes/fix-returns.cpp +++ b/compiler/pipes/fix-returns.cpp @@ -4,8 +4,26 @@ #include "compiler/pipes/fix-returns.h" +#include +#include +#include +#include +#include + +#include "auto/compiler/vertex/vertex-types.h" +#include "common/wrappers/fmt_format.h" +#include "common/wrappers/iterator_range.h" +#include "compiler/data/data_ptr.h" +#include "compiler/data/function-data.h" #include "compiler/data/src-file.h" +#include "compiler/inferring/primitive-type.h" #include "compiler/inferring/public.h" +#include "compiler/inferring/type-data.h" +#include "compiler/kphp_assert.h" +#include "compiler/location.h" +#include "compiler/operation.h" +#include "compiler/vertex-meta_op_base.h" +#include "compiler/vertex.h" VertexPtr FixReturnsPass::on_enter_vertex(VertexPtr root) { auto is_void_fun = [](FunctionPtr f) { return tinf::get_type(f, -1)->ptype() == tp_void; }; diff --git a/compiler/pipes/fix-returns.h b/compiler/pipes/fix-returns.h index 2ae2e01e36..bc02bf5dea 100644 --- a/compiler/pipes/fix-returns.h +++ b/compiler/pipes/fix-returns.h @@ -4,6 +4,9 @@ #pragma once +#include + +#include "compiler/data/vertex-adaptor.h" #include "compiler/function-pass.h" class FixReturnsPass final : public FunctionPassBase { diff --git a/compiler/pipes/gen-tree-postprocess.cpp b/compiler/pipes/gen-tree-postprocess.cpp index 5cf1e8c9d5..0db77a10b9 100644 --- a/compiler/pipes/gen-tree-postprocess.cpp +++ b/compiler/pipes/gen-tree-postprocess.cpp @@ -4,11 +4,35 @@ #include "compiler/pipes/gen-tree-postprocess.h" +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "common/algorithms/find.h" +#include "common/wrappers/fmt_format.h" +#include "common/wrappers/iterator_range.h" +#include "common/wrappers/string_view.h" #include "compiler/compiler-core.h" +#include "compiler/compiler-settings.h" #include "compiler/data/class-data.h" +#include "compiler/data/data_ptr.h" +#include "compiler/data/function-data.h" #include "compiler/data/lib-data.h" #include "compiler/data/src-file.h" +#include "compiler/data/var-data.h" +#include "compiler/kphp_assert.h" +#include "compiler/location.h" +#include "compiler/operation.h" +#include "compiler/stage.h" +#include "compiler/vertex-meta_op_base.h" #include "compiler/vertex-util.h" +#include "compiler/vertex.h" namespace { template diff --git a/compiler/pipes/gen-tree-postprocess.h b/compiler/pipes/gen-tree-postprocess.h index ffa8b7eb2b..d3ae682db2 100644 --- a/compiler/pipes/gen-tree-postprocess.h +++ b/compiler/pipes/gen-tree-postprocess.h @@ -4,6 +4,10 @@ #pragma once +#include + +#include "auto/compiler/vertex/vertex-types.h" +#include "compiler/data/vertex-adaptor.h" #include "compiler/function-pass.h" class GenTreePostprocessPass final : public FunctionPassBase { diff --git a/compiler/pipes/generate-virtual-methods.cpp b/compiler/pipes/generate-virtual-methods.cpp index 38daa7c29c..950a2465ed 100644 --- a/compiler/pipes/generate-virtual-methods.cpp +++ b/compiler/pipes/generate-virtual-methods.cpp @@ -4,14 +4,36 @@ #include "compiler/pipes/generate-virtual-methods.h" -#include "common/algorithms/contains.h" - +#include +#include +#include +#include +#include +#include + +#include "auto/compiler/vertex/vertex-types.h" +#include "common/wrappers/fmt_format.h" +#include "common/wrappers/iterator_range.h" +#include "common/wrappers/string_view.h" #include "compiler/compiler-core.h" #include "compiler/data/class-data.h" +#include "compiler/data/class-members.h" +#include "compiler/data/class-modifiers.h" #include "compiler/data/function-data.h" +#include "compiler/data/function-modifiers.h" #include "compiler/data/src-file.h" +#include "compiler/data/vertex-adaptor.h" +#include "compiler/inferring/primitive-type.h" +#include "compiler/inferring/type-data.h" +#include "compiler/kphp_assert.h" +#include "compiler/location.h" +#include "compiler/operation.h" +#include "compiler/stage.h" +#include "compiler/threading/data-stream.h" #include "compiler/type-hint.h" +#include "compiler/vertex-meta_op_base.h" #include "compiler/vertex-util.h" +#include "compiler/vertex.h" // a "virtual method" is an instance method overridden in child classes (all methods of interfaces are virtual also) // $obj->virtual_method() call actually dynamically handles the runtime type of $obj, proxying a call to a concrete class diff --git a/compiler/pipes/generate-virtual-methods.h b/compiler/pipes/generate-virtual-methods.h index 4e118849c2..24afcaae00 100644 --- a/compiler/pipes/generate-virtual-methods.h +++ b/compiler/pipes/generate-virtual-methods.h @@ -4,6 +4,9 @@ #pragma once +#include +#include + #include "compiler/data/data_ptr.h" #include "compiler/pipes/sync.h" #include "compiler/threading/data-stream.h" diff --git a/compiler/pipes/inline-defines-usages.cpp b/compiler/pipes/inline-defines-usages.cpp index 88a2f61c21..9d4eedf767 100644 --- a/compiler/pipes/inline-defines-usages.cpp +++ b/compiler/pipes/inline-defines-usages.cpp @@ -4,10 +4,28 @@ #include "compiler/pipes/inline-defines-usages.h" +#include +#include +#include + +#include "auto/compiler/vertex/vertex-types.h" +#include "common/algorithms/string-algorithms.h" +#include "common/wrappers/fmt_format.h" +#include "compiler/compiler-core.h" +#include "compiler/data/class-data.h" +#include "compiler/data/class-members.h" #include "compiler/data/define-data.h" +#include "compiler/data/field-modifiers.h" +#include "compiler/data/function-data.h" +#include "compiler/data/var-data.h" +#include "compiler/kphp_assert.h" #include "compiler/modulite-check-rules.h" #include "compiler/name-gen.h" +#include "compiler/operation.h" #include "compiler/pipes/check-access-modifiers.h" +#include "compiler/stage.h" +#include "compiler/vertex-meta_op_base.h" +#include "compiler/vertex.h" VertexPtr InlineDefinesUsagesPass::on_enter_vertex(VertexPtr root) { // defined('NAME') is replaced by true or false diff --git a/compiler/pipes/inline-defines-usages.h b/compiler/pipes/inline-defines-usages.h index 0231c945e0..3eab482c89 100644 --- a/compiler/pipes/inline-defines-usages.h +++ b/compiler/pipes/inline-defines-usages.h @@ -4,7 +4,11 @@ #pragma once +#include + #include "compiler/compiler-core.h" +#include "compiler/data/data_ptr.h" +#include "compiler/data/vertex-adaptor.h" #include "compiler/function-pass.h" class InlineDefinesUsagesPass final : public FunctionPassBase { diff --git a/compiler/pipes/inline-simple-functions.cpp b/compiler/pipes/inline-simple-functions.cpp index 14fab8347f..27a0373047 100644 --- a/compiler/pipes/inline-simple-functions.cpp +++ b/compiler/pipes/inline-simple-functions.cpp @@ -8,6 +8,7 @@ #include "auto/compiler/vertex/vertex-op_var.h" #include "auto/compiler/vertex/vertex-types.h" +#include "common/wrappers/string_view.h" #include "compiler/data/class-data.h" #include "compiler/data/function-data.h" #include "compiler/data/function-modifiers.h" diff --git a/compiler/pipes/instantiate-ffi-operations.cpp b/compiler/pipes/instantiate-ffi-operations.cpp index ad76707d59..84edd40cd6 100644 --- a/compiler/pipes/instantiate-ffi-operations.cpp +++ b/compiler/pipes/instantiate-ffi-operations.cpp @@ -4,10 +4,32 @@ #include "compiler/pipes/instantiate-ffi-operations.h" +#include +#include +#include +#include +#include +#include + +#include "common/algorithms/find.h" +#include "common/termformat/termformat.h" +#include "common/wrappers/fmt_format.h" +#include "common/wrappers/iterator_range.h" +#include "compiler/class-assumptions.h" +#include "compiler/compiler-core.h" #include "compiler/const-manipulations.h" +#include "compiler/data/class-data.h" +#include "compiler/data/class-members.h" +#include "compiler/data/ffi-data.h" +#include "compiler/data/function-data.h" #include "compiler/ffi/ffi_parser.h" +#include "compiler/ffi/ffi_types.h" +#include "compiler/kphp_assert.h" +#include "compiler/operation.h" #include "compiler/type-hint.h" +#include "compiler/vertex-meta_op_base.h" #include "compiler/vertex-util.h" +#include "compiler/vertex.h" /* * This pass creates op_ffi_* vertices. diff --git a/compiler/pipes/instantiate-ffi-operations.h b/compiler/pipes/instantiate-ffi-operations.h index cc92b2075a..14c6a0f4b4 100644 --- a/compiler/pipes/instantiate-ffi-operations.h +++ b/compiler/pipes/instantiate-ffi-operations.h @@ -4,8 +4,15 @@ #pragma once +#include + +#include "auto/compiler/vertex/vertex-types.h" +#include "compiler/data/data_ptr.h" +#include "compiler/data/vertex-adaptor.h" #include "compiler/function-pass.h" +class TypeHint; + class InstantiateFFIOperationsPass final : public FunctionPassBase { private: VertexPtr on_ffi_static_new(VertexAdaptor call); diff --git a/compiler/pipes/instantiate-generics-and-lambdas.cpp b/compiler/pipes/instantiate-generics-and-lambdas.cpp index 13e15a5a48..fe734aba5b 100644 --- a/compiler/pipes/instantiate-generics-and-lambdas.cpp +++ b/compiler/pipes/instantiate-generics-and-lambdas.cpp @@ -4,15 +4,33 @@ #include "compiler/pipes/instantiate-generics-and-lambdas.h" +#include +#include +#include +#include +#include + +#include "auto/compiler/vertex/vertex-types.h" +#include "common/wrappers/iterator_range.h" #include "compiler/compiler-core.h" #include "compiler/data/class-data.h" +#include "compiler/data/class-members.h" #include "compiler/data/function-data.h" +#include "compiler/data/function-modifiers.h" #include "compiler/data/generics-mixins.h" +#include "compiler/data/vertex-adaptor.h" +#include "compiler/function-pass.h" +#include "compiler/kphp_assert.h" #include "compiler/lambda-utils.h" +#include "compiler/operation.h" #include "compiler/phpdoc.h" #include "compiler/pipes/clone-nested-lambdas.h" +#include "compiler/stage.h" +#include "compiler/threading/locks.h" #include "compiler/type-hint.h" +#include "compiler/vertex-meta_op_base.h" #include "compiler/vertex-util.h" +#include "compiler/vertex.h" /* * This pass creates new functions and passes them backwards to be handled again: diff --git a/compiler/pipes/instantiate-generics-and-lambdas.h b/compiler/pipes/instantiate-generics-and-lambdas.h index 9cafd15a1e..d8d97861d7 100644 --- a/compiler/pipes/instantiate-generics-and-lambdas.h +++ b/compiler/pipes/instantiate-generics-and-lambdas.h @@ -4,6 +4,8 @@ #pragma once +#include + #include "compiler/data/data_ptr.h" #include "compiler/pipes/sync.h" #include "compiler/threading/data-stream.h" diff --git a/compiler/pipes/load-files.h b/compiler/pipes/load-files.h index 890ddba094..9145f8d89f 100644 --- a/compiler/pipes/load-files.h +++ b/compiler/pipes/load-files.h @@ -7,8 +7,6 @@ #include "compiler/data/data_ptr.h" #include "compiler/threading/data-stream.h" -template -class DataStream; class LoadFileF { public: diff --git a/compiler/pipes/optimization.cpp b/compiler/pipes/optimization.cpp index a320b82f83..384ab8100a 100644 --- a/compiler/pipes/optimization.cpp +++ b/compiler/pipes/optimization.cpp @@ -4,19 +4,37 @@ #include "compiler/pipes/optimization.h" +#include +#include +#include +#include +#include +#include +#include + #include "auto/compiler/vertex/vertex-types.h" +#include "common/algorithms/find.h" +#include "common/algorithms/hashes.h" +#include "common/wrappers/fmt_format.h" +#include "common/wrappers/iterator_range.h" +#include "compiler/compiler-core.h" +#include "compiler/data/class-data.h" +#include "compiler/data/class-members.h" +#include "compiler/data/function-data.h" +#include "compiler/data/var-data.h" #include "compiler/data/vertex-adaptor.h" +#include "compiler/inferring/expr-node.h" #include "compiler/inferring/primitive-type.h" +#include "compiler/inferring/public.h" #include "compiler/inferring/type-data.h" +#include "compiler/inferring/var-node.h" #include "compiler/kphp_assert.h" +#include "compiler/location.h" #include "compiler/operation.h" -#include - -#include "common/algorithms/hashes.h" - -#include "compiler/data/class-data.h" -#include "compiler/inferring/public.h" +#include "compiler/stage.h" +#include "compiler/vertex-meta_op_base.h" #include "compiler/vertex-util.h" +#include "compiler/vertex.h" namespace { diff --git a/compiler/pipes/optimization.h b/compiler/pipes/optimization.h index f3a8aa1205..e94c4430a0 100644 --- a/compiler/pipes/optimization.h +++ b/compiler/pipes/optimization.h @@ -4,7 +4,14 @@ #pragma once +#include +#include +#include + +#include "auto/compiler/vertex/vertex-types.h" #include "compiler/compiler-core.h" +#include "compiler/data/data_ptr.h" +#include "compiler/data/vertex-adaptor.h" #include "compiler/function-pass.h" class OptimizationPass final : public FunctionPassBase { diff --git a/compiler/pipes/parse-and-apply-phpdoc.cpp b/compiler/pipes/parse-and-apply-phpdoc.cpp index d627877e4e..85a565a933 100644 --- a/compiler/pipes/parse-and-apply-phpdoc.cpp +++ b/compiler/pipes/parse-and-apply-phpdoc.cpp @@ -4,20 +4,48 @@ #include "compiler/pipes/parse-and-apply-phpdoc.h" +#include +#include +#include +#include +#include +#include +#include +#include #include +#include +#include +#include "auto/compiler/vertex/vertex-types.h" #include "common/algorithms/contains.h" - +#include "common/termformat/termformat.h" +#include "common/wrappers/fmt_format.h" +#include "common/wrappers/iterator_range.h" +#include "common/wrappers/string_view.h" +#include "compiler/class-assumptions.h" #include "compiler/compiler-core.h" +#include "compiler/compiler-settings.h" #include "compiler/data/class-data.h" +#include "compiler/data/class-members.h" #include "compiler/data/function-data.h" +#include "compiler/data/function-modifiers.h" #include "compiler/data/generics-mixins.h" #include "compiler/data/kphp-json-tags.h" #include "compiler/data/kphp-tracing-tags.h" +#include "compiler/data/performance-inspections.h" #include "compiler/data/src-file.h" +#include "compiler/data/var-data.h" +#include "compiler/data/vertex-adaptor.h" +#include "compiler/function-colors.h" +#include "compiler/inferring/primitive-type.h" +#include "compiler/kphp_assert.h" +#include "compiler/operation.h" #include "compiler/phpdoc.h" +#include "compiler/stage.h" +#include "compiler/threading/data-stream.h" #include "compiler/type-hint.h" #include "compiler/utils/string-utils.h" +#include "compiler/vertex-meta_op_base.h" #include "compiler/vertex-util.h" #include "compiler/vertex.h" diff --git a/compiler/pipes/parse-and-apply-phpdoc.h b/compiler/pipes/parse-and-apply-phpdoc.h index 6c57f1a233..13ca85c13e 100644 --- a/compiler/pipes/parse-and-apply-phpdoc.h +++ b/compiler/pipes/parse-and-apply-phpdoc.h @@ -4,6 +4,10 @@ #pragma once +#include +#include +#include + #include "compiler/data/data_ptr.h" #include "compiler/data/function-data.h" #include "compiler/pipes/sync.h" diff --git a/compiler/pipes/parse.h b/compiler/pipes/parse.h index 6d8070e7ea..a5534165ba 100644 --- a/compiler/pipes/parse.h +++ b/compiler/pipes/parse.h @@ -11,9 +11,6 @@ #include "compiler/threading/data-stream.h" #include "compiler/token.h" -class Token; -template -class DataStream; class ParseF { public: diff --git a/compiler/pipes/preprocess-break.cpp b/compiler/pipes/preprocess-break.cpp index e93d951e16..5e049e51b6 100644 --- a/compiler/pipes/preprocess-break.cpp +++ b/compiler/pipes/preprocess-break.cpp @@ -4,6 +4,15 @@ #include "compiler/pipes/preprocess-break.h" +#include +#include + +#include "common/algorithms/find.h" +#include "compiler/kphp_assert.h" +#include "compiler/operation.h" +#include "compiler/vertex-meta_op_base.h" +#include "compiler/vertex.h" + int PreprocessBreakPass::get_label_id(VertexAdaptor cycle, Operation op) { int& label_id = op == op_break ? cycle->break_label_id : cycle->continue_label_id; if (label_id == 0) { diff --git a/compiler/pipes/preprocess-break.h b/compiler/pipes/preprocess-break.h index 569876684d..b3ae1b6fc4 100644 --- a/compiler/pipes/preprocess-break.h +++ b/compiler/pipes/preprocess-break.h @@ -4,6 +4,11 @@ #pragma once +#include +#include + +#include "auto/compiler/vertex/vertex-types.h" +#include "compiler/data/vertex-adaptor.h" #include "compiler/function-pass.h" class PreprocessBreakPass final : public FunctionPassBase { diff --git a/compiler/pipes/preprocess-eq3.cpp b/compiler/pipes/preprocess-eq3.cpp index 8f2d6ba6e2..f64c145f86 100644 --- a/compiler/pipes/preprocess-eq3.cpp +++ b/compiler/pipes/preprocess-eq3.cpp @@ -3,9 +3,14 @@ // Distributed under the GPL v3 License, see LICENSE.notice.txt #include "compiler/pipes/preprocess-eq3.h" -#include "compiler/vertex-util.h" +#include "auto/compiler/vertex/vertex-types.h" #include "common/algorithms/contains.h" +#include "common/algorithms/find.h" +#include "compiler/operation.h" +#include "compiler/vertex-meta_op_base.h" +#include "compiler/vertex-util.h" +#include "compiler/vertex.h" VertexPtr PreprocessEq3Pass::on_exit_vertex(VertexPtr root) { if (root->type() == op_eq3) { diff --git a/compiler/pipes/preprocess-eq3.h b/compiler/pipes/preprocess-eq3.h index cef8f5df5b..b56dea098d 100644 --- a/compiler/pipes/preprocess-eq3.h +++ b/compiler/pipes/preprocess-eq3.h @@ -4,6 +4,9 @@ #pragma once +#include + +#include "compiler/data/vertex-adaptor.h" #include "compiler/function-pass.h" class PreprocessEq3Pass final : public FunctionPassBase { diff --git a/compiler/pipes/preprocess-exceptions.cpp b/compiler/pipes/preprocess-exceptions.cpp index 509a6e4fde..97b817caa1 100644 --- a/compiler/pipes/preprocess-exceptions.cpp +++ b/compiler/pipes/preprocess-exceptions.cpp @@ -4,9 +4,22 @@ #include "compiler/pipes/preprocess-exceptions.h" +#include +#include + +#include "auto/compiler/vertex/vertex-types.h" +#include "common/wrappers/fmt_format.h" +#include "common/wrappers/iterator_range.h" #include "compiler/compiler-core.h" +#include "compiler/data/class-data.h" +#include "compiler/data/data_ptr.h" #include "compiler/data/src-file.h" +#include "compiler/kphp_assert.h" +#include "compiler/location.h" +#include "compiler/operation.h" +#include "compiler/vertex-meta_op_base.h" #include "compiler/vertex-util.h" +#include "compiler/vertex.h" VertexPtr PreprocessExceptions::on_exit_vertex(VertexPtr root) { static const ClassPtr throwable_class = G->get_class("Throwable"); diff --git a/compiler/pipes/preprocess-exceptions.h b/compiler/pipes/preprocess-exceptions.h index 28f7f30b49..62f5b912ba 100644 --- a/compiler/pipes/preprocess-exceptions.h +++ b/compiler/pipes/preprocess-exceptions.h @@ -4,6 +4,9 @@ #pragma once +#include + +#include "compiler/data/vertex-adaptor.h" #include "compiler/function-pass.h" class PreprocessExceptions final : public FunctionPassBase { diff --git a/compiler/pipes/propagate-throw-flag.cpp b/compiler/pipes/propagate-throw-flag.cpp index 8a9f9b8b8b..5e51aae8fd 100644 --- a/compiler/pipes/propagate-throw-flag.cpp +++ b/compiler/pipes/propagate-throw-flag.cpp @@ -4,6 +4,14 @@ #include "compiler/pipes/propagate-throw-flag.h" +#include + +#include "auto/compiler/vertex/vertex-types.h" +#include "compiler/data/data_ptr.h" +#include "compiler/data/function-data.h" +#include "compiler/vertex-meta_op_base.h" +#include "compiler/vertex.h" + // todo this pass bubbles throw_flag up, but throw_flag is used only in one place in codegenerator // investigate, maybe it can be totally avoided? diff --git a/compiler/pipes/propagate-throw-flag.h b/compiler/pipes/propagate-throw-flag.h index 8e436d5bd5..3791a850ff 100644 --- a/compiler/pipes/propagate-throw-flag.h +++ b/compiler/pipes/propagate-throw-flag.h @@ -4,6 +4,9 @@ #pragma once +#include + +#include "compiler/data/vertex-adaptor.h" #include "compiler/function-pass.h" class PropagateThrowFlagPass final : public FunctionPassBase { diff --git a/compiler/pipes/register-ffi-scopes.cpp b/compiler/pipes/register-ffi-scopes.cpp index 537f90ef64..a942fe8533 100644 --- a/compiler/pipes/register-ffi-scopes.cpp +++ b/compiler/pipes/register-ffi-scopes.cpp @@ -4,15 +4,43 @@ #include "compiler/pipes/register-ffi-scopes.h" +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "auto/compiler/vertex/vertex-types.h" +#include "common/algorithms/find.h" +#include "common/wrappers/fmt_format.h" +#include "common/wrappers/iterator_range.h" +#include "compiler/compiler-core.h" #include "compiler/const-manipulations.h" +#include "compiler/data/class-data.h" +#include "compiler/data/class-members.h" #include "compiler/data/ffi-data.h" +#include "compiler/data/field-modifiers.h" +#include "compiler/data/function-data.h" +#include "compiler/data/function-modifiers.h" #include "compiler/data/src-file.h" +#include "compiler/data/vertex-adaptor.h" #include "compiler/ffi/ffi_parser.h" +#include "compiler/ffi/ffi_types.h" +#include "compiler/function-pass.h" +#include "compiler/kphp_assert.h" +#include "compiler/location.h" #include "compiler/name-gen.h" +#include "compiler/operation.h" +#include "compiler/threading/data-stream.h" #include "compiler/type-hint.h" +#include "compiler/utils/string-utils.h" +#include "compiler/vertex-meta_op_base.h" #include "compiler/vertex-util.h" - -#include +#include "compiler/vertex.h" class RegisterFFIScopes final : public FunctionPassBase { private: diff --git a/compiler/pipes/register-ffi-scopes.h b/compiler/pipes/register-ffi-scopes.h index 022573c562..86fc3ebc49 100644 --- a/compiler/pipes/register-ffi-scopes.h +++ b/compiler/pipes/register-ffi-scopes.h @@ -4,8 +4,12 @@ #pragma once +#include "compiler/data/data_ptr.h" #include "compiler/function-pass.h" +template +class DataStream; + // RegisterFFIScopesF pass handles FFI class static method calls like FFI::cdef() // and FFI::load() - it parses FFI strings and creates scope classes. class RegisterFFIScopesF { diff --git a/compiler/pipes/register-kphp-configuration.cpp b/compiler/pipes/register-kphp-configuration.cpp index 588e72cf3d..490bc300e6 100644 --- a/compiler/pipes/register-kphp-configuration.cpp +++ b/compiler/pipes/register-kphp-configuration.cpp @@ -4,13 +4,28 @@ #include "compiler/pipes/register-kphp-configuration.h" -#include "re2/re2.h" +#include +#include +#include +#include +#include #include "common/algorithms/find.h" +#include "common/wrappers/fmt_format.h" +#include "common/wrappers/iterator_range.h" #include "compiler/compiler-core.h" #include "compiler/data/class-data.h" +#include "compiler/data/class-members.h" #include "compiler/data/function-data.h" +#include "compiler/kphp_assert.h" +#include "compiler/stage.h" +#include "compiler/threading/data-stream.h" +#include "compiler/utils/string-utils.h" +#include "compiler/vertex-meta_op_base.h" #include "compiler/vertex-util.h" +#include "compiler/vertex.h" +#include "re2/re2.h" +#include "re2/stringpiece.h" // We use a lot of VertexUtil::get_actual_value here because // on CalcRealDefinesAndAssignModulitesF and InlineDefinesUsagesPass diff --git a/compiler/pipes/register-kphp-configuration.h b/compiler/pipes/register-kphp-configuration.h index aa7070d9ec..23ac98aee6 100644 --- a/compiler/pipes/register-kphp-configuration.h +++ b/compiler/pipes/register-kphp-configuration.h @@ -4,11 +4,21 @@ #pragma once +#include +#include +#include + +#include "auto/compiler/vertex/vertex-types.h" +#include "common/wrappers/string_view.h" #include "compiler/data/class-members.h" #include "compiler/data/data_ptr.h" +#include "compiler/data/vertex-adaptor.h" #include "compiler/function-colors.h" #include "compiler/pipes/sync.h" +template +class DataStream; + class RegisterKphpConfiguration final : public SyncPipeF { using need_profiler = std::false_type; using Base = SyncPipeF; diff --git a/compiler/pipes/register-variables.cpp b/compiler/pipes/register-variables.cpp index 445503be7f..54d062208f 100644 --- a/compiler/pipes/register-variables.cpp +++ b/compiler/pipes/register-variables.cpp @@ -4,12 +4,30 @@ #include "compiler/pipes/register-variables.h" +#include +#include +#include +#include +#include +#include + +#include "common/algorithms/find.h" +#include "common/wrappers/fmt_format.h" +#include "common/wrappers/iterator_range.h" #include "compiler/compiler-core.h" #include "compiler/data/class-data.h" +#include "compiler/data/class-members.h" +#include "compiler/data/field-modifiers.h" #include "compiler/data/var-data.h" +#include "compiler/kphp_assert.h" +#include "compiler/location.h" #include "compiler/modulite-check-rules.h" #include "compiler/name-gen.h" +#include "compiler/operation.h" +#include "compiler/stage.h" #include "compiler/utils/string-utils.h" +#include "compiler/vertex-meta_op_base.h" +#include "compiler/vertex.h" VarPtr RegisterVariablesPass::create_global_var(const std::string& name) { VarPtr var = G->get_global_var(name, VertexPtr()); diff --git a/compiler/pipes/register-variables.h b/compiler/pipes/register-variables.h index c857ae8f1b..eebe4888b3 100644 --- a/compiler/pipes/register-variables.h +++ b/compiler/pipes/register-variables.h @@ -4,10 +4,15 @@ #pragma once +#include #include #include +#include "auto/compiler/vertex/vertex-types.h" +#include "compiler/data/data_ptr.h" +#include "compiler/data/function-data.h" #include "compiler/data/var-data.h" +#include "compiler/data/vertex-adaptor.h" #include "compiler/function-pass.h" /** diff --git a/compiler/pipes/remove-empty-function-calls.cpp b/compiler/pipes/remove-empty-function-calls.cpp index e4ce4583ba..2f787c363c 100644 --- a/compiler/pipes/remove-empty-function-calls.cpp +++ b/compiler/pipes/remove-empty-function-calls.cpp @@ -4,8 +4,17 @@ #include "compiler/pipes/remove-empty-function-calls.h" +#include +#include +#include +#include + +#include "auto/compiler/vertex/vertex-types.h" #include "compiler/compiler-core.h" +#include "compiler/data/data_ptr.h" +#include "compiler/data/function-data.h" #include "compiler/data/src-file.h" +#include "compiler/vertex-meta_op_base.h" #include "compiler/vertex.h" static bool is_empty_func_call(VertexPtr v) { diff --git a/compiler/pipes/remove-empty-function-calls.h b/compiler/pipes/remove-empty-function-calls.h index bf32f5bcb4..aacfa58885 100644 --- a/compiler/pipes/remove-empty-function-calls.h +++ b/compiler/pipes/remove-empty-function-calls.h @@ -4,6 +4,9 @@ #pragma once +#include + +#include "compiler/data/vertex-adaptor.h" #include "compiler/function-pass.h" class RemoveEmptyFunctionCallsPass final : public FunctionPassBase { diff --git a/compiler/pipes/resolve-self-static-parent.cpp b/compiler/pipes/resolve-self-static-parent.cpp index 0edaf3133d..c9aae893b5 100644 --- a/compiler/pipes/resolve-self-static-parent.cpp +++ b/compiler/pipes/resolve-self-static-parent.cpp @@ -4,16 +4,28 @@ #include "compiler/pipes/resolve-self-static-parent.h" -#include "common/wrappers/likely.h" +#include +#include +#include +#include +#include "common/wrappers/fmt_format.h" #include "compiler/compiler-core.h" #include "compiler/data/class-data.h" +#include "compiler/data/class-members.h" +#include "compiler/data/function-data.h" +#include "compiler/data/function-modifiers.h" #include "compiler/data/src-file.h" +#include "compiler/data/var-data.h" #include "compiler/gentree.h" +#include "compiler/kphp_assert.h" #include "compiler/name-gen.h" +#include "compiler/operation.h" #include "compiler/phpdoc.h" #include "compiler/type-hint.h" +#include "compiler/vertex-meta_op_base.h" #include "compiler/vertex-util.h" +#include "compiler/vertex.h" void ResolveSelfStaticParentPass::on_start() { // replace self::, parent:: and accesses to other classes like Classes\A::CONST diff --git a/compiler/pipes/resolve-self-static-parent.h b/compiler/pipes/resolve-self-static-parent.h index 1ebda2523d..e681e96e23 100644 --- a/compiler/pipes/resolve-self-static-parent.h +++ b/compiler/pipes/resolve-self-static-parent.h @@ -4,6 +4,11 @@ #pragma once +#include + +#include "auto/compiler/vertex/vertex-types.h" +#include "compiler/data/data_ptr.h" +#include "compiler/data/vertex-adaptor.h" #include "compiler/function-pass.h" class ResolveSelfStaticParentPass final : public FunctionPassBase { diff --git a/compiler/pipes/sort-and-inherit-classes.cpp b/compiler/pipes/sort-and-inherit-classes.cpp index 8ac7afca66..29ee0a348f 100644 --- a/compiler/pipes/sort-and-inherit-classes.cpp +++ b/compiler/pipes/sort-and-inherit-classes.cpp @@ -4,18 +4,41 @@ #include "compiler/pipes/sort-and-inherit-classes.h" +#include +#include +#include +#include +#include +#include +#include +#include + #include "common/algorithms/compare.h" #include "common/algorithms/contains.h" +#include "common/algorithms/find.h" #include "common/algorithms/hashes.h" - +#include "common/algorithms/string-algorithms.h" +#include "common/wrappers/fmt_format.h" +#include "common/wrappers/iterator_range.h" +#include "common/wrappers/string_view.h" #include "compiler/compiler-core.h" #include "compiler/data/class-data.h" +#include "compiler/data/class-members.h" +#include "compiler/data/class-modifiers.h" +#include "compiler/data/field-modifiers.h" +#include "compiler/data/function-data.h" +#include "compiler/data/function-modifiers.h" #include "compiler/data/src-file.h" +#include "compiler/data/var-data.h" +#include "compiler/kphp_assert.h" +#include "compiler/location.h" #include "compiler/name-gen.h" #include "compiler/pipes/clone-nested-lambdas.h" #include "compiler/stage.h" +#include "compiler/threading/locks.h" #include "compiler/threading/profiler.h" #include "compiler/utils/string-utils.h" +#include "compiler/vertex.h" TSHashTable SortAndInheritClassesF::ht; diff --git a/compiler/pipes/sort-and-inherit-classes.h b/compiler/pipes/sort-and-inherit-classes.h index 087aad9aaf..01e9ca6ab5 100644 --- a/compiler/pipes/sort-and-inherit-classes.h +++ b/compiler/pipes/sort-and-inherit-classes.h @@ -5,9 +5,12 @@ #pragma once #include +#include +#include "auto/compiler/vertex/vertex-types.h" #include "compiler/data/class-members.h" #include "compiler/data/data_ptr.h" +#include "compiler/data/vertex-adaptor.h" #include "compiler/threading/data-stream.h" #include "compiler/threading/hash-table.h" diff --git a/compiler/pipes/split-switch.cpp b/compiler/pipes/split-switch.cpp index fa1b064bf4..07b9565e08 100644 --- a/compiler/pipes/split-switch.cpp +++ b/compiler/pipes/split-switch.cpp @@ -4,11 +4,29 @@ #include "compiler/pipes/split-switch.h" +#include +#include +#include +#include +#include +#include +#include + +#include "auto/compiler/vertex/vertex-types.h" +#include "common/wrappers/iterator_range.h" #include "compiler/compiler-core.h" +#include "compiler/data/function-data.h" #include "compiler/data/src-file.h" +#include "compiler/data/vertex-adaptor.h" #include "compiler/function-pass.h" +#include "compiler/kphp_assert.h" #include "compiler/name-gen.h" +#include "compiler/operation.h" +#include "compiler/stage.h" +#include "compiler/threading/data-stream.h" +#include "compiler/vertex-meta_op_base.h" #include "compiler/vertex-util.h" +#include "compiler/vertex.h" class SplitSwitchPass final : public FunctionPassBase { private: diff --git a/compiler/pipes/transform-to-smart-instanceof.cpp b/compiler/pipes/transform-to-smart-instanceof.cpp index f7e7e8d5f2..3b9599f409 100644 --- a/compiler/pipes/transform-to-smart-instanceof.cpp +++ b/compiler/pipes/transform-to-smart-instanceof.cpp @@ -4,10 +4,21 @@ #include "compiler/pipes/transform-to-smart-instanceof.h" -#include "common/algorithms/compare.h" +#include +#include +#include +#include +#include +#include +#include "common/algorithms/compare.h" +#include "common/algorithms/find.h" +#include "common/wrappers/iterator_range.h" #include "compiler/name-gen.h" +#include "compiler/operation.h" +#include "compiler/vertex-meta_op_base.h" #include "compiler/vertex-util.h" +#include "compiler/vertex.h" bool TransformToSmartInstanceofPass::user_recursion(VertexPtr v) { if (v->type() == op_if) { diff --git a/compiler/pipes/transform-to-smart-instanceof.h b/compiler/pipes/transform-to-smart-instanceof.h index 71f1820d40..61a311af77 100644 --- a/compiler/pipes/transform-to-smart-instanceof.h +++ b/compiler/pipes/transform-to-smart-instanceof.h @@ -8,7 +8,10 @@ #include #include +#include "auto/compiler/vertex/vertex-types.h" #include "compiler/data/data_ptr.h" +#include "compiler/data/function-data.h" +#include "compiler/data/vertex-adaptor.h" #include "compiler/function-pass.h" class TransformToSmartInstanceofPass final : public FunctionPassBase { diff --git a/compiler/pipes/type-inferer.h b/compiler/pipes/type-inferer.h index 7d5997f9cc..41d2907e68 100644 --- a/compiler/pipes/type-inferer.h +++ b/compiler/pipes/type-inferer.h @@ -9,9 +9,6 @@ #include "compiler/pipes/function-and-cfg.h" #include "compiler/threading/data-stream.h" -struct FunctionAndCFG; -template -class DataStream; class TypeInfererF { public: diff --git a/compiler/pipes/wait-for-all-classes.h b/compiler/pipes/wait-for-all-classes.h index fd2c25c0c6..670a09f0f7 100644 --- a/compiler/pipes/wait-for-all-classes.h +++ b/compiler/pipes/wait-for-all-classes.h @@ -13,8 +13,6 @@ #include "compiler/pipes/sync.h" #include "compiler/threading/data-stream.h" -template -class DataStream; class WaitForAllClassesF final : public SyncPipeF { using Base = SyncPipeF; diff --git a/compiler/pipes/write-files.cpp b/compiler/pipes/write-files.cpp index d69a5423de..80975b9196 100644 --- a/compiler/pipes/write-files.cpp +++ b/compiler/pipes/write-files.cpp @@ -4,10 +4,20 @@ #include "compiler/pipes/write-files.h" -#include "common/crc32.h" +#include +#include +#include +#include +#include +#include +#include "common/wrappers/fmt_format.h" +#include "compiler/code-gen/writer-data.h" #include "compiler/compiler-core.h" +#include "compiler/index.h" +#include "compiler/kphp_assert.h" #include "compiler/stage.h" +#include "compiler/threading/data-stream.h" void WriteFilesF::execute(WriterData* data, EmptyStream&) { stage::set_name("Write files"); diff --git a/compiler/rewrite-rules/replace-extern-func-calls.cpp b/compiler/rewrite-rules/replace-extern-func-calls.cpp index 83b17a0150..a3e176f8a0 100644 --- a/compiler/rewrite-rules/replace-extern-func-calls.cpp +++ b/compiler/rewrite-rules/replace-extern-func-calls.cpp @@ -3,17 +3,34 @@ // Distributed under the GPL v3 License, see LICENSE.notice.txt #include "compiler/rewrite-rules/replace-extern-func-calls.h" -#include "compiler/pipes/check-access-modifiers.h" +#include +#include +#include +#include +#include #include +#include "common/wrappers/fmt_format.h" +#include "common/wrappers/iterator_range.h" +#include "common/wrappers/string_view.h" #include "compiler/compiler-core.h" #include "compiler/data/class-data.h" +#include "compiler/data/class-members.h" #include "compiler/data/define-data.h" +#include "compiler/data/field-modifiers.h" #include "compiler/data/function-data.h" +#include "compiler/data/function-modifiers.h" #include "compiler/data/kphp-json-tags.h" #include "compiler/data/kphp-tracing-tags.h" +#include "compiler/data/var-data.h" +#include "compiler/kphp_assert.h" +#include "compiler/operation.h" +#include "compiler/pipes/check-access-modifiers.h" +#include "compiler/stage.h" +#include "compiler/vertex-meta_op_base.h" #include "compiler/vertex-util.h" +#include "compiler/vertex.h" /* * Sometimes, we want to replace f(...) with f'(...) diff --git a/compiler/rewrite-rules/replace-extern-func-calls.h b/compiler/rewrite-rules/replace-extern-func-calls.h index caadb7b641..1041a46281 100644 --- a/compiler/rewrite-rules/replace-extern-func-calls.h +++ b/compiler/rewrite-rules/replace-extern-func-calls.h @@ -4,7 +4,9 @@ #pragma once +#include "auto/compiler/vertex/vertex-types.h" #include "compiler/data/data_ptr.h" +#include "compiler/data/vertex-adaptor.h" #include "compiler/vertex.h" // maybe, replace f(...) with f'(...); see comments in cpp file diff --git a/compiler/rewrite-rules/rules_runtime.cpp b/compiler/rewrite-rules/rules_runtime.cpp index a7c1f1952c..c73e1fd739 100644 --- a/compiler/rewrite-rules/rules_runtime.cpp +++ b/compiler/rewrite-rules/rules_runtime.cpp @@ -4,10 +4,18 @@ #include "compiler/rewrite-rules/rules_runtime.h" +#include + +#include "common/wrappers/string_view.h" +#include "compiler/data/data_ptr.h" #include "compiler/data/function-data.h" #include "compiler/inferring/public.h" +#include "compiler/kphp_assert.h" +#include "compiler/operation.h" +#include "compiler/stage.h" #include "compiler/type-hint.h" #include "compiler/vertex-util.h" +#include "compiler/vertex.h" namespace rewrite_rules { diff --git a/compiler/rewrite-rules/rules_runtime.h b/compiler/rewrite-rules/rules_runtime.h index 4ac513a062..295c9ec24b 100644 --- a/compiler/rewrite-rules/rules_runtime.h +++ b/compiler/rewrite-rules/rules_runtime.h @@ -7,9 +7,17 @@ // This file is intended to be used inside auto-generated rewrite rules. // Do not include it from somewhere else. +#include +#include +#include + +#include "auto/compiler/vertex/vertex-op_func_call.h" +#include "auto/compiler/vertex/vertex-types.h" +#include "common/wrappers/iterator_range.h" #include "compiler/compiler-core.h" +#include "compiler/data/vertex-adaptor.h" +#include "compiler/vertex-meta_op_base.h" #include "compiler/vertex.h" -#include namespace rewrite_rules { diff --git a/compiler/scheduler/one-thread-scheduler.cpp b/compiler/scheduler/one-thread-scheduler.cpp index 5770fff08b..86f92ad034 100644 --- a/compiler/scheduler/one-thread-scheduler.cpp +++ b/compiler/scheduler/one-thread-scheduler.cpp @@ -5,7 +5,7 @@ #include "compiler/scheduler/one-thread-scheduler.h" #include -#include +#include #include "compiler/scheduler/node.h" #include "compiler/scheduler/task-pull.h" diff --git a/compiler/scheduler/scheduler.cpp b/compiler/scheduler/scheduler.cpp index 54a277112d..861836dc0d 100644 --- a/compiler/scheduler/scheduler.cpp +++ b/compiler/scheduler/scheduler.cpp @@ -5,7 +5,7 @@ #include "compiler/scheduler/scheduler.h" #include -#include +#include #include #include #include diff --git a/compiler/scheduler/scheduler.h b/compiler/scheduler/scheduler.h index 6735f7623a..a6c3b5fbb1 100644 --- a/compiler/scheduler/scheduler.h +++ b/compiler/scheduler/scheduler.h @@ -12,7 +12,6 @@ class Node; class Task; -class TaskPull; class ThreadContext; class Scheduler : public SchedulerBase { diff --git a/compiler/stage.cpp b/compiler/stage.cpp index f11d6a1066..97ab8ae121 100644 --- a/compiler/stage.cpp +++ b/compiler/stage.cpp @@ -4,13 +4,24 @@ #include "compiler/stage.h" +#include +#include +#include +#include + +#include "auto/compiler/vertex/vertex-op_function.h" +#include "common/algorithms/string-algorithms.h" #include "common/termformat/termformat.h" +#include "common/wrappers/fmt_format.h" #include "common/wrappers/pathname.h" - +#include "common/wrappers/string_view.h" #include "compiler/compiler-core.h" +#include "compiler/compiler-settings.h" #include "compiler/data/function-data.h" #include "compiler/data/src-file.h" +#include "compiler/data/vertex-adaptor.h" #include "compiler/name-gen.h" +#include "compiler/threading/locks.h" #include "compiler/threading/tls.h" #include "compiler/utils/string-utils.h" diff --git a/compiler/stage.h b/compiler/stage.h index db2536be2c..5b5a0147d1 100644 --- a/compiler/stage.h +++ b/compiler/stage.h @@ -5,10 +5,11 @@ #pragma once #include +#include +#include #include #include "common/exit-codes.h" - #include "compiler/data/data_ptr.h" #include "compiler/kphp_assert.h" #include "compiler/location.h" diff --git a/compiler/stats.cpp b/compiler/stats.cpp index 835df1c4bf..fc5006159e 100644 --- a/compiler/stats.cpp +++ b/compiler/stats.cpp @@ -6,6 +6,7 @@ #include #include +#include #include #include "common/dl-utils-lite.h" diff --git a/compiler/stats.h b/compiler/stats.h index 31c2bfa011..18d6f6a4e7 100644 --- a/compiler/stats.h +++ b/compiler/stats.h @@ -5,8 +5,8 @@ #pragma once #include +#include #include -#include #include #include @@ -14,7 +14,6 @@ #include "compiler/data/var-data.h" #include "compiler/threading/profiler.h" -class ProfilerRaw; class Stats { public: diff --git a/compiler/threading/profiler.cpp b/compiler/threading/profiler.cpp index c023f7a8e6..86e25ec381 100644 --- a/compiler/threading/profiler.cpp +++ b/compiler/threading/profiler.cpp @@ -5,7 +5,11 @@ #include "compiler/threading/profiler.h" #include +#include +#include #include +#include +#include #include #include "common/termformat/termformat.h" diff --git a/compiler/threading/profiler.h b/compiler/threading/profiler.h index fa6bf2d5fa..70ccd745f8 100644 --- a/compiler/threading/profiler.h +++ b/compiler/threading/profiler.h @@ -4,13 +4,16 @@ #pragma once +#include #include #include +#include +#include #include #include +#include #include "common/mixin/not_copyable.h" - #include "compiler/threading/tls.h" size_t get_thread_memory_usage(); diff --git a/compiler/tl-classes.cpp b/compiler/tl-classes.cpp index 02ca2faf20..a4c34cf10c 100644 --- a/compiler/tl-classes.cpp +++ b/compiler/tl-classes.cpp @@ -4,9 +4,13 @@ #include "compiler/tl-classes.h" +#include +#include +#include + #include "common/tlo-parsing/tlo-parsing.h" #include "common/wrappers/fmt_format.h" - +#include "compiler/kphp_assert.h" #include "compiler/stage.h" void TlClasses::load_from(const std::string& tlo_schema, bool generate_tl_internals) { diff --git a/compiler/tl-classes.h b/compiler/tl-classes.h index fc7c980207..b743fa1826 100644 --- a/compiler/tl-classes.h +++ b/compiler/tl-classes.h @@ -4,9 +4,11 @@ #pragma once +#include +#include + #include "common/tl2php/php-classes.h" #include "common/tlo-parsing/tl-objects.h" - #include "compiler/data/data_ptr.h" class TlClasses { diff --git a/compiler/type-hint.h b/compiler/type-hint.h index e0d2e0f212..60852f2fea 100644 --- a/compiler/type-hint.h +++ b/compiler/type-hint.h @@ -4,9 +4,9 @@ #pragma once +#include #include #include -#include #include #include #include diff --git a/compiler/utils/string-utils.h b/compiler/utils/string-utils.h index a9b0dc5c6c..7aa085e3a3 100644 --- a/compiler/utils/string-utils.h +++ b/compiler/utils/string-utils.h @@ -5,10 +5,10 @@ #pragma once #include +#include #include -#include -#include -#include +#include +#include #include #include #include diff --git a/compiler/vertex-util.cpp b/compiler/vertex-util.cpp index 9c90b0c6f7..bae52447e5 100644 --- a/compiler/vertex-util.cpp +++ b/compiler/vertex-util.cpp @@ -4,12 +4,21 @@ #include "compiler/vertex-util.h" +#include +#include +#include +#include #include +#include #include "common/algorithms/contains.h" +#include "common/wrappers/iterator_range.h" #include "compiler/data/class-data.h" #include "compiler/data/var-data.h" #include "compiler/name-gen.h" +#include "compiler/operation.h" +#include "compiler/vertex-meta_op_base.h" +#include "compiler/vertex.h" VertexPtr VertexUtil::get_actual_value(VertexPtr v) { if (auto var = v.try_as()) { diff --git a/compiler/vertex-util.h b/compiler/vertex-util.h index 62cd237e26..5bf52b927d 100644 --- a/compiler/vertex-util.h +++ b/compiler/vertex-util.h @@ -4,6 +4,14 @@ #pragma once +#include +#include +#include + +#include "auto/compiler/vertex/vertex-types.h" +#include "compiler/data/data_ptr.h" +#include "compiler/data/vertex-adaptor.h" +#include "compiler/inferring/primitive-type.h" #include "compiler/vertex.h" // This class contains helper methods that operate on various vertices. diff --git a/compiler/vertex.cpp b/compiler/vertex.cpp index c3795b528d..f011bd735b 100644 --- a/compiler/vertex.cpp +++ b/compiler/vertex.cpp @@ -4,6 +4,8 @@ #include "compiler/vertex.h" +#include + VertexPtr clone_vertex(VertexPtr from) { switch (from->type()) { #define FOREACH_OP(x) \ diff --git a/compiler/vertex.h b/compiler/vertex.h index 98be7e469a..20be018de5 100644 --- a/compiler/vertex.h +++ b/compiler/vertex.h @@ -4,11 +4,19 @@ #pragma once -#include "auto/compiler/vertex/vertex-all.h" +#include +#include +#include +#include +#include "auto/compiler/vertex/vertex-all.h" +#include "auto/compiler/vertex/vertex-types.h" #include "compiler/data/data_ptr.h" +#include "compiler/data/vertex-adaptor.h" +#include "compiler/kphp_assert.h" #include "compiler/stage.h" #include "compiler/threading/profiler.h" +#include "compiler/vertex-meta_op_base.h" namespace std { template diff --git a/tests/cpp/compiler/ffi-parser-test.cpp b/tests/cpp/compiler/ffi-parser-test.cpp index 5de93ffcae..703d99ecb3 100644 --- a/tests/cpp/compiler/ffi-parser-test.cpp +++ b/tests/cpp/compiler/ffi-parser-test.cpp @@ -6,8 +6,8 @@ #include #include #include -#include -#include +#include +#include #include #include #include diff --git a/tests/cpp/compiler/lexer-test.cpp b/tests/cpp/compiler/lexer-test.cpp index 7b94cf72c0..85118bb1f4 100644 --- a/tests/cpp/compiler/lexer-test.cpp +++ b/tests/cpp/compiler/lexer-test.cpp @@ -5,6 +5,7 @@ #include #include +#include "common/wrappers/string_view.h" #include "compiler/debug.h" #include "compiler/lexer.h" #include "compiler/token.h" diff --git a/tests/cpp/compiler/phpdoc-test.cpp b/tests/cpp/compiler/phpdoc-test.cpp index 0c1800ffd5..56c38e3dc9 100644 --- a/tests/cpp/compiler/phpdoc-test.cpp +++ b/tests/cpp/compiler/phpdoc-test.cpp @@ -3,6 +3,7 @@ #include #include +#include "common/wrappers/string_view.h" #include "compiler/phpdoc.h" TEST(phpdoc_test, parse_php_doc) { From 9586cdcd349efa9330b13cabf913b748848e6101 Mon Sep 17 00:00:00 2001 From: Denis Zubarev Date: Tue, 8 Sep 2026 18:11:55 +0300 Subject: [PATCH 5/5] fix --- compiler/make/hardlink-or-copy.cpp | 1 - 1 file changed, 1 deletion(-) diff --git a/compiler/make/hardlink-or-copy.cpp b/compiler/make/hardlink-or-copy.cpp index c9a265ed40..c66aa21a95 100644 --- a/compiler/make/hardlink-or-copy.cpp +++ b/compiler/make/hardlink-or-copy.cpp @@ -9,7 +9,6 @@ #include #include #include -#include #include #include