Implement virtual keyword

This commit is contained in:
Mathias Baumann
2019-11-14 11:49:39 +01:00
parent 7d4e4b6088
commit 5b8ff78176
88 changed files with 395 additions and 314 deletions
@@ -1,5 +1,5 @@
contract C {
fallback() external {}
fallback() virtual external {}
}
contract D is C {
fallback() override external {}
@@ -1,5 +1,5 @@
contract C {
fallback() external {}
fallback() virtual external {}
}
contract D is C {
}
@@ -1,8 +1,8 @@
contract C {
fallback() external {}
fallback() virtual external {}
}
contract D is C {
fallback() external {}
}
// ----
// TypeError: (58-80): Overriding function is missing 'override' specifier.
// TypeError: (66-88): Overriding function is missing 'override' specifier.
@@ -1,5 +1,5 @@
contract C {
fallback() external {}
fallback() virtual external {}
}
contract D is C {
}
@@ -7,4 +7,4 @@ contract E is D {
fallback() external {}
}
// ----
// TypeError: (78-100): Overriding function is missing 'override' specifier.
// TypeError: (86-108): Overriding function is missing 'override' specifier.
@@ -1,5 +1,5 @@
contract C {
receive() external payable {}
receive() virtual external payable {}
}
contract D is C {
receive() override external payable {}
@@ -1,5 +1,5 @@
contract C {
receive() external payable {}
receive() virtual external payable {}
}
contract D is C {
}
@@ -1,8 +1,8 @@
contract C {
receive() external payable {}
receive() virtual external payable {}
}
contract D is C {
receive() external payable {}
}
// ----
// TypeError: (65-94): Overriding function is missing 'override' specifier.
// TypeError: (73-102): Overriding function is missing 'override' specifier.
@@ -1,5 +1,5 @@
contract C {
receive() external payable {}
receive() virtual external payable {}
}
contract D is C {
}
@@ -7,4 +7,4 @@ contract E is D {
receive() external payable {}
}
// ----
// TypeError: (85-114): Overriding function is missing 'override' specifier.
// TypeError: (93-122): Overriding function is missing 'override' specifier.