[tint] Cleanup forward declarations This CL cleans up forward declarations which are no longer referenced in the given header file. A couple of declarations are added in files which need them which lose the transitive declaration. Change-Id: I7182a7af0396555ca823df97b8ebab3ede92e25c Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/291756 Commit-Queue: James Price <jrprice@google.com> Auto-Submit: dan sinclair <dsinclair@chromium.org> Reviewed-by: James Price <jrprice@google.com> Commit-Queue: dan sinclair <dsinclair@chromium.org>
diff --git a/src/tint/cmd/common/helper.h b/src/tint/cmd/common/helper.h index 28ad3a2..f5c7fef 100644 --- a/src/tint/cmd/common/helper.h +++ b/src/tint/cmd/common/helper.h
@@ -53,7 +53,7 @@ // Forward declarations namespace tint { class Program; -class InternalCompilerError; +class StyledTextPrinter; } // namespace tint namespace tint::cmd {
diff --git a/src/tint/lang/core/intrinsic/table.h b/src/tint/lang/core/intrinsic/table.h index e5d8dd4..36fcf96 100644 --- a/src/tint/lang/core/intrinsic/table.h +++ b/src/tint/lang/core/intrinsic/table.h
@@ -43,11 +43,6 @@ #include "src/tint/utils/text/string_stream.h" #include "src/tint/utils/text/styled_text.h" -// Forward declarations -namespace tint::diag { -class List; -} // namespace tint::diag - namespace tint::core::intrinsic { /// Overload describes a fully matched builtin function overload
diff --git a/src/tint/lang/core/ir/function.cc b/src/tint/lang/core/ir/function.cc index 7479ec1..61a90eb 100644 --- a/src/tint/lang/core/ir/function.cc +++ b/src/tint/lang/core/ir/function.cc
@@ -27,6 +27,8 @@ #include "src/tint/lang/core/ir/function.h" +#include <utility> + #include "src/tint/lang/core/ir/clone_context.h" #include "src/tint/lang/core/ir/module.h" #include "src/tint/utils/containers/predicates.h"
diff --git a/src/tint/lang/core/ir/function.h b/src/tint/lang/core/ir/function.h index eec67a9..7e335ae 100644 --- a/src/tint/lang/core/ir/function.h +++ b/src/tint/lang/core/ir/function.h
@@ -30,7 +30,6 @@ #include <array> #include <optional> -#include <utility> #include "src/tint/lang/core/io_attributes.h" #include "src/tint/lang/core/ir/constant.h" @@ -42,7 +41,6 @@ // Forward declarations namespace tint::core::ir { class Block; -class FunctionTerminator; } // namespace tint::core::ir namespace tint::core::ir {
diff --git a/src/tint/lang/core/ir/if.h b/src/tint/lang/core/ir/if.h index 70a6992..60b7b0c 100644 --- a/src/tint/lang/core/ir/if.h +++ b/src/tint/lang/core/ir/if.h
@@ -32,11 +32,6 @@ #include "src/tint/lang/core/ir/control_instruction.h" -// Forward declarations -namespace tint::core::ir { -class MultiInBlock; -} // namespace tint::core::ir - namespace tint::core::ir { /// If instruction.
diff --git a/src/tint/lang/core/ir/switch.h b/src/tint/lang/core/ir/switch.h index 09900f2..eed7dfb 100644 --- a/src/tint/lang/core/ir/switch.h +++ b/src/tint/lang/core/ir/switch.h
@@ -36,7 +36,6 @@ // Forward declarations namespace tint::core::ir { class Constant; -class MultiInBlock; } // namespace tint::core::ir namespace tint::core::ir {
diff --git a/src/tint/lang/core/ir/terminator.h b/src/tint/lang/core/ir/terminator.h index f1ff399..7028ae6 100644 --- a/src/tint/lang/core/ir/terminator.h +++ b/src/tint/lang/core/ir/terminator.h
@@ -32,11 +32,6 @@ #include "src/tint/lang/core/ir/value.h" #include "src/tint/utils/rtti/castable.h" -// Forward declarations -namespace tint::core::ir { -class Block; -} // namespace tint::core::ir - namespace tint::core::ir { /// The base class of all instructions that terminate a block.
diff --git a/src/tint/lang/core/ir/validator.h b/src/tint/lang/core/ir/validator.h index 07ab568..c9ea30b 100644 --- a/src/tint/lang/core/ir/validator.h +++ b/src/tint/lang/core/ir/validator.h
@@ -36,7 +36,6 @@ // Forward declarations namespace tint::core::ir { class Module; -class Function; } // namespace tint::core::ir namespace tint::core::ir {
diff --git a/src/tint/lang/core/type/storage_texture.h b/src/tint/lang/core/type/storage_texture.h index e11479e..4355d49 100644 --- a/src/tint/lang/core/type/storage_texture.h +++ b/src/tint/lang/core/type/storage_texture.h
@@ -34,11 +34,6 @@ #include "src/tint/lang/core/type/texture.h" #include "src/tint/lang/core/type/texture_dimension.h" -// Forward declarations -namespace tint::core::type { -class Manager; -} // namespace tint::core::type - namespace tint::core::type { /// A storage texture type.
diff --git a/src/tint/lang/core/type/texel_buffer.h b/src/tint/lang/core/type/texel_buffer.h index 31e9a1a..01b1ef1 100644 --- a/src/tint/lang/core/type/texel_buffer.h +++ b/src/tint/lang/core/type/texel_buffer.h
@@ -33,11 +33,6 @@ #include "src/tint/lang/core/enums.h" #include "src/tint/lang/core/type/texture.h" -// Forward declarations -namespace tint::core::type { -class Manager; -} // namespace tint::core::type - namespace tint::core::type { /// A texel buffer type.
diff --git a/src/tint/lang/core/type/type.h b/src/tint/lang/core/type/type.h index e5c1d94..fa367fe 100644 --- a/src/tint/lang/core/type/type.h +++ b/src/tint/lang/core/type/type.h
@@ -37,10 +37,6 @@ #include "src/tint/utils/containers/vector.h" // Forward declarations -namespace tint { -class ProgramBuilder; -class SymbolTable; -} // namespace tint namespace tint::core::type { class Type; } // namespace tint::core::type
diff --git a/src/tint/lang/glsl/writer/raise/binary_polyfill.h b/src/tint/lang/glsl/writer/raise/binary_polyfill.h index 387aff8..3d5aef3 100644 --- a/src/tint/lang/glsl/writer/raise/binary_polyfill.h +++ b/src/tint/lang/glsl/writer/raise/binary_polyfill.h
@@ -33,7 +33,6 @@ // Forward declarations. namespace tint::core::ir { class Module; -class Texture; } // namespace tint::core::ir namespace tint::glsl::writer::raise {
diff --git a/src/tint/lang/glsl/writer/raise/bitcast_polyfill.h b/src/tint/lang/glsl/writer/raise/bitcast_polyfill.h index 4c592eb..db9cdca 100644 --- a/src/tint/lang/glsl/writer/raise/bitcast_polyfill.h +++ b/src/tint/lang/glsl/writer/raise/bitcast_polyfill.h
@@ -33,7 +33,6 @@ // Forward declarations. namespace tint::core::ir { class Module; -class Texture; } // namespace tint::core::ir namespace tint::glsl::writer::raise {
diff --git a/src/tint/lang/glsl/writer/raise/builtin_polyfill.h b/src/tint/lang/glsl/writer/raise/builtin_polyfill.h index 90768fa..d6f5d21 100644 --- a/src/tint/lang/glsl/writer/raise/builtin_polyfill.h +++ b/src/tint/lang/glsl/writer/raise/builtin_polyfill.h
@@ -33,7 +33,6 @@ // Forward declarations. namespace tint::core::ir { class Module; -class Texture; } // namespace tint::core::ir namespace tint::glsl::writer::raise {
diff --git a/src/tint/lang/glsl/writer/writer.h b/src/tint/lang/glsl/writer/writer.h index 5bc70f1..7df8878 100644 --- a/src/tint/lang/glsl/writer/writer.h +++ b/src/tint/lang/glsl/writer/writer.h
@@ -35,9 +35,6 @@ #include "src/tint/utils/result.h" // Forward declarations -namespace tint { -class Program; -} // namespace tint namespace tint::core::ir { class Module; } // namespace tint::core::ir
diff --git a/src/tint/lang/hlsl/writer/raise/binary_polyfill.h b/src/tint/lang/hlsl/writer/raise/binary_polyfill.h index 327682a..a2f7645 100644 --- a/src/tint/lang/hlsl/writer/raise/binary_polyfill.h +++ b/src/tint/lang/hlsl/writer/raise/binary_polyfill.h
@@ -33,7 +33,6 @@ // Forward declarations. namespace tint::core::ir { class Module; -class Texture; } // namespace tint::core::ir namespace tint::hlsl::writer::raise {
diff --git a/src/tint/lang/hlsl/writer/raise/builtin_polyfill.h b/src/tint/lang/hlsl/writer/raise/builtin_polyfill.h index c6c0e6c..86f8726 100644 --- a/src/tint/lang/hlsl/writer/raise/builtin_polyfill.h +++ b/src/tint/lang/hlsl/writer/raise/builtin_polyfill.h
@@ -33,7 +33,6 @@ // Forward declarations. namespace tint::core::ir { class Module; -class Texture; } // namespace tint::core::ir namespace tint::hlsl::writer::raise {
diff --git a/src/tint/lang/spirv/writer/raise/builtin_polyfill.h b/src/tint/lang/spirv/writer/raise/builtin_polyfill.h index 197e212..1e30d93 100644 --- a/src/tint/lang/spirv/writer/raise/builtin_polyfill.h +++ b/src/tint/lang/spirv/writer/raise/builtin_polyfill.h
@@ -34,7 +34,6 @@ // Forward declarations. namespace tint::core::ir { class Module; -class Texture; } // namespace tint::core::ir namespace tint::spirv::writer::raise {
diff --git a/src/tint/lang/wgsl/ast/builder.h b/src/tint/lang/wgsl/ast/builder.h index 0d810ef..e68ae17 100644 --- a/src/tint/lang/wgsl/ast/builder.h +++ b/src/tint/lang/wgsl/ast/builder.h
@@ -36,7 +36,6 @@ #include "src/tint/lang/core/interpolation.h" #include "src/tint/lang/core/number.h" #include "src/tint/lang/core/type/sampler_kind.h" -#include "src/tint/lang/core/type/texel_buffer.h" #include "src/tint/lang/core/type/texture_dimension.h" #include "src/tint/lang/wgsl/ast/alias.h" #include "src/tint/lang/wgsl/ast/assignment_statement.h" @@ -104,12 +103,6 @@ #error "internal tint header being #included from tint.h" #endif -// Forward declarations -namespace tint::ast { -class CloneContext; -class VariableDeclStatement; -} // namespace tint::ast - namespace tint::ast { /// Builder is a mutable builder for AST nodes.
diff --git a/src/tint/lang/wgsl/ast/builtin_texture_helper_test.h b/src/tint/lang/wgsl/ast/builtin_texture_helper_test.h index 915be65..849b988 100644 --- a/src/tint/lang/wgsl/ast/builtin_texture_helper_test.h +++ b/src/tint/lang/wgsl/ast/builtin_texture_helper_test.h
@@ -35,6 +35,11 @@ #include "src/tint/lang/core/type/texture_dimension.h" #include "src/tint/lang/wgsl/ast/builder.h" +// Forward declarations +namespace tint { +class ProgramBuilder; +} + namespace tint::ast::test { /// The name of the texture global variable used by the tests.
diff --git a/src/tint/lang/wgsl/ast/function.h b/src/tint/lang/wgsl/ast/function.h index d3bd3e6..857be1d 100644 --- a/src/tint/lang/wgsl/ast/function.h +++ b/src/tint/lang/wgsl/ast/function.h
@@ -46,7 +46,6 @@ // Forward declarations namespace tint::ast { class Identifier; -class IdentifierExpression; } // namespace tint::ast namespace tint::ast {
diff --git a/src/tint/lang/wgsl/ast/node.h b/src/tint/lang/wgsl/ast/node.h index 281654e..3ff7f65 100644 --- a/src/tint/lang/wgsl/ast/node.h +++ b/src/tint/lang/wgsl/ast/node.h
@@ -34,11 +34,6 @@ #include "src/tint/utils/diagnostic/source.h" #include "src/tint/utils/rtti/castable.h" -// Forward declarations -namespace tint::ast { -class CloneContext; -} - namespace tint::ast { /// AST base class node
diff --git a/src/tint/lang/wgsl/ast/templated_identifier.h b/src/tint/lang/wgsl/ast/templated_identifier.h index 328907d..d1fc602 100644 --- a/src/tint/lang/wgsl/ast/templated_identifier.h +++ b/src/tint/lang/wgsl/ast/templated_identifier.h
@@ -33,7 +33,6 @@ // Forward declarations namespace tint::ast { -class Attribute; class Expression; } // namespace tint::ast
diff --git a/src/tint/lang/wgsl/ast/variable.h b/src/tint/lang/wgsl/ast/variable.h index f454d14..4ad32e7 100644 --- a/src/tint/lang/wgsl/ast/variable.h +++ b/src/tint/lang/wgsl/ast/variable.h
@@ -43,7 +43,6 @@ // Forward declarations namespace tint::ast { class Identifier; -class LocationAttribute; } // namespace tint::ast namespace tint::ast {
diff --git a/src/tint/lang/wgsl/ls/utils.h b/src/tint/lang/wgsl/ls/utils.h index 8dbfd0d..48ef787 100644 --- a/src/tint/lang/wgsl/ls/utils.h +++ b/src/tint/lang/wgsl/ls/utils.h
@@ -35,11 +35,6 @@ #include "src/tint/utils/text/styled_text.h" #include "src/tint/utils/text/text_style.h" -// Forward declarations -namespace tint::sem { -class Node; -} - namespace tint::wgsl::ls { /// @return the StyledText converted to lsp::MarkupContent
diff --git a/src/tint/lang/wgsl/program/program.h b/src/tint/lang/wgsl/program/program.h index 4c13e21..d7844f1 100644 --- a/src/tint/lang/wgsl/program/program.h +++ b/src/tint/lang/wgsl/program/program.h
@@ -37,6 +37,9 @@ #include "src/tint/utils/symbol/symbol_table.h" // Forward Declarations +namespace tint { +class ProgramBuilder; +} namespace tint::ast { class Module; } // namespace tint::ast
diff --git a/src/tint/lang/wgsl/resolver/resolver.h b/src/tint/lang/wgsl/resolver/resolver.h index 2121495..9ceaae2 100644 --- a/src/tint/lang/wgsl/resolver/resolver.h +++ b/src/tint/lang/wgsl/resolver/resolver.h
@@ -59,7 +59,6 @@ namespace tint::ast { class IndexAccessorExpression; class BinaryExpression; -class BitcastExpression; class CallExpression; class CallStatement; class CaseStatement; @@ -83,7 +82,6 @@ class IfStatement; class LoopStatement; class Statement; -class StructMember; class SwitchStatement; class ValueConstructor; class ValueConversion;
diff --git a/src/tint/lang/wgsl/resolver/validator.h b/src/tint/lang/wgsl/resolver/validator.h index b4d96d97..ff39302 100644 --- a/src/tint/lang/wgsl/resolver/validator.h +++ b/src/tint/lang/wgsl/resolver/validator.h
@@ -46,36 +46,20 @@ // Forward declarations namespace tint::ast { -class IndexAccessorExpression; -class BinaryExpression; -class BitcastExpression; class CallExpression; -class CallStatement; -class CaseStatement; -class ForLoopStatement; class Function; -class IdentifierExpression; -class LoopStatement; -class MemberAccessorExpression; class ReturnStatement; class SwitchStatement; -class UnaryOpExpression; class Variable; -class WhileStatement; } // namespace tint::ast namespace tint::sem { class Array; -class BlockStatement; class BreakIfStatement; -class BuiltinFn; class Call; -class CaseStatement; class ForLoopStatement; class IfStatement; class LoopStatement; -class Materialize; class Statement; -class SwitchStatement; class WhileStatement; } // namespace tint::sem namespace tint::core::type {
diff --git a/src/tint/lang/wgsl/sem/block_statement.h b/src/tint/lang/wgsl/sem/block_statement.h index e0dc851..1aeb62e 100644 --- a/src/tint/lang/wgsl/sem/block_statement.h +++ b/src/tint/lang/wgsl/sem/block_statement.h
@@ -36,7 +36,6 @@ namespace tint::ast { class BlockStatement; class ContinueStatement; -class Variable; } // namespace tint::ast namespace tint::sem {
diff --git a/src/tint/lang/wgsl/sem/builtin_enum_expression.h b/src/tint/lang/wgsl/sem/builtin_enum_expression.h index 53ba857..02fd51f 100644 --- a/src/tint/lang/wgsl/sem/builtin_enum_expression.h +++ b/src/tint/lang/wgsl/sem/builtin_enum_expression.h
@@ -30,11 +30,6 @@ #include "src/tint/lang/wgsl/sem/expression.h" -// Forward declarations -namespace tint::core::type { -class Type; -} // namespace tint::core::type - namespace tint::sem { /// Base class for BuiltinEnumExpression.
diff --git a/src/tint/lang/wgsl/sem/function.h b/src/tint/lang/wgsl/sem/function.h index 94cca32..11b44b9 100644 --- a/src/tint/lang/wgsl/sem/function.h +++ b/src/tint/lang/wgsl/sem/function.h
@@ -40,14 +40,10 @@ // Forward declarations namespace tint::ast { -class BuiltinAttribute; class Function; -class LocationAttribute; -class ReturnStatement; } // namespace tint::ast namespace tint::sem { class BuiltinFn; -class Variable; } // namespace tint::sem namespace tint::sem {
diff --git a/src/tint/lang/wgsl/sem/info.h b/src/tint/lang/wgsl/sem/info.h index 527b2c7..fecbe1e 100644 --- a/src/tint/lang/wgsl/sem/info.h +++ b/src/tint/lang/wgsl/sem/info.h
@@ -42,10 +42,6 @@ class Module; class ValueExpression; } // namespace tint::sem -namespace tint::core::type { -class Node; -class Type; -} // namespace tint::core::type namespace tint::sem {
diff --git a/src/tint/lang/wgsl/sem/switch_statement.h b/src/tint/lang/wgsl/sem/switch_statement.h index 6cbf1cd..2029364 100644 --- a/src/tint/lang/wgsl/sem/switch_statement.h +++ b/src/tint/lang/wgsl/sem/switch_statement.h
@@ -44,7 +44,6 @@ namespace tint::sem { class CaseStatement; class CaseSelector; -class ValueExpression; } // namespace tint::sem namespace tint::sem {
diff --git a/src/tint/lang/wgsl/writer/ast_printer/ast_printer.h b/src/tint/lang/wgsl/writer/ast_printer/ast_printer.h index 0be81eb..8670a71 100644 --- a/src/tint/lang/wgsl/writer/ast_printer/ast_printer.h +++ b/src/tint/lang/wgsl/writer/ast_printer/ast_printer.h
@@ -47,8 +47,6 @@ class AssignmentStatement; class Attribute; class BinaryExpression; -class BitcastExpression; -class BlockStatement; class BlockStatement; class BreakIfStatement; class BreakStatement; @@ -74,8 +72,6 @@ class Requires; class ReturnStatement; class Statement; -class Statement; -class Statement; class Struct; class SwitchStatement; class TypeDecl;
diff --git a/src/tint/utils/diagnostic/formatter.h b/src/tint/utils/diagnostic/formatter.h index b744ff6..d17df28 100644 --- a/src/tint/utils/diagnostic/formatter.h +++ b/src/tint/utils/diagnostic/formatter.h
@@ -32,7 +32,6 @@ // Forward declaration namespace tint { -class StyledTextPrinter; class StyledText; } // namespace tint namespace tint::diag {
diff --git a/src/tint/utils/math/hash.h b/src/tint/utils/math/hash.h index d5cd9c6..30ac91e 100644 --- a/src/tint/utils/math/hash.h +++ b/src/tint/utils/math/hash.h
@@ -45,7 +45,6 @@ #include "src/tint/utils/math/crc32.h" namespace tint { - namespace detail { template <typename T, typename = void>
diff --git a/src/tint/utils/text/styled_text.h b/src/tint/utils/text/styled_text.h index 556099b..4b5febb 100644 --- a/src/tint/utils/text/styled_text.h +++ b/src/tint/utils/text/styled_text.h
@@ -38,11 +38,6 @@ #include "src/tint/utils/text/string_stream.h" #include "src/tint/utils/text/text_style.h" -// Forward declarations -namespace tint { -class StyledTextPrinter; -} - namespace tint { /// StyledText is a string builder with support for styled text spans.
diff --git a/src/tint/utils/text/styled_text_printer.h b/src/tint/utils/text/styled_text_printer.h index a224537..108c0b9 100644 --- a/src/tint/utils/text/styled_text_printer.h +++ b/src/tint/utils/text/styled_text_printer.h
@@ -34,11 +34,6 @@ #include "src/tint/utils/text/styled_text.h" #include "src/tint/utils/text/styled_text_theme.h" -/// Forward declarations -namespace tint { -class TextStyle; -} - namespace tint { /// StyledTextPrinter is the interface for printing text with a style.