]> git.tdb.fi Git - libs/gl.git/commitdiff
Remove the using declarations from visitors
authorMikko Rasa <tdb@tdb.fi>
Tue, 23 Feb 2021 21:35:59 +0000 (23:35 +0200)
committerMikko Rasa <tdb@tdb.fi>
Tue, 23 Feb 2021 21:45:48 +0000 (23:45 +0200)
Instead always invoke visit through the node

12 files changed:
source/glsl/compatibility.cpp
source/glsl/compatibility.h
source/glsl/debug.cpp
source/glsl/debug.h
source/glsl/generate.cpp
source/glsl/generate.h
source/glsl/optimize.cpp
source/glsl/optimize.h
source/glsl/output.cpp
source/glsl/output.h
source/glsl/visitor.cpp
source/glsl/visitor.h

index a65f6de72fe1a3ddfe29be27edd8d563c9dde55a..128902f3b9f473bb9df87559d40a231c139ac55e 100644 (file)
@@ -17,7 +17,7 @@ DefaultPrecisionGenerator::DefaultPrecisionGenerator():
 void DefaultPrecisionGenerator::apply(Stage &s)
 {
        stage = &s;
-       visit(s.content);
+       s.content.visit(*this);
 }
 
 void DefaultPrecisionGenerator::visit(Block &block)
@@ -65,7 +65,7 @@ void DefaultPrecisionGenerator::visit(VariableDeclaration &var)
 
 void PrecisionRemover::apply(Stage &stage)
 {
-       visit(stage.content);
+       stage.content.visit(*this);
        NodeRemover().apply(stage, nodes_to_remove);
 }
 
@@ -90,7 +90,7 @@ void LegacyConverter::apply(Stage &s, const Features &feat)
        features = feat;
        if(!supports_stage(s.type))
                throw unsupported_shader(format("Stage %s is not supported", Stage::get_stage_name(s.type)));
-       visit(s.content);
+       s.content.visit(*this);
 }
 
 void LegacyConverter::visit(Block &block)
index f91f188274c99c3d6cb06e05898fb7ae10655b33..852a6590bd67c287cf272d1a85bc9cfdb746a5c3 100644 (file)
@@ -24,7 +24,6 @@ private:
        virtual void visit(Block &);
        virtual void visit(Precision &);
        virtual void visit(VariableDeclaration &);
-       using TraversingVisitor::visit;
 };
 
 class PrecisionRemover: private TraversingVisitor
@@ -38,7 +37,6 @@ public:
 private:
        virtual void visit(Precision &);
        virtual void visit(VariableDeclaration &);
-       using TraversingVisitor::visit;
 };
 
 class LegacyConverter: private TraversingVisitor
@@ -72,7 +70,6 @@ private:
        virtual void visit(VariableDeclaration &);
        bool supports_interface_blocks(const std::string &) const;
        virtual void visit(InterfaceBlock &);
-       using TraversingVisitor::visit;
 };
 
 } // namespace SL
index 6bf6eef9feb818276d6863262fa0bb71c3a797a4..32eb0ec307a05db3904e2313f74008e0127a32c3 100644 (file)
@@ -17,7 +17,7 @@ const std::string &DumpTree::apply(Stage &stage)
        for(map<string, VariableDeclaration *>::const_iterator i=stage.out_variables.begin(); i!=stage.out_variables.end(); ++i)
                append(format("Output: %%%d %s %s", get_label(*i->second), i->second->type, i->first));
        last_branch();
-       visit(stage.content);
+       stage.content.visit(*this);
        return formatted;
 }
 
index 5bc7a8bf884fbb09700b72490890e08ffc6b36ba..66f2b067c15776cf5806453c1e0548ec00365734 100644 (file)
@@ -61,7 +61,6 @@ private:
        virtual void visit(Passthrough &);
        virtual void visit(Return &);
        virtual void visit(Jump &);
-       using TraversingVisitor::visit;
 };
 
 } // namespace SL
