Commit Graph

168 Commits

Author SHA1 Message Date
Liana Husikyan
8e19eea7d5 VariableDeclaration::checkTypeRequirements() refactoring 2015-04-01 15:57:39 +02:00
Liana Husikyan
e3853ec6d1 Update AST.cpp 2015-04-01 15:41:24 +02:00
Liana Husikyan
d7d5b8200a miner changes in the implementation of the externalTypes function of FunctionType.
better error messages for exeptions
style fixes after review
2015-04-01 15:21:17 +02:00
Liana Husikyan
06dea23331 changed checking for external type in VariableDeclaration::checkTypeRequirements()
changed error msg
2015-04-01 15:21:17 +02:00
Liana Husikyan
37a0234c4a style fixes 2015-04-01 15:21:17 +02:00
chriseth
eab085baf6 Merge pull request #1414 from LefterisJP/sol_notImplementedFuncs
Interface contracts
2015-03-30 19:33:30 +02:00
Lefteris Karapetsas
c6781ed38d Fix some styling issues and remove comments 2015-03-30 17:18:38 +02:00
Lefteris Karapetsas
85bb056993 Abstract contract and inheritance
- Checking the linearized base contracts for abstract functions and
  handle their existence appropriately

- If a contract is abstract it can't be created with new

- An abstract contract is not compiled (no backend code is generated)

- Of course tests
2015-03-27 15:15:34 +01:00
Liana Husikyan
a3d829d074 added externalTypes function to functionType
removed flag for externalSigniture
2015-03-27 13:28:32 +01:00
Lefteris Karapetsas
a7e78fadf5 Moving contract fullyImplemented check to TypeRequirements 2015-03-27 11:53:17 +01:00
Liana Husikyan
b1ca27ea93 two more tests
style fixes
2015-03-26 14:11:24 +01:00
Lefteris Karapetsas
9d6d7ccab8 Parsing of not fully implemented functions
- Adding the possibility of omitting a function body by simply ending a
  function definition with a semicolon

- Such a function is marked as not fully implemented and any contract
  that contains such a function is considered a not fully implemented contract
2015-03-25 14:26:05 +01:00
Liana Husikyan
8f747aab0f tests for external types 2015-03-25 14:20:13 +01:00
Liana Husikyan
9986b072ad renamed externalTypes to externalSignature 2015-03-25 13:59:46 +01:00
Liana Husikyan
701b34fbeb renamed getCanonicalSignature
added externalTypes instead of types for interface functions
added simple test

todo
testing
2015-03-25 13:59:46 +01:00
Liana Husikyan
e3ea90e997 added check for events and stat variables 2015-03-25 13:59:39 +01:00
Liana Husikyan
011d95e7e3 - added externalType to BooleanType.
- fixed the error message
2015-03-25 13:59:39 +01:00
Liana Husikyan
60204d593e added check for valid externalType to checkTypeRequirements for function 2015-03-25 13:59:39 +01:00
Liana Husikyan
ebb4d5e298 - added more tests to check constant specifier implementation
- deny use of const for local variables
- deny unitialized const variables
- only int, fixed strings, and enums can be declaired as const
2015-03-16 10:46:46 +01:00
Liana Husikyan
7d6357ae53 - added isPartOfExternalInterface to Declaration
- changed position for the constant specifier. now it goes after type: <type> <constant> <name> = <value>
- removed tests for constant functions, checkings for constant function doesn't belong to this story
2015-03-16 10:46:46 +01:00
Liana Husikyan
67cd3a7180 added parsing for constant variables 2015-03-16 10:46:46 +01:00
Lefteris Karapetsas
3ca37caddd Fixes after rebasing on top of develop 2015-03-12 12:53:00 +01:00
chriseth
28e88903dc Fix type checks for storage variable initializer. 2015-03-06 13:47:32 +01:00
Christian
b84cf62d6b Index access for calldata arrays. 2015-03-05 13:19:59 +01:00
Liana Husikyan
9b6b2759b4 removed unused member
added some comments for ModifierInvocation::checkTypeRequirements
cleanup
2015-03-02 14:28:13 +01:00
Liana Husikyan
e9238e15b4 Implemented passing arguments to the base constructor. 2015-03-02 14:28:08 +01:00
Lefteris Karapetsas
4f13859f8c Using normal pointer in getInheritableMembers() 2015-03-02 12:08:32 +01:00
Lefteris Karapetsas
bbaa9fef6c getInheritableMembers() does not look at BaseContracts
- Also adding tests for improper accessing members of other contracts.
2015-03-02 11:51:13 +01:00
Lefteris Karapetsas
efe8f9f8a0 Use lambda to avoid code duplication in inheritableMembers 2015-03-02 11:51:13 +01:00
Lefteris Karapetsas
7db2b6fbdb VisibleInDerivedContracts() is now virtual()
- Plus an extra test for internal visibility in a base class variable
2015-03-02 11:51:13 +01:00
Lefteris Karapetsas
47177542f5 Add structs to inheritable members 2015-03-02 11:51:13 +01:00
Lefteris Karapetsas
5e4665b84d Adding inheritable members to a contract 2015-03-02 11:51:13 +01:00
Christian
5d2323c914 Index and length access for dynamic arrays. 2015-02-23 18:28:30 +01:00
Christian
261786d909 Allow conversion to dynamic arrays and update grammar. 2015-02-21 18:25:08 +01:00
Christian
be15e0b424 Index access. 2015-02-21 15:10:02 +01:00
Liana Husikyan
52050201e3 Inline member initialisation
renamed VariableDefinition class to VariableDeclarationStatement
added tests
2015-02-20 22:50:34 +01:00
Lefteris Karapetsas
26132363d5 Bugfix for functions override
- Functions with byte array type parameters can now be safely
  overriden. Parameter location is now set at the right place.

- Also made a test for the fix
2015-02-19 17:43:53 +01:00
Christian
a33fa270f6 Calldata byte arrays stored on the stack. 2015-02-16 19:35:53 +01:00
Christian
f7ba85e0ec No write access to parameters of external functions. 2015-02-16 19:25:24 +01:00
Christian
c944976d00 Some changes to enums. 2015-02-14 13:35:57 +01:00
Lefteris Karapetsas
fbd39323af Moving getMemberValue from EnumDefinition to EnumType 2015-02-13 23:16:14 +01:00
Lefteris Karapetsas
b2575b4bcb Addressing issues with Enums in Solidity 2015-02-13 23:16:14 +01:00
Lefteris Karapetsas
b20ce4451b Typo in EnumValue 2015-02-13 23:16:14 +01:00
Lefteris Karapetsas
fb4ff4af28 implement getType() for EnumValue 2015-02-13 23:16:14 +01:00
Lefteris Karapetsas
52808f67fa EnumDeclaration -> EnumValue 2015-02-13 23:16:14 +01:00
Lefteris Karapetsas
91943e7368 Enum Value member access should now work properly
- Also detection of duplicate enum values and tests for them have been
  added
2015-02-13 23:16:14 +01:00
Lefteris Karapetsas
012e32942d Enum type conversion and member value access.
- Added tests for the type conversion part.

- Enum member value access still needs some work
2015-02-13 23:16:14 +01:00
Lefteris Karapetsas
c3a9ae0b06 Introducing EnumType and some Parser tests 2015-02-13 23:16:14 +01:00
Lefteris Karapetsas
86e1d671cc Parsing an enum AST node 2015-02-13 23:16:14 +01:00
Lefteris Karapetsas
a295417f34 Parsing enums for Solidity - WIP 2015-02-13 23:16:14 +01:00