diff --git a/include/yaml-cpp/emitfromevents.h b/include/yaml-cpp/emitfromevents.h index d760337..59300c5 100644 --- a/include/yaml-cpp/emitfromevents.h +++ b/include/yaml-cpp/emitfromevents.h @@ -7,9 +7,15 @@ #pragma once #endif -#include "yaml-cpp/eventhandler.h" #include +#include "yaml-cpp/anchor.h" +#include "yaml-cpp/eventhandler.h" + +namespace YAML { +struct Mark; +} // namespace YAML + namespace YAML { class Emitter; diff --git a/include/yaml-cpp/emitter.h b/include/yaml-cpp/emitter.h index 484fcc7..a8f56dc 100644 --- a/include/yaml-cpp/emitter.h +++ b/include/yaml-cpp/emitter.h @@ -7,16 +7,22 @@ #pragma once #endif -#include "yaml-cpp/dll.h" +#include +#include +#include + #include "yaml-cpp/binary.h" +#include "yaml-cpp/dll.h" #include "yaml-cpp/emitterdef.h" #include "yaml-cpp/emittermanip.h" #include "yaml-cpp/noncopyable.h" #include "yaml-cpp/null.h" #include "yaml-cpp/ostream_wrapper.h" -#include -#include -#include + +namespace YAML { +class Binary; +struct _Null; +} // namespace YAML namespace YAML { class EmitterState; diff --git a/include/yaml-cpp/parser.h b/include/yaml-cpp/parser.h index 18389bb..24880e4 100644 --- a/include/yaml-cpp/parser.h +++ b/include/yaml-cpp/parser.h @@ -7,16 +7,18 @@ #pragma once #endif -#include "yaml-cpp/dll.h" -#include "yaml-cpp/noncopyable.h" #include #include +#include "yaml-cpp/dll.h" +#include "yaml-cpp/noncopyable.h" + namespace YAML { +class EventHandler; +class Node; +class Scanner; struct Directives; struct Token; -class EventHandler; -class Scanner; class YAML_CPP_API Parser : private noncopyable { public: diff --git a/src/contrib/graphbuilder.cpp b/src/contrib/graphbuilder.cpp index 9981e15..416c135 100644 --- a/src/contrib/graphbuilder.cpp +++ b/src/contrib/graphbuilder.cpp @@ -1,8 +1,10 @@ -#include "yaml-cpp/parser.h" -#include "yaml-cpp/contrib/graphbuilder.h" #include "graphbuilderadapter.h" +#include "yaml-cpp/parser.h" // IWYU pragma: keep + namespace YAML { +class GraphBuilderInterface; + void* BuildGraphOfNextDocument(Parser& parser, GraphBuilderInterface& graphBuilder) { GraphBuilderAdapter eventHandler(graphBuilder); diff --git a/src/contrib/graphbuilderadapter.cpp b/src/contrib/graphbuilderadapter.cpp index 5967e88..663a9e9 100644 --- a/src/contrib/graphbuilderadapter.cpp +++ b/src/contrib/graphbuilderadapter.cpp @@ -1,6 +1,9 @@ #include "graphbuilderadapter.h" +#include "yaml-cpp/contrib/graphbuilder.h" namespace YAML { +struct Mark; + int GraphBuilderAdapter::ContainerFrame::sequenceMarker; void GraphBuilderAdapter::OnNull(const Mark &mark, anchor_t anchor) { diff --git a/src/contrib/graphbuilderadapter.h b/src/contrib/graphbuilderadapter.h index f331225..c54efa5 100644 --- a/src/contrib/graphbuilderadapter.h +++ b/src/contrib/graphbuilderadapter.h @@ -10,9 +10,16 @@ #include #include #include -#include "yaml-cpp/eventhandler.h" + +#include "yaml-cpp/anchor.h" #include "yaml-cpp/contrib/anchordict.h" #include "yaml-cpp/contrib/graphbuilder.h" +#include "yaml-cpp/eventhandler.h" + +namespace YAML { +class GraphBuilderInterface; +struct Mark; +} // namespace YAML namespace YAML { class GraphBuilderAdapter : public EventHandler { diff --git a/src/emitfromevents.cpp b/src/emitfromevents.cpp index 4552ddd..baf39be 100644 --- a/src/emitfromevents.cpp +++ b/src/emitfromevents.cpp @@ -1,9 +1,15 @@ -#include "yaml-cpp/emitfromevents.h" -#include "yaml-cpp/emitter.h" -#include "yaml-cpp/null.h" #include #include +#include "yaml-cpp/emitfromevents.h" +#include "yaml-cpp/emitter.h" +#include "yaml-cpp/emittermanip.h" +#include "yaml-cpp/null.h" + +namespace YAML { +struct Mark; +} // namespace YAML + namespace { std::string ToString(YAML::anchor_t anchor) { std::stringstream stream; diff --git a/src/emitter.cpp b/src/emitter.cpp index d905517..c666901 100644 --- a/src/emitter.cpp +++ b/src/emitter.cpp @@ -1,11 +1,16 @@ -#include "yaml-cpp/emitter.h" -#include "emitterstate.h" -#include "emitterutils.h" -#include "indentation.h" -#include "yaml-cpp/exceptions.h" #include +#include "emitterutils.h" +#include "indentation.h" // IWYU pragma: keep +#include "yaml-cpp/emitter.h" +#include "yaml-cpp/emitterdef.h" +#include "yaml-cpp/emittermanip.h" +#include "yaml-cpp/exceptions.h" // IWYU pragma: keep + namespace YAML { +class Binary; +struct _Null; + Emitter::Emitter() : m_pState(new EmitterState) {} Emitter::Emitter(std::ostream& stream) diff --git a/src/emitterstate.cpp b/src/emitterstate.cpp index 539994c..c99509f 100644 --- a/src/emitterstate.cpp +++ b/src/emitterstate.cpp @@ -1,7 +1,8 @@ -#include "emitterstate.h" -#include "yaml-cpp/exceptions.h" #include +#include "emitterstate.h" +#include "yaml-cpp/exceptions.h" // IWYU pragma: keep + namespace YAML { EmitterState::EmitterState() : m_isGood(true), diff --git a/src/emitterutils.cpp b/src/emitterutils.cpp index 80d2740..7438bf6 100644 --- a/src/emitterutils.cpp +++ b/src/emitterutils.cpp @@ -1,11 +1,14 @@ +#include +#include + #include "emitterutils.h" #include "exp.h" #include "indentation.h" -#include "yaml-cpp/binary.h" -#include "yaml-cpp/exceptions.h" +#include "regex_yaml.h" +#include "regeximpl.h" #include "stringsource.h" -#include -#include +#include "yaml-cpp/binary.h" // IWYU pragma: keep +#include "yaml-cpp/ostream_wrapper.h" namespace YAML { namespace Utils { diff --git a/src/emitterutils.h b/src/emitterutils.h index 398a02c..d80ccaa 100644 --- a/src/emitterutils.h +++ b/src/emitterutils.h @@ -7,10 +7,16 @@ #pragma once #endif -#include "emitterstate.h" -#include "yaml-cpp/ostream_wrapper.h" #include +#include "emitterstate.h" +#include "yaml-cpp/emittermanip.h" +#include "yaml-cpp/ostream_wrapper.h" + +namespace YAML { +class ostream_wrapper; +} // namespace YAML + namespace YAML { class Binary; diff --git a/src/exp.cpp b/src/exp.cpp index 7986bf9..695440a 100644 --- a/src/exp.cpp +++ b/src/exp.cpp @@ -1,7 +1,13 @@ -#include "exp.h" -#include "yaml-cpp/exceptions.h" #include +#include "exp.h" +#include "stream.h" +#include "yaml-cpp/exceptions.h" // IWYU pragma: keep + +namespace YAML { +struct Mark; +} // namespace YAML + namespace YAML { namespace Exp { unsigned ParseHex(const std::string& str, const Mark& mark) { diff --git a/src/exp.h b/src/exp.h index 10eb27a..f248802 100644 --- a/src/exp.h +++ b/src/exp.h @@ -7,9 +7,10 @@ #pragma once #endif -#include "regex_yaml.h" -#include #include +#include + +#include "regex_yaml.h" #include "stream.h" namespace YAML { diff --git a/src/parser.cpp b/src/parser.cpp index 044c296..9310576 100644 --- a/src/parser.cpp +++ b/src/parser.cpp @@ -1,15 +1,16 @@ -#include "yaml-cpp/parser.h" -#include "yaml-cpp/eventhandler.h" -#include "yaml-cpp/exceptions.h" -#include "directives.h" -#include "scanner.h" -#include "singledocparser.h" -#include "tag.h" -#include "token.h" -#include #include +#include + +#include "directives.h" // IWYU pragma: keep +#include "scanner.h" // IWYU pragma: keep +#include "singledocparser.h" +#include "token.h" +#include "yaml-cpp/exceptions.h" // IWYU pragma: keep +#include "yaml-cpp/parser.h" namespace YAML { +class EventHandler; + Parser::Parser() {} Parser::Parser(std::istream& in) { Load(in); } diff --git a/src/regex_yaml.h b/src/regex_yaml.h index 2177354..247e5a5 100644 --- a/src/regex_yaml.h +++ b/src/regex_yaml.h @@ -7,8 +7,8 @@ #pragma once #endif -#include #include +#include namespace YAML { class Stream; diff --git a/src/scanner.cpp b/src/scanner.cpp index 91272bb..82c1b2f 100644 --- a/src/scanner.cpp +++ b/src/scanner.cpp @@ -1,10 +1,11 @@ -#include "scanner.h" -#include "token.h" -#include "yaml-cpp/exceptions.h" -#include "exp.h" #include #include +#include "exp.h" +#include "scanner.h" +#include "token.h" +#include "yaml-cpp/exceptions.h" // IWYU pragma: keep + namespace YAML { Scanner::Scanner(std::istream& in) : INPUT(in), diff --git a/src/scanner.h b/src/scanner.h index 0643214..204259b 100644 --- a/src/scanner.h +++ b/src/scanner.h @@ -8,14 +8,16 @@ #endif #include -#include -#include -#include -#include #include +#include +#include +#include +#include + #include "ptr_vector.h" #include "stream.h" #include "token.h" +#include "yaml-cpp/mark.h" namespace YAML { class Node; diff --git a/src/scanscalar.cpp b/src/scanscalar.cpp index c09aca7..165742e 100644 --- a/src/scanscalar.cpp +++ b/src/scanscalar.cpp @@ -1,8 +1,8 @@ -#include "scanscalar.h" -#include "scanner.h" #include "exp.h" -#include "yaml-cpp/exceptions.h" -#include "token.h" +#include "regeximpl.h" +#include "scanscalar.h" +#include "stream.h" +#include "yaml-cpp/exceptions.h" // IWYU pragma: keep namespace YAML { // ScanScalar diff --git a/src/scanscalar.h b/src/scanscalar.h index 315476d..f7f369b 100644 --- a/src/scanscalar.h +++ b/src/scanscalar.h @@ -8,6 +8,7 @@ #endif #include + #include "regex_yaml.h" #include "stream.h" diff --git a/src/scantag.cpp b/src/scantag.cpp index 471ac19..c5b3965 100644 --- a/src/scantag.cpp +++ b/src/scantag.cpp @@ -1,7 +1,9 @@ -#include "scanner.h" -#include "regex_yaml.h" #include "exp.h" -#include "yaml-cpp/exceptions.h" +#include "regex_yaml.h" +#include "regeximpl.h" +#include "stream.h" +#include "yaml-cpp/exceptions.h" // IWYU pragma: keep +#include "yaml-cpp/mark.h" namespace YAML { const std::string ScanVerbatimTag(Stream& INPUT) { diff --git a/src/scantoken.cpp b/src/scantoken.cpp index dc9396e..d941b68 100644 --- a/src/scantoken.cpp +++ b/src/scantoken.cpp @@ -1,12 +1,16 @@ -#include "scanner.h" -#include "token.h" -#include "yaml-cpp/exceptions.h" -#include "exp.h" -#include "scanscalar.h" -#include "scantag.h" -#include "tag.h" #include +#include "exp.h" +#include "regex_yaml.h" +#include "regeximpl.h" +#include "scanner.h" +#include "scanscalar.h" +#include "scantag.h" // IWYU pragma: keep +#include "tag.h" // IWYU pragma: keep +#include "token.h" +#include "yaml-cpp/exceptions.h" // IWYU pragma: keep +#include "yaml-cpp/mark.h" + namespace YAML { /////////////////////////////////////////////////////////////////////// // Specialization for scanning specific tokens diff --git a/src/simplekey.cpp b/src/simplekey.cpp index 362bfc1..bec8720 100644 --- a/src/simplekey.cpp +++ b/src/simplekey.cpp @@ -1,9 +1,9 @@ #include "scanner.h" #include "token.h" -#include "yaml-cpp/exceptions.h" -#include "exp.h" namespace YAML { +struct Mark; + Scanner::SimpleKey::SimpleKey(const Mark& mark_, int flowLevel_) : mark(mark_), flowLevel(flowLevel_), pIndent(0), pMapStart(0), pKey(0) {} diff --git a/src/singledocparser.cpp b/src/singledocparser.cpp index 918ff85..ad72421 100644 --- a/src/singledocparser.cpp +++ b/src/singledocparser.cpp @@ -1,14 +1,15 @@ -#include "singledocparser.h" -#include "collectionstack.h" -#include "directives.h" -#include "yaml-cpp/eventhandler.h" -#include "yaml-cpp/exceptions.h" +#include +#include +#include + +#include "collectionstack.h" // IWYU pragma: keep #include "scanner.h" +#include "singledocparser.h" #include "tag.h" #include "token.h" -#include -#include -#include +#include "yaml-cpp/eventhandler.h" +#include "yaml-cpp/exceptions.h" // IWYU pragma: keep +#include "yaml-cpp/mark.h" namespace YAML { SingleDocParser::SingleDocParser(Scanner& scanner, const Directives& directives) diff --git a/src/singledocparser.h b/src/singledocparser.h index d4d605b..ed0aad5 100644 --- a/src/singledocparser.h +++ b/src/singledocparser.h @@ -7,20 +7,21 @@ #pragma once #endif -#include "yaml-cpp/anchor.h" -#include "yaml-cpp/noncopyable.h" -#include #include #include +#include + +#include "yaml-cpp/anchor.h" +#include "yaml-cpp/noncopyable.h" namespace YAML { -struct Directives; -struct Mark; -struct Token; class CollectionStack; class EventHandler; class Node; class Scanner; +struct Directives; +struct Mark; +struct Token; class SingleDocParser : private noncopyable { public: diff --git a/src/stream.cpp b/src/stream.cpp index f285e0a..7df635f 100644 --- a/src/stream.cpp +++ b/src/stream.cpp @@ -1,6 +1,6 @@ -#include "stream.h" #include -#include "exp.h" + +#include "stream.h" #ifndef YAML_PREFETCH_SIZE #define YAML_PREFETCH_SIZE 2048 diff --git a/src/tag.cpp b/src/tag.cpp index 6e2f5b9..5143552 100644 --- a/src/tag.cpp +++ b/src/tag.cpp @@ -1,9 +1,10 @@ -#include "tag.h" -#include "directives.h" -#include "token.h" #include #include +#include "directives.h" // IWYU pragma: keep +#include "tag.h" +#include "token.h" + namespace YAML { Tag::Tag(const Token& token) : type(static_cast(token.data)) { switch (type) { diff --git a/src/tag.h b/src/tag.h index f1768ba..ac30673 100644 --- a/src/tag.h +++ b/src/tag.h @@ -10,8 +10,8 @@ #include namespace YAML { -struct Token; struct Directives; +struct Token; struct Tag { enum TYPE { diff --git a/test/core/parsertests.cpp b/test/core/parsertests.cpp index fea10c3..95eb168 100644 --- a/test/core/parsertests.cpp +++ b/test/core/parsertests.cpp @@ -1,8 +1,15 @@ -#include "parsertests.h" -#include "handlermacros.h" -#include "yaml-cpp/yaml.h" #include +#include "handlermacros.h" +#include "parsertests.h" // IWYU pragma: keep +#include "teststruct.h" +#include "yaml-cpp/parser.h" + +namespace YAML { +class Exception; +class ParserException; +} // namespace YAML + namespace Test { namespace Parser { TEST NoEndOfMapFlow() { diff --git a/test/core/spectests.cpp b/test/core/spectests.cpp index 549b19c..66692bf 100644 --- a/test/core/spectests.cpp +++ b/test/core/spectests.cpp @@ -1,9 +1,10 @@ -#include "spectests.h" -#include "handlermacros.h" -#include "specexamples.h" -#include "yaml-cpp/yaml.h" #include +#include "handlermacros.h" +#include "specexamples.h" // IWYU pragma: keep +#include "spectests.h" // IWYU pragma: keep +#include "yaml-cpp/yaml.h" // IWYU pragma: keep + namespace Test { namespace Spec { // 2.1 diff --git a/test/emittertests.cpp b/test/emittertests.cpp index 7dbb118..1cade03 100644 --- a/test/emittertests.cpp +++ b/test/emittertests.cpp @@ -1,8 +1,9 @@ -#include "tests.h" -#include "handlermacros.h" -#include "yaml-cpp/yaml.h" #include +#include "teststruct.h" +#include "yaml-cpp/eventhandler.h" +#include "yaml-cpp/yaml.h" // IWYU pragma: keep + namespace Test { namespace Emitter { //////////////////////////////////////////////////////////////////////////////////////////////////////// diff --git a/test/ostream_wrapper_test.cpp b/test/ostream_wrapper_test.cpp index d325a51..cdc1f05 100644 --- a/test/ostream_wrapper_test.cpp +++ b/test/ostream_wrapper_test.cpp @@ -1,8 +1,8 @@ -#include "yaml-cpp/ostream_wrapper.h" - +#include #include #include "gtest/gtest.h" +#include "yaml-cpp/ostream_wrapper.h" namespace { TEST(OstreamWrapperTest, BufferNoWrite) { diff --git a/test/spectests.cpp b/test/spectests.cpp index 92475b9..156501f 100644 --- a/test/spectests.cpp +++ b/test/spectests.cpp @@ -1,7 +1,12 @@ -#include "spectests.h" -#include "yaml-cpp/yaml.h" #include +#include "spectests.h" +#include "yaml-cpp/yaml.h" // IWYU pragma: keep + +namespace YAML { +class Exception; +} // namespace YAML + namespace Test { namespace { void RunSpecTest(TEST (*test)(), const std::string& index, diff --git a/test/tests.cpp b/test/tests.cpp index 3c20995..f50e2fb 100644 --- a/test/tests.cpp +++ b/test/tests.cpp @@ -1,13 +1,13 @@ -#include "tests.h" +#include +#include +#include +#include + #include "emittertests.h" #include "nodetests.h" #include "parsertests.h" #include "spectests.h" -#include "yaml-cpp/yaml.h" -#include -#include -#include -#include +#include "tests.h" namespace Test { void RunAll() { diff --git a/util/read.cpp b/util/read.cpp index 97514aa..4af26a9 100644 --- a/util/read.cpp +++ b/util/read.cpp @@ -1,7 +1,7 @@ -#include "yaml-cpp/yaml.h" -#include "yaml-cpp/eventhandler.h" #include +#include "yaml-cpp/yaml.h" // IWYU pragma: keep + class NullEventHandler : public YAML::EventHandler { public: typedef YAML::Mark Mark; diff --git a/util/sandbox.cpp b/util/sandbox.cpp index bcac992..c5637fe 100644 --- a/util/sandbox.cpp +++ b/util/sandbox.cpp @@ -1,7 +1,8 @@ -#include "yaml-cpp/yaml.h" -#include "yaml-cpp/eventhandler.h" #include +#include "yaml-cpp/eventhandler.h" +#include "yaml-cpp/yaml.h" // IWYU pragma: keep + class NullEventHandler : public YAML::EventHandler { public: typedef YAML::Mark Mark;