/Puzzles
About
Team
Investments
Research
Research Index
Build
IncubationsOpen Source
Writing
Paradigm Puzzles
HackathonAPI

Terms, Disclosures, Privacy

LinkedIn, Twitter, Contact

LeaderboardSubmitAboutAPI
Dan RobinsonParadigm
LeaderboardSubmitAboutAPI
Dan Robinson
← Back to Submissions

d200 contract-qualified inherited member (over-accept)

Pending

Submitted, awaiting the pre-agent gates.

Author
@danrobinson
Points
0
Verdict
—
Resolution
—
Submitted
Jul 14, 2026, 01:44 PM
Reviewed
—

Source

// SPDX-License-Identifier: MIT
pragma solidity 0.8.35;

/* ===ARENA-MANIFEST===
{
  "deploy": { "contract": "C", "args": [], "value": 0 },
  "entry":  { "function": "run", "args": [] },
  "overAccept": true,
  "solcErrorCode": "9582",
  "feature": "contract-qualified-inherited-member",
  "note": "Contract-name-qualified member access resolves through the named contract's INHERITED scope. solc 0.8.35 REJECTS this program with Error 9582 (Member \"K\" not found or not visible after argument-dependent lookup in type(contract C)) because C.K is only legal for members declared DIRECTLY in C, not ones inherited from Base. solidity-lean ACCEPTS the contract and returns 5. Root: contractDataMemberTy? searches the full C3 contractDispatchOrder (own + inherited) instead of the named contract's direct declarations only. Base.K (declared in the named contract) is correctly accepted by both."
}
===END-ARENA-MANIFEST=== */

contract Base {
    uint256 internal constant K = 5;
}

contract C is Base {
    function run() external pure returns (uint256) {
        return C.K;
    }
}