From 489586430202d17fb60d973503ab27670474143d Mon Sep 17 00:00:00 2001
From: chriseth <chris@ethereum.org>
Date: Wed, 18 Apr 2018 14:28:53 +0200
Subject: Warn about functions named "constructor".

---
 libsolidity/analysis/SyntaxChecker.cpp | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

(limited to 'libsolidity')

diff --git a/libsolidity/analysis/SyntaxChecker.cpp b/libsolidity/analysis/SyntaxChecker.cpp
index f648e5b4..396058f4 100644
--- a/libsolidity/analysis/SyntaxChecker.cpp
+++ b/libsolidity/analysis/SyntaxChecker.cpp
@@ -237,8 +237,13 @@ bool SyntaxChecker::visit(FunctionDefinition const& _function)
 		if (v050)
 			m_errorReporter.syntaxError(_function.location(), "Functions without implementation cannot have modifiers.");
 		else
-			m_errorReporter.warning( _function.location(), "Modifiers of functions without implementation are ignored." );
+			m_errorReporter.warning(_function.location(), "Modifiers of functions without implementation are ignored." );
 	}
+	if (_function.name() == "constructor")
+		m_errorReporter.warning(_function.location(),
+			"This function is named \"constructor\" but is not the constructor of the contract. "
+			"If you intend this to be a constructor, use \"constructor(...) { ... }\" without the \"function\" keyword to define it."
+		);
 	return true;
 }
 
-- 
cgit v1.2.3