diff options
author | Alex Beregszaszi <alex@rtfs.hu> | 2018-04-04 06:15:18 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-04-04 06:15:18 +0800 |
commit | 0695ffe51d5195dbedce37b26bbe395cfdaf3746 (patch) | |
tree | a07b20e4fd9f3c1de2fd3bf80148d210dd16545d /libsolidity/analysis/SyntaxChecker.cpp | |
parent | 104a9736b35495cf50bf1a895d61aed9a1ba830a (diff) | |
parent | 3ae326139a505bed877d5b9ac9b4b3ed84496c3d (diff) | |
download | dexon-solidity-0695ffe51d5195dbedce37b26bbe395cfdaf3746.tar dexon-solidity-0695ffe51d5195dbedce37b26bbe395cfdaf3746.tar.gz dexon-solidity-0695ffe51d5195dbedce37b26bbe395cfdaf3746.tar.bz2 dexon-solidity-0695ffe51d5195dbedce37b26bbe395cfdaf3746.tar.lz dexon-solidity-0695ffe51d5195dbedce37b26bbe395cfdaf3746.tar.xz dexon-solidity-0695ffe51d5195dbedce37b26bbe395cfdaf3746.tar.zst dexon-solidity-0695ffe51d5195dbedce37b26bbe395cfdaf3746.zip |
Merge pull request #3635 from ethereum/constructor-modifier
Constructors are defined using the ``constructor`` keyword.
Diffstat (limited to 'libsolidity/analysis/SyntaxChecker.cpp')
-rw-r--r-- | libsolidity/analysis/SyntaxChecker.cpp | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/libsolidity/analysis/SyntaxChecker.cpp b/libsolidity/analysis/SyntaxChecker.cpp index b595c4d1..343b4ba8 100644 --- a/libsolidity/analysis/SyntaxChecker.cpp +++ b/libsolidity/analysis/SyntaxChecker.cpp @@ -216,7 +216,22 @@ bool SyntaxChecker::visit(FunctionDefinition const& _function) if (v050 && _function.noVisibilitySpecified()) m_errorReporter.syntaxError(_function.location(), "No visibility specified."); - + + if (_function.isOldStyleConstructor()) + { + if (v050) + m_errorReporter.syntaxError( + _function.location(), + "Functions are not allowed to have the same name as the contract. " + "If you intend this to be a constructor, use \"constructor(...) { ... }\" to define it." + ); + else + m_errorReporter.warning( + _function.location(), + "Defining constructors as functions with the same name as the contract is deprecated. " + "Use \"constructor(...) { ... }\" instead." + ); + } return true; } |