index d435d29a37e87b2c38f3d7e09ef5ebc6243f0989..ca4d41e64c7a8c63bf51fd8d446e5ccb4dc8bd5a 100644 (file)
@@ -10,7 +10,7 @@ namespace SL {
 
 void DeclarationCombiner::apply(Stage &stage)
 {
-       visit(stage.content);
+       stage.content.visit(*this);
        NodeRemover().apply(stage, nodes_to_remove);
 }
 
@@ -96,7 +96,7 @@ void VariableResolver::apply(Stage &stage)
 {
        Stage *builtin_stage = get_builtins(stage.type);
        builtins = (builtin_stage ? &builtin_stage->content : 0);
-       visit(stage.content);
+       stage.content.visit(*this);
 }
 
 Block *VariableResolver::next_block(Block &block)
@@ -285,7 +285,7 @@ void InterfaceGenerator::apply(Stage &s)
        if(stage->previous)
                in_prefix = get_out_prefix(stage->previous->type);
        out_prefix = get_out_prefix(stage->type);
-       visit(s.content);
+       s.content.visit(*this);
        NodeRemover().apply(s, nodes_to_remove);
 }
 
index 511a460793d4e162fb05c24119c37c8538114322..6740f38ea5c49e531b9fbbabf9b285e08ea7f24b 100644 (file)
@@ -25,18 +25,16 @@ private:
        virtual void visit(Block &);
        virtual void visit(FunctionDeclaration &);
        virtual void visit(VariableDeclaration &);
-       using TraversingVisitor::visit;
 };
 
 class BlockResolver: private TraversingVisitor
 {
 public:
-       void apply(Stage &s) { visit(s.content); }
+       void apply(Stage &s) { s.content.visit(*this); }
 
 private:
        virtual void visit(Block &);
        virtual void visit(InterfaceBlock &);
-       using TraversingVisitor::visit;
 };
 
 class VariableResolver: private TraversingVisitor
@@ -67,7 +65,6 @@ private:
        virtual void visit(InterfaceBlock &);
        virtual void visit(FunctionDeclaration &);
        virtual void visit(Iteration &);
-       using TraversingVisitor::visit;
 };
 
 class FunctionResolver: private TraversingVisitor
@@ -76,12 +73,11 @@ private:
        std::map<std::string, std::vector<FunctionDeclaration *> > functions;
 
 public:
-       void apply(Stage &s) { visit(s.content); }
+       void apply(Stage &s) { s.content.visit(*this); }
 
 private:
        virtual void visit(FunctionCall &);
        virtual void visit(FunctionDeclaration &);
-       using TraversingVisitor::visit;
 };
 
 class InterfaceGenerator: private TraversingVisitor
@@ -108,7 +104,6 @@ private:
        virtual void visit(VariableReference &);
        virtual void visit(VariableDeclaration &);
        virtual void visit(Passthrough &);
-       using TraversingVisitor::visit;
 };
 
 class DeclarationReorderer: private TraversingVisitor
@@ -130,7 +125,7 @@ private:
 public:
        DeclarationReorderer();
 
-       void apply(Stage &s) { visit(s.content); }
+       void apply(Stage &s) { s.content.visit(*this); }
 
 private:
        virtual void visit(Block &);
@@ -140,7 +135,6 @@ private:
        virtual void visit(VariableDeclaration &);
        virtual void visit(InterfaceBlock &) { kind = VARIABLE; }
        virtual void visit(FunctionDeclaration &);
-       using TraversingVisitor::visit;
 };
 
 } // namespace SL
index 4f1f8629a58f46964fc34ba7bb11e172b39f2037..1f5b5d317c720993b91f2dbc5dd8fb880417cd7c 100644 (file)
@@ -46,7 +46,7 @@ FunctionInliner::FunctionInliner():
 void FunctionInliner::apply(Stage &stage)
 {
        inlineable = InlineableFunctionLocator().apply(stage);
-       visit(stage.content);
+       stage.content.visit(*this);
 }
 
 void FunctionInliner::visit_and_inline(RefPtr<Expression> &ptr)
@@ -129,7 +129,7 @@ ConstantConditionEliminator::ConstantConditionEliminator():
 
 void ConstantConditionEliminator::apply(Stage &stage)
 {
-       visit(stage.content);
+       stage.content.visit(*this);
        NodeRemover().apply(stage, nodes_to_remove);
 }
 
