Index: src/AST/Decl.hpp
===================================================================
--- src/AST/Decl.hpp	(revision 45ee1728c7f098a172d35db8ad17ebe5bdb9cfbf)
+++ src/AST/Decl.hpp	(revision d1fbc56eb90675715ccf39ca76d45ed759d3cc40)
@@ -50,6 +50,4 @@
 	: ParseNode( loc ), name( name ), storage( storage ), linkage( linkage ) {}
 
-	Decl* set_extension( bool ex ) { extension = ex; return this; }
-
 	/// Ensures this node has a unique ID
 	void fixUniqueId();
Index: src/AST/Expr.hpp
===================================================================
--- src/AST/Expr.hpp	(revision 45ee1728c7f098a172d35db8ad17ebe5bdb9cfbf)
+++ src/AST/Expr.hpp	(revision d1fbc56eb90675715ccf39ca76d45ed759d3cc40)
@@ -187,5 +187,4 @@
 	: ParseNode( loc ), result( res ), env(), inferred() {}
 
-	Expr * set_extension( bool ex ) { extension = ex; return this; }
 	virtual bool get_lvalue() const;
 
Index: src/Parser/DeclarationNode.cpp
===================================================================
--- src/Parser/DeclarationNode.cpp	(revision 45ee1728c7f098a172d35db8ad17ebe5bdb9cfbf)
+++ src/Parser/DeclarationNode.cpp	(revision d1fbc56eb90675715ccf39ca76d45ed759d3cc40)
@@ -959,5 +959,6 @@
 			isDelete ? nullptr : maybeBuild( initializer ),
 			copy( attributes )
-		)->set_extension( extension );
+		);
+		decl->extension = extension;
 		if ( isDelete ) {
 			auto dwt = strict_dynamic_cast<ast::DeclWithType *>( decl );
Index: src/Parser/ExpressionNode.hpp
===================================================================
--- src/Parser/ExpressionNode.hpp	(revision 45ee1728c7f098a172d35db8ad17ebe5bdb9cfbf)
+++ src/Parser/ExpressionNode.hpp	(revision d1fbc56eb90675715ccf39ca76d45ed759d3cc40)
@@ -43,5 +43,5 @@
 	ast::Expr * build() {
 		ast::Expr * node = expr.release();
-		node->set_extension( this->get_extension() );
+		node->extension = this->extension;
 		node->location = this->location;
 		return node;
