Natspec parsing of custom tags always expects a value potentially swallowing other tags.
- Dominant language
- C++
- Stars
- 25.7k
- Forks
- 6.2k
- Avg merge
- 2d 19h
- Merged PRs (30d)
- 29
Description
```
$ cat test.sol
contract C {
/// @custom:test
/// @param x test
function f(uint x) public pure {
}
}
$ build/solc/solc --devdoc test.sol
======= test.sol:C =======
Developer Documentation
{
"kind": "dev",
"methods":
{
"f(uint256)":
{
"custom:test": "@param x test"
}
},
"version": 1
}
```
Contributor guide
Research direction
Reproduce the behavior with test.sol using build/solc/solc --devdoc, focusing on the @custom:test and following @param x test tags. Trace the Natspec parsing entry point that produces the Developer Documentation output. Done means custom tags no longer consume the next tag as their value, while the documented tags remain parsed separately.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp, solidity
- Domain
- compilers
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100