mirror of
https://github.com/ethereum/solidity
synced 2023-10-03 13:03:40 +00:00
Make external library functions accessible.
This commit is contained in:
@@ -203,6 +203,7 @@ public:
|
||||
bool isPublic() const { return visibility() >= Visibility::Public; }
|
||||
virtual bool isVisibleInContract() const { return visibility() != Visibility::External; }
|
||||
bool isVisibleInDerivedContracts() const { return isVisibleInContract() && visibility() >= Visibility::Internal; }
|
||||
bool isVisibleAsLibraryMember() const { return visibility() >= Visibility::Internal; }
|
||||
|
||||
std::string fullyQualifiedName() const { return sourceUnitName() + ":" + name(); }
|
||||
|
||||
|
||||
@@ -304,7 +304,7 @@ MemberList::MemberMap Type::boundFunctions(Type const& _type, ContractDefinition
|
||||
);
|
||||
for (FunctionDefinition const* function: library.definedFunctions())
|
||||
{
|
||||
if (!function->isVisibleInDerivedContracts() || seenFunctions.count(function))
|
||||
if (!function->isVisibleAsLibraryMember() || seenFunctions.count(function))
|
||||
continue;
|
||||
seenFunctions.insert(function);
|
||||
FunctionType funType(*function, false);
|
||||
@@ -2875,7 +2875,7 @@ MemberList::MemberMap TypeType::nativeMembers(ContractDefinition const* _current
|
||||
}
|
||||
if (contract.isLibrary())
|
||||
for (FunctionDefinition const* function: contract.definedFunctions())
|
||||
if (function->isVisibleInDerivedContracts())
|
||||
if (function->isVisibleAsLibraryMember())
|
||||
members.push_back(MemberList::Member(
|
||||
function->name(),
|
||||
FunctionType(*function).asMemberFunction(true),
|
||||
|
||||
Reference in New Issue
Block a user