ast: Remove @notes about semantic info not being cloned
Semantic info is no longer part of the ast, so it is now odd to mention semantic info on a clone method for the AST. Improve the documentation around cloning on the Program methods and the CloneContext. Change-Id: Ib1cf255acfd994521aaa5add2789e5117db6b072 Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/41548 Commit-Queue: Ben Clayton <bclayton@google.com> Reviewed-by: dan sinclair <dsinclair@chromium.org> Reviewed-by: David Neto <dneto@google.com>
This commit is contained in:
parent
81a29fe555
commit
4602ce7195
|
@ -45,8 +45,6 @@ class AccessDecoration : public Castable<AccessDecoration, TypeDecoration> {
|
||||||
|
|
||||||
/// Clones this node and all transitive child nodes using the `CloneContext`
|
/// Clones this node and all transitive child nodes using the `CloneContext`
|
||||||
/// `ctx`.
|
/// `ctx`.
|
||||||
/// @note Semantic information such as resolved expression type and intrinsic
|
|
||||||
/// information is not cloned.
|
|
||||||
/// @param ctx the clone context
|
/// @param ctx the clone context
|
||||||
/// @return the newly cloned node
|
/// @return the newly cloned node
|
||||||
AccessDecoration* Clone(CloneContext* ctx) const override;
|
AccessDecoration* Clone(CloneContext* ctx) const override;
|
||||||
|
|
|
@ -47,8 +47,6 @@ class ArrayAccessorExpression
|
||||||
|
|
||||||
/// Clones this node and all transitive child nodes using the `CloneContext`
|
/// Clones this node and all transitive child nodes using the `CloneContext`
|
||||||
/// `ctx`.
|
/// `ctx`.
|
||||||
/// @note Semantic information such as resolved expression type and intrinsic
|
|
||||||
/// information is not cloned.
|
|
||||||
/// @param ctx the clone context
|
/// @param ctx the clone context
|
||||||
/// @return the newly cloned node
|
/// @return the newly cloned node
|
||||||
ArrayAccessorExpression* Clone(CloneContext* ctx) const override;
|
ArrayAccessorExpression* Clone(CloneContext* ctx) const override;
|
||||||
|
|
|
@ -44,8 +44,6 @@ class AssignmentStatement : public Castable<AssignmentStatement, Statement> {
|
||||||
|
|
||||||
/// Clones this node and all transitive child nodes using the `CloneContext`
|
/// Clones this node and all transitive child nodes using the `CloneContext`
|
||||||
/// `ctx`.
|
/// `ctx`.
|
||||||
/// @note Semantic information such as resolved expression type and intrinsic
|
|
||||||
/// information is not cloned.
|
|
||||||
/// @param ctx the clone context
|
/// @param ctx the clone context
|
||||||
/// @return the newly cloned node
|
/// @return the newly cloned node
|
||||||
AssignmentStatement* Clone(CloneContext* ctx) const override;
|
AssignmentStatement* Clone(CloneContext* ctx) const override;
|
||||||
|
|
|
@ -110,8 +110,6 @@ class BinaryExpression : public Castable<BinaryExpression, Expression> {
|
||||||
|
|
||||||
/// Clones this node and all transitive child nodes using the `CloneContext`
|
/// Clones this node and all transitive child nodes using the `CloneContext`
|
||||||
/// `ctx`.
|
/// `ctx`.
|
||||||
/// @note Semantic information such as resolved expression type and intrinsic
|
|
||||||
/// information is not cloned.
|
|
||||||
/// @param ctx the clone context
|
/// @param ctx the clone context
|
||||||
/// @return the newly cloned node
|
/// @return the newly cloned node
|
||||||
BinaryExpression* Clone(CloneContext* ctx) const override;
|
BinaryExpression* Clone(CloneContext* ctx) const override;
|
||||||
|
|
|
@ -45,8 +45,6 @@ class BindingDecoration
|
||||||
|
|
||||||
/// Clones this node and all transitive child nodes using the `CloneContext`
|
/// Clones this node and all transitive child nodes using the `CloneContext`
|
||||||
/// `ctx`.
|
/// `ctx`.
|
||||||
/// @note Semantic information such as resolved expression type and intrinsic
|
|
||||||
/// information is not cloned.
|
|
||||||
/// @param ctx the clone context
|
/// @param ctx the clone context
|
||||||
/// @return the newly cloned node
|
/// @return the newly cloned node
|
||||||
BindingDecoration* Clone(CloneContext* ctx) const override;
|
BindingDecoration* Clone(CloneContext* ctx) const override;
|
||||||
|
|
|
@ -44,8 +44,6 @@ class BitcastExpression : public Castable<BitcastExpression, Expression> {
|
||||||
|
|
||||||
/// Clones this node and all transitive child nodes using the `CloneContext`
|
/// Clones this node and all transitive child nodes using the `CloneContext`
|
||||||
/// `ctx`.
|
/// `ctx`.
|
||||||
/// @note Semantic information such as resolved expression type and intrinsic
|
|
||||||
/// information is not cloned.
|
|
||||||
/// @param ctx the clone context
|
/// @param ctx the clone context
|
||||||
/// @return the newly cloned node
|
/// @return the newly cloned node
|
||||||
BitcastExpression* Clone(CloneContext* ctx) const override;
|
BitcastExpression* Clone(CloneContext* ctx) const override;
|
||||||
|
|
|
@ -66,8 +66,6 @@ class BlockStatement : public Castable<BlockStatement, Statement> {
|
||||||
|
|
||||||
/// Clones this node and all transitive child nodes using the `CloneContext`
|
/// Clones this node and all transitive child nodes using the `CloneContext`
|
||||||
/// `ctx`.
|
/// `ctx`.
|
||||||
/// @note Semantic information such as resolved expression type and intrinsic
|
|
||||||
/// information is not cloned.
|
|
||||||
/// @param ctx the clone context
|
/// @param ctx the clone context
|
||||||
/// @return the newly cloned node
|
/// @return the newly cloned node
|
||||||
BlockStatement* Clone(CloneContext* ctx) const override;
|
BlockStatement* Clone(CloneContext* ctx) const override;
|
||||||
|
|
|
@ -46,8 +46,6 @@ class BoolLiteral : public Castable<BoolLiteral, Literal> {
|
||||||
|
|
||||||
/// Clones this node and all transitive child nodes using the `CloneContext`
|
/// Clones this node and all transitive child nodes using the `CloneContext`
|
||||||
/// `ctx`.
|
/// `ctx`.
|
||||||
/// @note Semantic information such as resolved expression type and intrinsic
|
|
||||||
/// information is not cloned.
|
|
||||||
/// @param ctx the clone context
|
/// @param ctx the clone context
|
||||||
/// @return the newly cloned node
|
/// @return the newly cloned node
|
||||||
BoolLiteral* Clone(CloneContext* ctx) const override;
|
BoolLiteral* Clone(CloneContext* ctx) const override;
|
||||||
|
|
|
@ -32,8 +32,6 @@ class BreakStatement : public Castable<BreakStatement, Statement> {
|
||||||
|
|
||||||
/// Clones this node and all transitive child nodes using the `CloneContext`
|
/// Clones this node and all transitive child nodes using the `CloneContext`
|
||||||
/// `ctx`.
|
/// `ctx`.
|
||||||
/// @note Semantic information such as resolved expression type and intrinsic
|
|
||||||
/// information is not cloned.
|
|
||||||
/// @param ctx the clone context
|
/// @param ctx the clone context
|
||||||
/// @return the newly cloned node
|
/// @return the newly cloned node
|
||||||
BreakStatement* Clone(CloneContext* ctx) const override;
|
BreakStatement* Clone(CloneContext* ctx) const override;
|
||||||
|
|
|
@ -44,8 +44,6 @@ class BuiltinDecoration
|
||||||
|
|
||||||
/// Clones this node and all transitive child nodes using the `CloneContext`
|
/// Clones this node and all transitive child nodes using the `CloneContext`
|
||||||
/// `ctx`.
|
/// `ctx`.
|
||||||
/// @note Semantic information such as resolved expression type and intrinsic
|
|
||||||
/// information is not cloned.
|
|
||||||
/// @param ctx the clone context
|
/// @param ctx the clone context
|
||||||
/// @return the newly cloned node
|
/// @return the newly cloned node
|
||||||
BuiltinDecoration* Clone(CloneContext* ctx) const override;
|
BuiltinDecoration* Clone(CloneContext* ctx) const override;
|
||||||
|
|
|
@ -43,8 +43,6 @@ class CallExpression : public Castable<CallExpression, Expression> {
|
||||||
|
|
||||||
/// Clones this node and all transitive child nodes using the `CloneContext`
|
/// Clones this node and all transitive child nodes using the `CloneContext`
|
||||||
/// `ctx`.
|
/// `ctx`.
|
||||||
/// @note Semantic information such as resolved expression type and intrinsic
|
|
||||||
/// information is not cloned.
|
|
||||||
/// @param ctx the clone context
|
/// @param ctx the clone context
|
||||||
/// @return the newly cloned node
|
/// @return the newly cloned node
|
||||||
CallExpression* Clone(CloneContext* ctx) const override;
|
CallExpression* Clone(CloneContext* ctx) const override;
|
||||||
|
|
|
@ -40,8 +40,6 @@ class CallStatement : public Castable<CallStatement, Statement> {
|
||||||
|
|
||||||
/// Clones this node and all transitive child nodes using the `CloneContext`
|
/// Clones this node and all transitive child nodes using the `CloneContext`
|
||||||
/// `ctx`.
|
/// `ctx`.
|
||||||
/// @note Semantic information such as resolved expression type and intrinsic
|
|
||||||
/// information is not cloned.
|
|
||||||
/// @param ctx the clone context
|
/// @param ctx the clone context
|
||||||
/// @return the newly cloned node
|
/// @return the newly cloned node
|
||||||
CallStatement* Clone(CloneContext* ctx) const override;
|
CallStatement* Clone(CloneContext* ctx) const override;
|
||||||
|
|
|
@ -56,8 +56,6 @@ class CaseStatement : public Castable<CaseStatement, Statement> {
|
||||||
|
|
||||||
/// Clones this node and all transitive child nodes using the `CloneContext`
|
/// Clones this node and all transitive child nodes using the `CloneContext`
|
||||||
/// `ctx`.
|
/// `ctx`.
|
||||||
/// @note Semantic information such as resolved expression type and intrinsic
|
|
||||||
/// information is not cloned.
|
|
||||||
/// @param ctx the clone context
|
/// @param ctx the clone context
|
||||||
/// @return the newly cloned node
|
/// @return the newly cloned node
|
||||||
CaseStatement* Clone(CloneContext* ctx) const override;
|
CaseStatement* Clone(CloneContext* ctx) const override;
|
||||||
|
|
|
@ -44,8 +44,6 @@ class ConstantIdDecoration
|
||||||
|
|
||||||
/// Clones this node and all transitive child nodes using the `CloneContext`
|
/// Clones this node and all transitive child nodes using the `CloneContext`
|
||||||
/// `ctx`.
|
/// `ctx`.
|
||||||
/// @note Semantic information such as resolved expression type and intrinsic
|
|
||||||
/// information is not cloned.
|
|
||||||
/// @param ctx the clone context
|
/// @param ctx the clone context
|
||||||
/// @return the newly cloned node
|
/// @return the newly cloned node
|
||||||
ConstantIdDecoration* Clone(CloneContext* ctx) const override;
|
ConstantIdDecoration* Clone(CloneContext* ctx) const override;
|
||||||
|
|
|
@ -35,8 +35,6 @@ class ContinueStatement : public Castable<ContinueStatement, Statement> {
|
||||||
|
|
||||||
/// Clones this node and all transitive child nodes using the `CloneContext`
|
/// Clones this node and all transitive child nodes using the `CloneContext`
|
||||||
/// `ctx`.
|
/// `ctx`.
|
||||||
/// @note Semantic information such as resolved expression type and intrinsic
|
|
||||||
/// information is not cloned.
|
|
||||||
/// @param ctx the clone context
|
/// @param ctx the clone context
|
||||||
/// @return the newly cloned node
|
/// @return the newly cloned node
|
||||||
ContinueStatement* Clone(CloneContext* ctx) const override;
|
ContinueStatement* Clone(CloneContext* ctx) const override;
|
||||||
|
|
|
@ -32,8 +32,6 @@ class DiscardStatement : public Castable<DiscardStatement, Statement> {
|
||||||
|
|
||||||
/// Clones this node and all transitive child nodes using the `CloneContext`
|
/// Clones this node and all transitive child nodes using the `CloneContext`
|
||||||
/// `ctx`.
|
/// `ctx`.
|
||||||
/// @note Semantic information such as resolved expression type and intrinsic
|
|
||||||
/// information is not cloned.
|
|
||||||
/// @param ctx the clone context
|
/// @param ctx the clone context
|
||||||
/// @return the newly cloned node
|
/// @return the newly cloned node
|
||||||
DiscardStatement* Clone(CloneContext* ctx) const override;
|
DiscardStatement* Clone(CloneContext* ctx) const override;
|
||||||
|
|
|
@ -52,8 +52,6 @@ class ElseStatement : public Castable<ElseStatement, Statement> {
|
||||||
|
|
||||||
/// Clones this node and all transitive child nodes using the `CloneContext`
|
/// Clones this node and all transitive child nodes using the `CloneContext`
|
||||||
/// `ctx`.
|
/// `ctx`.
|
||||||
/// @note Semantic information such as resolved expression type and intrinsic
|
|
||||||
/// information is not cloned.
|
|
||||||
/// @param ctx the clone context
|
/// @param ctx the clone context
|
||||||
/// @return the newly cloned node
|
/// @return the newly cloned node
|
||||||
ElseStatement* Clone(CloneContext* ctx) const override;
|
ElseStatement* Clone(CloneContext* ctx) const override;
|
||||||
|
|
|
@ -32,8 +32,6 @@ class FallthroughStatement : public Castable<FallthroughStatement, Statement> {
|
||||||
|
|
||||||
/// Clones this node and all transitive child nodes using the `CloneContext`
|
/// Clones this node and all transitive child nodes using the `CloneContext`
|
||||||
/// `ctx`.
|
/// `ctx`.
|
||||||
/// @note Semantic information such as resolved expression type and intrinsic
|
|
||||||
/// information is not cloned.
|
|
||||||
/// @param ctx the clone context
|
/// @param ctx the clone context
|
||||||
/// @return the newly cloned node
|
/// @return the newly cloned node
|
||||||
FallthroughStatement* Clone(CloneContext* ctx) const override;
|
FallthroughStatement* Clone(CloneContext* ctx) const override;
|
||||||
|
|
|
@ -44,8 +44,6 @@ class FloatLiteral : public Castable<FloatLiteral, Literal> {
|
||||||
|
|
||||||
/// Clones this node and all transitive child nodes using the `CloneContext`
|
/// Clones this node and all transitive child nodes using the `CloneContext`
|
||||||
/// `ctx`.
|
/// `ctx`.
|
||||||
/// @note Semantic information such as resolved expression type and intrinsic
|
|
||||||
/// information is not cloned.
|
|
||||||
/// @param ctx the clone context
|
/// @param ctx the clone context
|
||||||
/// @return the newly cloned node
|
/// @return the newly cloned node
|
||||||
FloatLiteral* Clone(CloneContext* ctx) const override;
|
FloatLiteral* Clone(CloneContext* ctx) const override;
|
||||||
|
|
|
@ -93,8 +93,6 @@ class Function : public Castable<Function, Node> {
|
||||||
|
|
||||||
/// Clones this node and all transitive child nodes using the `CloneContext`
|
/// Clones this node and all transitive child nodes using the `CloneContext`
|
||||||
/// `ctx`.
|
/// `ctx`.
|
||||||
/// @note Semantic information such as resolved expression type and intrinsic
|
|
||||||
/// information is not cloned.
|
|
||||||
/// @param ctx the clone context
|
/// @param ctx the clone context
|
||||||
/// @return the newly cloned node
|
/// @return the newly cloned node
|
||||||
Function* Clone(CloneContext* ctx) const override;
|
Function* Clone(CloneContext* ctx) const override;
|
||||||
|
|
|
@ -44,8 +44,6 @@ class GroupDecoration : public Castable<GroupDecoration, VariableDecoration> {
|
||||||
|
|
||||||
/// Clones this node and all transitive child nodes using the `CloneContext`
|
/// Clones this node and all transitive child nodes using the `CloneContext`
|
||||||
/// `ctx`.
|
/// `ctx`.
|
||||||
/// @note Semantic information such as resolved expression type and intrinsic
|
|
||||||
/// information is not cloned.
|
|
||||||
/// @param ctx the clone context
|
/// @param ctx the clone context
|
||||||
/// @return the newly cloned node
|
/// @return the newly cloned node
|
||||||
GroupDecoration* Clone(CloneContext* ctx) const override;
|
GroupDecoration* Clone(CloneContext* ctx) const override;
|
||||||
|
|
|
@ -41,8 +41,6 @@ class IdentifierExpression : public Castable<IdentifierExpression, Expression> {
|
||||||
|
|
||||||
/// Clones this node and all transitive child nodes using the `CloneContext`
|
/// Clones this node and all transitive child nodes using the `CloneContext`
|
||||||
/// `ctx`.
|
/// `ctx`.
|
||||||
/// @note Semantic information such as resolved expression type and intrinsic
|
|
||||||
/// information is not cloned.
|
|
||||||
/// @param ctx the clone context
|
/// @param ctx the clone context
|
||||||
/// @return the newly cloned node
|
/// @return the newly cloned node
|
||||||
IdentifierExpression* Clone(CloneContext* ctx) const override;
|
IdentifierExpression* Clone(CloneContext* ctx) const override;
|
||||||
|
|
|
@ -57,8 +57,6 @@ class IfStatement : public Castable<IfStatement, Statement> {
|
||||||
|
|
||||||
/// Clones this node and all transitive child nodes using the `CloneContext`
|
/// Clones this node and all transitive child nodes using the `CloneContext`
|
||||||
/// `ctx`.
|
/// `ctx`.
|
||||||
/// @note Semantic information such as resolved expression type and intrinsic
|
|
||||||
/// information is not cloned.
|
|
||||||
/// @param ctx the clone context
|
/// @param ctx the clone context
|
||||||
/// @return the newly cloned node
|
/// @return the newly cloned node
|
||||||
IfStatement* Clone(CloneContext* ctx) const override;
|
IfStatement* Clone(CloneContext* ctx) const override;
|
||||||
|
|
|
@ -45,8 +45,6 @@ class LocationDecoration
|
||||||
|
|
||||||
/// Clones this node and all transitive child nodes using the `CloneContext`
|
/// Clones this node and all transitive child nodes using the `CloneContext`
|
||||||
/// `ctx`.
|
/// `ctx`.
|
||||||
/// @note Semantic information such as resolved expression type and intrinsic
|
|
||||||
/// information is not cloned.
|
|
||||||
/// @param ctx the clone context
|
/// @param ctx the clone context
|
||||||
/// @return the newly cloned node
|
/// @return the newly cloned node
|
||||||
LocationDecoration* Clone(CloneContext* ctx) const override;
|
LocationDecoration* Clone(CloneContext* ctx) const override;
|
||||||
|
|
|
@ -54,8 +54,6 @@ class LoopStatement : public Castable<LoopStatement, Statement> {
|
||||||
|
|
||||||
/// Clones this node and all transitive child nodes using the `CloneContext`
|
/// Clones this node and all transitive child nodes using the `CloneContext`
|
||||||
/// `ctx`.
|
/// `ctx`.
|
||||||
/// @note Semantic information such as resolved expression type and intrinsic
|
|
||||||
/// information is not cloned.
|
|
||||||
/// @param ctx the clone context
|
/// @param ctx the clone context
|
||||||
/// @return the newly cloned node
|
/// @return the newly cloned node
|
||||||
LoopStatement* Clone(CloneContext* ctx) const override;
|
LoopStatement* Clone(CloneContext* ctx) const override;
|
||||||
|
|
|
@ -47,8 +47,6 @@ class MemberAccessorExpression
|
||||||
|
|
||||||
/// Clones this node and all transitive child nodes using the `CloneContext`
|
/// Clones this node and all transitive child nodes using the `CloneContext`
|
||||||
/// `ctx`.
|
/// `ctx`.
|
||||||
/// @note Semantic information such as resolved expression type and intrinsic
|
|
||||||
/// information is not cloned.
|
|
||||||
/// @param ctx the clone context
|
/// @param ctx the clone context
|
||||||
/// @return the newly cloned node
|
/// @return the newly cloned node
|
||||||
MemberAccessorExpression* Clone(CloneContext* ctx) const override;
|
MemberAccessorExpression* Clone(CloneContext* ctx) const override;
|
||||||
|
|
|
@ -89,8 +89,6 @@ class Module : public Castable<Module, Node> {
|
||||||
|
|
||||||
/// Clones this node and all transitive child nodes using the `CloneContext`
|
/// Clones this node and all transitive child nodes using the `CloneContext`
|
||||||
/// `ctx`.
|
/// `ctx`.
|
||||||
/// @note Semantic information such as resolved expression type and intrinsic
|
|
||||||
/// information is not cloned.
|
|
||||||
/// @param ctx the clone context
|
/// @param ctx the clone context
|
||||||
/// @return the newly cloned node
|
/// @return the newly cloned node
|
||||||
Module* Clone(CloneContext* ctx) const override;
|
Module* Clone(CloneContext* ctx) const override;
|
||||||
|
|
|
@ -42,8 +42,6 @@ class Node : public Castable<Node> {
|
||||||
|
|
||||||
/// Clones this node and all transitive child nodes using the `CloneContext`
|
/// Clones this node and all transitive child nodes using the `CloneContext`
|
||||||
/// `ctx`.
|
/// `ctx`.
|
||||||
/// @note Semantic information such as resolved expression type and intrinsic
|
|
||||||
/// information is not cloned.
|
|
||||||
/// @param ctx the clone context
|
/// @param ctx the clone context
|
||||||
/// @return the newly cloned node
|
/// @return the newly cloned node
|
||||||
virtual Node* Clone(CloneContext* ctx) const = 0;
|
virtual Node* Clone(CloneContext* ctx) const = 0;
|
||||||
|
|
|
@ -40,8 +40,6 @@ class NullLiteral : public Castable<NullLiteral, Literal> {
|
||||||
|
|
||||||
/// Clones this node and all transitive child nodes using the `CloneContext`
|
/// Clones this node and all transitive child nodes using the `CloneContext`
|
||||||
/// `ctx`.
|
/// `ctx`.
|
||||||
/// @note Semantic information such as resolved expression type and intrinsic
|
|
||||||
/// information is not cloned.
|
|
||||||
/// @param ctx the clone context
|
/// @param ctx the clone context
|
||||||
/// @return the newly cloned node
|
/// @return the newly cloned node
|
||||||
NullLiteral* Clone(CloneContext* ctx) const override;
|
NullLiteral* Clone(CloneContext* ctx) const override;
|
||||||
|
|
|
@ -45,8 +45,6 @@ class ReturnStatement : public Castable<ReturnStatement, Statement> {
|
||||||
|
|
||||||
/// Clones this node and all transitive child nodes using the `CloneContext`
|
/// Clones this node and all transitive child nodes using the `CloneContext`
|
||||||
/// `ctx`.
|
/// `ctx`.
|
||||||
/// @note Semantic information such as resolved expression type and intrinsic
|
|
||||||
/// information is not cloned.
|
|
||||||
/// @param ctx the clone context
|
/// @param ctx the clone context
|
||||||
/// @return the newly cloned node
|
/// @return the newly cloned node
|
||||||
ReturnStatement* Clone(CloneContext* ctx) const override;
|
ReturnStatement* Clone(CloneContext* ctx) const override;
|
||||||
|
|
|
@ -41,8 +41,6 @@ class ScalarConstructorExpression
|
||||||
|
|
||||||
/// Clones this node and all transitive child nodes using the `CloneContext`
|
/// Clones this node and all transitive child nodes using the `CloneContext`
|
||||||
/// `ctx`.
|
/// `ctx`.
|
||||||
/// @note Semantic information such as resolved expression type and intrinsic
|
|
||||||
/// information is not cloned.
|
|
||||||
/// @param ctx the clone context
|
/// @param ctx the clone context
|
||||||
/// @return the newly cloned node
|
/// @return the newly cloned node
|
||||||
ScalarConstructorExpression* Clone(CloneContext* ctx) const override;
|
ScalarConstructorExpression* Clone(CloneContext* ctx) const override;
|
||||||
|
|
|
@ -44,8 +44,6 @@ class SintLiteral : public Castable<SintLiteral, IntLiteral> {
|
||||||
|
|
||||||
/// Clones this node and all transitive child nodes using the `CloneContext`
|
/// Clones this node and all transitive child nodes using the `CloneContext`
|
||||||
/// `ctx`.
|
/// `ctx`.
|
||||||
/// @note Semantic information such as resolved expression type and intrinsic
|
|
||||||
/// information is not cloned.
|
|
||||||
/// @param ctx the clone context
|
/// @param ctx the clone context
|
||||||
/// @return the newly cloned node
|
/// @return the newly cloned node
|
||||||
SintLiteral* Clone(CloneContext* ctx) const override;
|
SintLiteral* Clone(CloneContext* ctx) const override;
|
||||||
|
|
|
@ -43,8 +43,6 @@ class StageDecoration : public Castable<StageDecoration, FunctionDecoration> {
|
||||||
|
|
||||||
/// Clones this node and all transitive child nodes using the `CloneContext`
|
/// Clones this node and all transitive child nodes using the `CloneContext`
|
||||||
/// `ctx`.
|
/// `ctx`.
|
||||||
/// @note Semantic information such as resolved expression type and intrinsic
|
|
||||||
/// information is not cloned.
|
|
||||||
/// @param ctx the clone context
|
/// @param ctx the clone context
|
||||||
/// @return the newly cloned node
|
/// @return the newly cloned node
|
||||||
StageDecoration* Clone(CloneContext* ctx) const override;
|
StageDecoration* Clone(CloneContext* ctx) const override;
|
||||||
|
|
|
@ -44,8 +44,6 @@ class StrideDecoration : public Castable<StrideDecoration, ArrayDecoration> {
|
||||||
|
|
||||||
/// Clones this node and all transitive child nodes using the `CloneContext`
|
/// Clones this node and all transitive child nodes using the `CloneContext`
|
||||||
/// `ctx`.
|
/// `ctx`.
|
||||||
/// @note Semantic information such as resolved expression type and intrinsic
|
|
||||||
/// information is not cloned.
|
|
||||||
/// @param ctx the clone context
|
/// @param ctx the clone context
|
||||||
/// @return the newly cloned node
|
/// @return the newly cloned node
|
||||||
StrideDecoration* Clone(CloneContext* ctx) const override;
|
StrideDecoration* Clone(CloneContext* ctx) const override;
|
||||||
|
|
|
@ -57,8 +57,6 @@ class Struct : public Castable<Struct, Node> {
|
||||||
|
|
||||||
/// Clones this node and all transitive child nodes using the `CloneContext`
|
/// Clones this node and all transitive child nodes using the `CloneContext`
|
||||||
/// `ctx`.
|
/// `ctx`.
|
||||||
/// @note Semantic information such as resolved expression type and intrinsic
|
|
||||||
/// information is not cloned.
|
|
||||||
/// @param ctx the clone context
|
/// @param ctx the clone context
|
||||||
/// @return the newly cloned node
|
/// @return the newly cloned node
|
||||||
Struct* Clone(CloneContext* ctx) const override;
|
Struct* Clone(CloneContext* ctx) const override;
|
||||||
|
|
|
@ -43,8 +43,6 @@ class StructBlockDecoration
|
||||||
|
|
||||||
/// Clones this node and all transitive child nodes using the `CloneContext`
|
/// Clones this node and all transitive child nodes using the `CloneContext`
|
||||||
/// `ctx`.
|
/// `ctx`.
|
||||||
/// @note Semantic information such as resolved expression type and intrinsic
|
|
||||||
/// information is not cloned.
|
|
||||||
/// @param ctx the clone context
|
/// @param ctx the clone context
|
||||||
/// @return the newly cloned node
|
/// @return the newly cloned node
|
||||||
StructBlockDecoration* Clone(CloneContext* ctx) const override;
|
StructBlockDecoration* Clone(CloneContext* ctx) const override;
|
||||||
|
|
|
@ -60,8 +60,6 @@ class StructMember : public Castable<StructMember, Node> {
|
||||||
|
|
||||||
/// Clones this node and all transitive child nodes using the `CloneContext`
|
/// Clones this node and all transitive child nodes using the `CloneContext`
|
||||||
/// `ctx`.
|
/// `ctx`.
|
||||||
/// @note Semantic information such as resolved expression type and intrinsic
|
|
||||||
/// information is not cloned.
|
|
||||||
/// @param ctx the clone context
|
/// @param ctx the clone context
|
||||||
/// @return the newly cloned node
|
/// @return the newly cloned node
|
||||||
StructMember* Clone(CloneContext* ctx) const override;
|
StructMember* Clone(CloneContext* ctx) const override;
|
||||||
|
|
|
@ -45,8 +45,6 @@ class StructMemberOffsetDecoration
|
||||||
|
|
||||||
/// Clones this node and all transitive child nodes using the `CloneContext`
|
/// Clones this node and all transitive child nodes using the `CloneContext`
|
||||||
/// `ctx`.
|
/// `ctx`.
|
||||||
/// @note Semantic information such as resolved expression type and intrinsic
|
|
||||||
/// information is not cloned.
|
|
||||||
/// @param ctx the clone context
|
/// @param ctx the clone context
|
||||||
/// @return the newly cloned node
|
/// @return the newly cloned node
|
||||||
StructMemberOffsetDecoration* Clone(CloneContext* ctx) const override;
|
StructMemberOffsetDecoration* Clone(CloneContext* ctx) const override;
|
||||||
|
|
|
@ -50,8 +50,6 @@ class SwitchStatement : public Castable<SwitchStatement, Statement> {
|
||||||
|
|
||||||
/// Clones this node and all transitive child nodes using the `CloneContext`
|
/// Clones this node and all transitive child nodes using the `CloneContext`
|
||||||
/// `ctx`.
|
/// `ctx`.
|
||||||
/// @note Semantic information such as resolved expression type and intrinsic
|
|
||||||
/// information is not cloned.
|
|
||||||
/// @param ctx the clone context
|
/// @param ctx the clone context
|
||||||
/// @return the newly cloned node
|
/// @return the newly cloned node
|
||||||
SwitchStatement* Clone(CloneContext* ctx) const override;
|
SwitchStatement* Clone(CloneContext* ctx) const override;
|
||||||
|
|
|
@ -46,8 +46,6 @@ class TypeConstructorExpression
|
||||||
|
|
||||||
/// Clones this node and all transitive child nodes using the `CloneContext`
|
/// Clones this node and all transitive child nodes using the `CloneContext`
|
||||||
/// `ctx`.
|
/// `ctx`.
|
||||||
/// @note Semantic information such as resolved expression type and intrinsic
|
|
||||||
/// information is not cloned.
|
|
||||||
/// @param ctx the clone context
|
/// @param ctx the clone context
|
||||||
/// @return the newly cloned node
|
/// @return the newly cloned node
|
||||||
TypeConstructorExpression* Clone(CloneContext* ctx) const override;
|
TypeConstructorExpression* Clone(CloneContext* ctx) const override;
|
||||||
|
|
|
@ -44,8 +44,6 @@ class UintLiteral : public Castable<UintLiteral, IntLiteral> {
|
||||||
|
|
||||||
/// Clones this node and all transitive child nodes using the `CloneContext`
|
/// Clones this node and all transitive child nodes using the `CloneContext`
|
||||||
/// `ctx`.
|
/// `ctx`.
|
||||||
/// @note Semantic information such as resolved expression type and intrinsic
|
|
||||||
/// information is not cloned.
|
|
||||||
/// @param ctx the clone context
|
/// @param ctx the clone context
|
||||||
/// @return the newly cloned node
|
/// @return the newly cloned node
|
||||||
UintLiteral* Clone(CloneContext* ctx) const override;
|
UintLiteral* Clone(CloneContext* ctx) const override;
|
||||||
|
|
|
@ -44,8 +44,6 @@ class UnaryOpExpression : public Castable<UnaryOpExpression, Expression> {
|
||||||
|
|
||||||
/// Clones this node and all transitive child nodes using the `CloneContext`
|
/// Clones this node and all transitive child nodes using the `CloneContext`
|
||||||
/// `ctx`.
|
/// `ctx`.
|
||||||
/// @note Semantic information such as resolved expression type and intrinsic
|
|
||||||
/// information is not cloned.
|
|
||||||
/// @param ctx the clone context
|
/// @param ctx the clone context
|
||||||
/// @return the newly cloned node
|
/// @return the newly cloned node
|
||||||
UnaryOpExpression* Clone(CloneContext* ctx) const override;
|
UnaryOpExpression* Clone(CloneContext* ctx) const override;
|
||||||
|
|
|
@ -138,8 +138,6 @@ class Variable : public Castable<Variable, Node> {
|
||||||
|
|
||||||
/// Clones this node and all transitive child nodes using the `CloneContext`
|
/// Clones this node and all transitive child nodes using the `CloneContext`
|
||||||
/// `ctx`.
|
/// `ctx`.
|
||||||
/// @note Semantic information such as resolved expression type and intrinsic
|
|
||||||
/// information is not cloned.
|
|
||||||
/// @param ctx the clone context
|
/// @param ctx the clone context
|
||||||
/// @return the newly cloned node
|
/// @return the newly cloned node
|
||||||
Variable* Clone(CloneContext* ctx) const override;
|
Variable* Clone(CloneContext* ctx) const override;
|
||||||
|
|
|
@ -42,8 +42,6 @@ class VariableDeclStatement
|
||||||
|
|
||||||
/// Clones this node and all transitive child nodes using the `CloneContext`
|
/// Clones this node and all transitive child nodes using the `CloneContext`
|
||||||
/// `ctx`.
|
/// `ctx`.
|
||||||
/// @note Semantic information such as resolved expression type and intrinsic
|
|
||||||
/// information is not cloned.
|
|
||||||
/// @param ctx the clone context
|
/// @param ctx the clone context
|
||||||
/// @return the newly cloned node
|
/// @return the newly cloned node
|
||||||
VariableDeclStatement* Clone(CloneContext* ctx) const override;
|
VariableDeclStatement* Clone(CloneContext* ctx) const override;
|
||||||
|
|
|
@ -60,8 +60,6 @@ class WorkgroupDecoration
|
||||||
|
|
||||||
/// Clones this node and all transitive child nodes using the `CloneContext`
|
/// Clones this node and all transitive child nodes using the `CloneContext`
|
||||||
/// `ctx`.
|
/// `ctx`.
|
||||||
/// @note Semantic information such as resolved expression type and intrinsic
|
|
||||||
/// information is not cloned.
|
|
||||||
/// @param ctx the clone context
|
/// @param ctx the clone context
|
||||||
/// @return the newly cloned node
|
/// @return the newly cloned node
|
||||||
WorkgroupDecoration* Clone(CloneContext* ctx) const override;
|
WorkgroupDecoration* Clone(CloneContext* ctx) const override;
|
||||||
|
|
|
@ -58,8 +58,6 @@ class CloneContext {
|
||||||
///
|
///
|
||||||
/// The Node or type::Type `a` must be owned by the Program #src.
|
/// The Node or type::Type `a` must be owned by the Program #src.
|
||||||
///
|
///
|
||||||
/// @note Semantic information such as resolved expression type and intrinsic
|
|
||||||
/// information is not cloned.
|
|
||||||
/// @param a the `Node` or `type::Type` to clone
|
/// @param a the `Node` or `type::Type` to clone
|
||||||
/// @return the cloned node
|
/// @return the cloned node
|
||||||
template <typename T>
|
template <typename T>
|
||||||
|
@ -93,8 +91,6 @@ class CloneContext {
|
||||||
///
|
///
|
||||||
/// The Node or type::Type `a` must be owned by the Program #src.
|
/// The Node or type::Type `a` must be owned by the Program #src.
|
||||||
///
|
///
|
||||||
/// @note Semantic information such as resolved expression type and intrinsic
|
|
||||||
/// information is not cloned.
|
|
||||||
/// @param a the `Node` or `type::Type` to clone
|
/// @param a the `Node` or `type::Type` to clone
|
||||||
/// @return the cloned node
|
/// @return the cloned node
|
||||||
template <typename T>
|
template <typename T>
|
||||||
|
@ -256,7 +252,9 @@ class CloneContext {
|
||||||
return *this;
|
return *this;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Clone performs the clone of the entire Program #src to #dst.
|
/// Clone performs the clone of the Program's AST nodes, types and symbols
|
||||||
|
/// from #src to #dst. Semantic nodes are not cloned, as these will be rebuilt
|
||||||
|
/// when the ProgramBuilder #dst builds its Program.
|
||||||
void Clone();
|
void Clone();
|
||||||
|
|
||||||
/// The target ProgramBuilder to clone into.
|
/// The target ProgramBuilder to clone into.
|
||||||
|
|
|
@ -105,10 +105,18 @@ class Program {
|
||||||
return diagnostics_;
|
return diagnostics_;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// @return a deep copy of this program
|
/// Performs a deep clone of this program.
|
||||||
|
/// The returned Program will contain no pointers to objects owned by this
|
||||||
|
/// Program, and so after calling, this Program can be safely destructed.
|
||||||
|
/// @return a new Program copied from this Program
|
||||||
Program Clone() const;
|
Program Clone() const;
|
||||||
|
|
||||||
/// @return a deep copy of this Program, as a ProgramBuilder
|
/// Performs a deep clone of this Program's AST nodes, types and symbols into
|
||||||
|
/// a new ProgramBuilder. Semantic nodes are not cloned, as these will be
|
||||||
|
/// rebuilt when the ProgramBuilder builds its Program.
|
||||||
|
/// The returned ProgramBuilder will contain no pointers to objects owned by
|
||||||
|
/// this Program, and so after calling, this Program can be safely destructed.
|
||||||
|
/// @return a new ProgramBuilder copied from this Program
|
||||||
ProgramBuilder CloneAsBuilder() const;
|
ProgramBuilder CloneAsBuilder() const;
|
||||||
|
|
||||||
/// @returns true if the program has no error diagnostics and is not missing
|
/// @returns true if the program has no error diagnostics and is not missing
|
||||||
|
|
Loading…
Reference in New Issue