Index: src/Parser/ParseNode.h
===================================================================
--- src/Parser/ParseNode.h	(revision 3e94a2320178a198595aea8d54df01c0ba38565c)
+++ src/Parser/ParseNode.h	(revision 835d6e8a258b0c508e242693bfb325e57857db4a)
@@ -437,5 +437,5 @@
 ast::Stmt * build_asm( const CodeLocation &, bool voltile, ast::Expr * instruction, ExpressionNode * output = nullptr, ExpressionNode * input = nullptr, ExpressionNode * clobber = nullptr, LabelNode * gotolabels = nullptr );
 ast::Stmt * build_directive( const CodeLocation &, std::string * directive );
-ast::SuspendStmt * build_suspend( const CodeLocation &, StatementNode *, ast::SuspendStmt::Type );
+ast::SuspendStmt * build_suspend( const CodeLocation &, StatementNode *, ast::SuspendStmt::Kind );
 ast::WaitForStmt * build_waitfor( const CodeLocation &, ast::WaitForStmt * existing, ExpressionNode * when, ExpressionNode * targetExpr, StatementNode * stmt );
 ast::WaitForStmt * build_waitfor_else( const CodeLocation &, ast::WaitForStmt * existing, ExpressionNode * when, StatementNode * stmt );
Index: src/Parser/StatementNode.cc
===================================================================
--- src/Parser/StatementNode.cc	(revision 3e94a2320178a198595aea8d54df01c0ba38565c)
+++ src/Parser/StatementNode.cc	(revision 835d6e8a258b0c508e242693bfb325e57857db4a)
@@ -362,5 +362,5 @@
 } // build_finally
 
-ast::SuspendStmt * build_suspend( const CodeLocation & location, StatementNode * then, ast::SuspendStmt::Type type ) {
+ast::SuspendStmt * build_suspend( const CodeLocation & location, StatementNode * then, ast::SuspendStmt::Kind kind ) {
 	std::vector<ast::ptr<ast::Stmt>> stmts;
 	buildMoveList( then, stmts );
@@ -370,7 +370,5 @@
 		then2 = stmts.front().strict_as<ast::CompoundStmt>();
 	}
-	auto node = new ast::SuspendStmt( location, then2, ast::SuspendStmt::None );
-	node->type = type;
-	return node;
+	return new ast::SuspendStmt( location, then2, kind );
 } // build_suspend
 