@@ -231,7 +231,7 @@ UnusedVariableRemover::UnusedVariableRemover():
 bool UnusedVariableRemover::apply(Stage &stage)
 {
        variables.push_back(BlockVariableMap());
-       visit(stage.content);
+       stage.content.visit(*this);
        BlockVariableMap &global_variables = variables.back();
        for(BlockVariableMap::iterator i=global_variables.begin(); i!=global_variables.end(); ++i)
        {
@@ -444,7 +444,7 @@ void UnusedVariableRemover::visit(Iteration &iter)
 
 bool UnusedFunctionRemover::apply(Stage &stage)
 {
-       visit(stage.content);
+       stage.content.visit(*this);
        NodeRemover().apply(stage, unused_nodes);
        return !unused_nodes.empty();
 }
index 2caa498da0512624a31734232dfca88e870f6b31..c412433e0a222337ffcd4752fa11540f8514e936 100644 (file)
@@ -20,12 +20,11 @@ private:
 public:
        InlineableFunctionLocator();
 
-       const std::set<FunctionDeclaration *> &apply(Stage &s) { visit(s.content); return inlineable; }
+       const std::set<FunctionDeclaration *> &apply(Stage &s) { s.content.visit(*this); return inlineable; }
 
 private:
        virtual void visit(FunctionCall &);
        virtual void visit(FunctionDeclaration &);
-       using TraversingVisitor::visit;
 };
 
 class FunctionInliner: private TraversingVisitor
@@ -50,7 +49,6 @@ private:
        virtual void visit(FunctionCall &);
        virtual void visit(VariableDeclaration &);
        virtual void visit(Return &);
-       using TraversingVisitor::visit;
 };
 
 class ConstantConditionEliminator: private TraversingVisitor
@@ -73,7 +71,6 @@ private:
        virtual void visit(VariableDeclaration &);
        virtual void visit(Conditional &);
        virtual void visit(Iteration &);
-       using TraversingVisitor::visit;
 };
 
 class UnusedVariableRemover: private TraversingVisitor
@@ -119,7 +116,6 @@ private:
        void merge_down_variables();
        virtual void visit(Conditional &);
        virtual void visit(Iteration &);
-       using TraversingVisitor::visit;
 };
 
 class UnusedFunctionRemover: private TraversingVisitor
@@ -134,7 +130,6 @@ public:
 private:
        virtual void visit(FunctionCall &);
        virtual void visit(FunctionDeclaration &);
-       using TraversingVisitor::visit;
 };
 
 } // namespace SL
index 46314588858667c059a80c131bb6f527b3ba9bc6..ef7910f17bd2de93e8de4cc742ff68ee90c1e2b4 100644 (file)
@@ -44,7 +44,7 @@ const string &Formatter::apply(Stage &s, Compiler::Mode m)
                append("#extension ext_texture_array: require\n");
        formatted += '\n';
 
-       visit(s.content);
+       s.content.visit(*this);
 
        return formatted;
 }
index e09f7c2ebca8c5dd18e094f89ed9a8939027007c..b8554b7d1aa83eb95f89e1647a280492883065e3 100644 (file)
@@ -55,7 +55,6 @@ private:
        virtual void visit(Passthrough &);
        virtual void visit(Return &);
        virtual void visit(Jump &);
-       using TraversingVisitor::visit;
 };
 
 } // namespace SL
index 265b11d41215da3bae6cebdbfcaa1b92e0919f24..1a7adcc5287a40894a20fc8a9a3926a84db01140 100644 (file)
@@ -126,7 +126,7 @@ void NodeRemover::apply(Stage &s, const set<Node *> &tr)
 {
        stage = &s;
        to_remove = &tr;
-       visit(s.content);
+       s.content.visit(*this);
 }
 
 void NodeRemover::remove_variable(map<string, VariableDeclaration *> &vars, VariableDeclaration &decl)
index 35dce52400fc74daf1c71ae538e8affa700121f4..ba345c450bee95953e2ecb45d0322fd7f127004e 100644 (file)
@@ -49,7 +49,6 @@ protected:
        TraversingVisitor(): current_block(0) { }
 
 public:
-       using NodeVisitor::visit;
        virtual void visit(Block &);
        virtual void visit(ParenthesizedExpression &);
        virtual void visit(MemberAccess &);
@@ -75,10 +74,9 @@ private:
        std::vector<T *> nodes;
 
 public:
-       const std::vector<T *> &apply(Stage &s) { nodes.clear(); visit(s.content); return nodes; }
+       const std::vector<T *> &apply(Stage &s) { s.content.visit(*this); return nodes; }
 
 private:
-       using TraversingVisitor::visit;
        virtual void visit(T &n) { nodes.push_back(&n); }
 };
 
@@ -99,7 +97,6 @@ public:
 private:
        void remove_variable(std::map<std::string, VariableDeclaration *> &, VariableDeclaration &);
 
-       using TraversingVisitor::visit;
        virtual void visit(Block &);
        virtual void visit(StructDeclaration &);
        virtual void visit(VariableDeclaration &);