Skip to content

Missing Includes #528

@BestITUserEUW

Description

@BestITUserEUW

This issue was introduced in 732e9fe. Reproducable with the following:

#include <print>
#include <string>

#include <rfl/json/read.hpp> // Changing this to rfl/json.hpp compilation works again

struct Error {
    std::string what;
};

auto main() -> int {
    auto result = rfl::json::read<Error>("");
    if (!result) {
        std::println("{}", result.error().what());
    }

    return 0;
}

Resulting in a compilation error:

FAILED: CMakeFiles/reflectcpp_506.dir/main.cpp.o 
/usr/bin/c++  -I/home/phile/Sandbox/reflect-cpp-506/build/_deps/reflectcpp-src/include -I/home/phile/Sandbox/reflect-cpp-506/build/_deps/reflectcpp-src/include/rfl/thirdparty -std=gnu++23 -Wall -Wextra -Wuninitialized -Wno-unused-function -Wunused-variable -MD -MT CMakeFiles/reflectcpp_506.dir/main.cpp.o -MF CMakeFiles/reflectcpp_506.dir/main.cpp.o.d -fmodules-ts -fmodule-mapper=CMakeFiles/reflectcpp_506.dir/main.cpp.o.modmap -MD -fdeps-format=p1689r5 -x c++ -o CMakeFiles/reflectcpp_506.dir/main.cpp.o -c /home/phile/Sandbox/reflect-cpp-506/main.cpp
In file included from /home/phile/Sandbox/reflect-cpp-506/build/_deps/reflectcpp-src/include/rfl/json/../Processors.hpp:6,
                 from /home/phile/Sandbox/reflect-cpp-506/build/_deps/reflectcpp-src/include/rfl/json/read.hpp:13,
                 from /home/phile/Sandbox/reflect-cpp-506/main.cpp:5:
/home/phile/Sandbox/reflect-cpp-506/build/_deps/reflectcpp-src/include/rfl/json/../internal/is_add_tags_to_variants_v.hpp:17:31: error: ‘AddTagsToVariants’ was not declared in this scope; did you mean ‘is_add_tags_to_variants’?
   17 | class is_add_tags_to_variants<AddTagsToVariants> : public std::true_type {};
      |                               ^~~~~~~~~~~~~~~~~
      |                               is_add_tags_to_variants
/home/phile/Sandbox/reflect-cpp-506/build/_deps/reflectcpp-src/include/rfl/json/../internal/is_add_tags_to_variants_v.hpp:17:48: error: template argument 1 is invalid
   17 | class is_add_tags_to_variants<AddTagsToVariants> : public std::true_type {};
      |                                                ^
/home/phile/Sandbox/reflect-cpp-506/build/_deps/reflectcpp-src/include/rfl/json/../internal/is_add_tags_to_variants_v.hpp:30:42: error: ‘AddNamespacedTagsToVariants’ was not declared in this scope; did you mean ‘is_add_namespaced_tags_to_variants’?
   30 | class is_add_namespaced_tags_to_variants<AddNamespacedTagsToVariants> : public std::true_type {};
      |                                          ^~~~~~~~~~~~~~~~~~~~~~~~~~~
      |                                          is_add_namespaced_tags_to_variants
/home/phile/Sandbox/reflect-cpp-506/build/_deps/reflectcpp-src/include/rfl/json/../internal/is_add_tags_to_variants_v.hpp:30:69: error: template argument 1 is invalid
   30 | class is_add_namespaced_tags_to_variants<AddNamespacedTagsToVariants> : public std::true_type {};
      |                                                                     ^
In file included from /home/phile/Sandbox/reflect-cpp-506/build/_deps/reflectcpp-src/include/rfl/json/../Processors.hpp:8:
/home/phile/Sandbox/reflect-cpp-506/build/_deps/reflectcpp-src/include/rfl/json/../internal/is_default_if_missing_v.hpp:18:29: error: ‘DefaultIfMissing’ was not declared in this scope; did you mean ‘is_default_if_missing’?
   18 | class is_default_if_missing<DefaultIfMissing> : public std::true_type {};
      |                             ^~~~~~~~~~~~~~~~
      |                             is_default_if_missing
/home/phile/Sandbox/reflect-cpp-506/build/_deps/reflectcpp-src/include/rfl/json/../internal/is_default_if_missing_v.hpp:18:45: error: template argument 1 is invalid
   18 | class is_default_if_missing<DefaultIfMissing> : public std::true_type {};
      |                                             ^
In file included from /home/phile/Sandbox/reflect-cpp-506/build/_deps/reflectcpp-src/include/rfl/json/../Processors.hpp:10:
/home/phile/Sandbox/reflect-cpp-506/build/_deps/reflectcpp-src/include/rfl/json/../internal/is_no_field_names_v.hpp:18:25: error: ‘NoFieldNames’ was not declared in this scope
   18 | class is_no_field_names<NoFieldNames> : public std::true_type {};
      |                         ^~~~~~~~~~~~
/home/phile/Sandbox/reflect-cpp-506/build/_deps/reflectcpp-src/include/rfl/json/../internal/is_no_field_names_v.hpp:18:37: error: template argument 1 is invalid
   18 | class is_no_field_names<NoFieldNames> : public std::true_type {};
      |                                     ^
In file included from /home/phile/Sandbox/reflect-cpp-506/build/_deps/reflectcpp-src/include/rfl/json/../parsing/MapParser.hpp:17,
                 from /home/phile/Sandbox/reflect-cpp-506/build/_deps/reflectcpp-src/include/rfl/json/../parsing/Parser_map_like.hpp:12,
                 from /home/phile/Sandbox/reflect-cpp-506/build/_deps/reflectcpp-src/include/rfl/json/../parsing/Parser.hpp:12,
                 from /home/phile/Sandbox/reflect-cpp-506/build/_deps/reflectcpp-src/include/rfl/json/Parser.hpp:4,
                 from /home/phile/Sandbox/reflect-cpp-506/build/_deps/reflectcpp-src/include/rfl/json/read.hpp:15:
ninja: build stopped: subcommand failed.

Seems like too many includes have been cleaned up in this commit. Maybe the tests could be changed to only include what they need, this would've caught this issue in the pipeline.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions