mirror of
https://github.com/ethereum/solidity
synced 2023-10-03 13:03:40 +00:00
Allow type(Contract).name for abstract contracts and interfaces
This commit is contained in:
@@ -0,0 +1,29 @@
|
||||
abstract contract A {
|
||||
function f() virtual public pure;
|
||||
}
|
||||
|
||||
interface I {
|
||||
function f() external pure;
|
||||
}
|
||||
|
||||
contract C {
|
||||
function f() pure public {
|
||||
}
|
||||
}
|
||||
|
||||
contract Test {
|
||||
function c() public pure returns (string memory) {
|
||||
return type(C).name;
|
||||
}
|
||||
function a() public pure returns (string memory) {
|
||||
return type(A).name;
|
||||
}
|
||||
function i() public pure returns (string memory) {
|
||||
return type(I).name;
|
||||
}
|
||||
}
|
||||
|
||||
// ----
|
||||
// c() -> 0x20, 1, "C"
|
||||
// a() -> 0x20, 1, "A"
|
||||
// i() -> 0x20, 1, "I"
|
||||
@@ -2,6 +2,20 @@ contract Test {
|
||||
function f() public pure returns (string memory) {
|
||||
return type(C).name;
|
||||
}
|
||||
function g() public pure returns (string memory) {
|
||||
return type(A).name;
|
||||
}
|
||||
function h() public pure returns (string memory) {
|
||||
return type(I).name;
|
||||
}
|
||||
}
|
||||
|
||||
abstract contract A {
|
||||
function f() virtual public pure;
|
||||
}
|
||||
|
||||
interface I {
|
||||
function f() external pure;
|
||||
}
|
||||
|
||||
contract C {
|
||||
|
||||
Reference in New Issue
Block a user