Lefteris Karapetsas
cad916a00d
Fixing detection of abstract contract
10 years ago
Lefteris Karapetsas
86caafd9e9
Add "this" contract's ctor to provided ctors set
- Also properly naming the 2 sets in checkAbstractConstructors() function
10 years ago
Lefteris Karapetsas
3a2d903252
Fixing new abstract contract error location reporting
10 years ago
Lefteris Karapetsas
c227951856
size()!=0 -> !empty()
10 years ago
Lefteris Karapetsas
2279e40274
Check all constructors in inheritance chain get args
- Also add a missing override in a function of EnumValue
10 years ago
Lefteris Karapetsas
45117f53b0
Allowing abstract contracts constructor to have no args
- If a constructor is part of an abstract contract we can omit its
arguments
- IF a contract is abstract make sure to not create and/or request
Assembly code about it since it's not compiled
10 years ago
chriseth
3bc78361d6
Bugfixes concerning variable declarations.
Fixes #1637
10 years ago
Liana Husikyan
065d9a9e68
VariableDeclaration::checkTypeRequirements() refactoring
10 years ago
Liana Husikyan
c5df9e205b
Update AST.cpp
10 years ago
Liana Husikyan
4352423fea
miner changes in the implementation of the externalTypes function of FunctionType.
better error messages for exeptions
style fixes after review
10 years ago
Liana Husikyan
4173a71846
changed checking for external type in VariableDeclaration::checkTypeRequirements()
changed error msg
10 years ago
Liana Husikyan
0e247e0282
style fixes
10 years ago
Lefteris Karapetsas
29669c16a2
Fix some styling issues and remove comments
10 years ago
Lefteris Karapetsas
dfcaf8a414
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
10 years ago
Liana Husikyan
dd15c53ae4
added externalTypes function to functionType
removed flag for externalSigniture
10 years ago
Lefteris Karapetsas
4e234b30ed
Moving contract fullyImplemented check to TypeRequirements
10 years ago
Liana Husikyan
8b14b4f4d1
two more tests
style fixes
10 years ago
Lefteris Karapetsas
742002b05a
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
10 years ago
Liana Husikyan
f3e8d2b7e9
tests for external types
10 years ago
Liana Husikyan
ba8d0f615c
renamed externalTypes to externalSignature
10 years ago
Liana Husikyan
0ca313ec85
renamed getCanonicalSignature
added externalTypes instead of types for interface functions
added simple test
todo
testing
10 years ago
Liana Husikyan
44c7da4262
added check for events and stat variables
10 years ago
Liana Husikyan
1d15c09e5f
- added externalType to BooleanType.
- fixed the error message
10 years ago
Liana Husikyan
a7eccfaa97
added check for valid externalType to checkTypeRequirements for function
10 years ago
Liana Husikyan
7359f68b9f
- 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
10 years ago
Liana Husikyan
304256b546
- 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
10 years ago
Liana Husikyan
6f11b6a73f
added parsing for constant variables
10 years ago
Lefteris Karapetsas
4700b1b2c8
Fixes after rebasing on top of develop
10 years ago
chriseth
77b9fdcfbc
Fix type checks for storage variable initializer.
10 years ago
Christian
a3b95811d4
Index access for calldata arrays.
10 years ago
Liana Husikyan
a545b8a7a4
removed unused member
added some comments for ModifierInvocation::checkTypeRequirements
cleanup
10 years ago
Liana Husikyan
df4746d5e7
Implemented passing arguments to the base constructor.
10 years ago
Lefteris Karapetsas
de6e9f4f54
Using normal pointer in getInheritableMembers()
10 years ago
Lefteris Karapetsas
1681fbd885
getInheritableMembers() does not look at BaseContracts
- Also adding tests for improper accessing members of other contracts.
10 years ago
Lefteris Karapetsas
58005fd203
Use lambda to avoid code duplication in inheritableMembers
10 years ago
Lefteris Karapetsas
b1dcc2a77f
VisibleInDerivedContracts() is now virtual()
- Plus an extra test for internal visibility in a base class variable
10 years ago
Lefteris Karapetsas
f2fdeb3599
Add structs to inheritable members
10 years ago
Lefteris Karapetsas
345e84baea
Adding inheritable members to a contract
10 years ago
Christian
de537d5de3
Index and length access for dynamic arrays.
10 years ago
Christian
92507f5bf0
Allow conversion to dynamic arrays and update grammar.
10 years ago
Christian
84555b00c9
Index access.
10 years ago
Liana Husikyan
87e956729c
Inline member initialisation
renamed VariableDefinition class to VariableDeclarationStatement
added tests
10 years ago
Gav Wood
2c6b18f01b
Add EVMJIT.
10 years ago
Lefteris Karapetsas
952350bec1
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
10 years ago
Christian
bed225c981
Calldata byte arrays stored on the stack.
10 years ago
Christian
ed0384b759
No write access to parameters of external functions.
10 years ago
Christian
4b0a566e70
Some changes to enums.
10 years ago
Lefteris Karapetsas
58c598b8cb
Moving getMemberValue from EnumDefinition to EnumType
10 years ago
Lefteris Karapetsas
c3c1b5c63c
Addressing issues with Enums in Solidity
10 years ago
Lefteris Karapetsas
e5ccf5e2be
Typo in EnumValue
10 years ago