Function types lose the arity of a single tuple parameter
Nobody has claimed this yet.
Assessment
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Newbie friendliness
- 62/100
Research direction
Start by reading ReplaceFunTypeArgs.replace and its use of tupleTyFromList, then trace how application lowering packs call arguments. Reproduce the issue with the provided function and compare f(x, y) with f((x, y)). Done means the first call is rejected and the tuple call is accepted with specialization disabled and legacy typeclass resolution.
Written by the indexing model from the issue text.
Description
With specialization disabled, the frontend with legacy typeclass resolution accepts two separate arguments for a function type that explicitly takes one (word, word) tuple argument.
function apply(f: function((word, word)) returns (word), x: word, y: word) returns (word) {
return f(x, y);
}
Actual: The frontend exits successfully with no diagnostic.
Expected: Reject f(x, y) for this explicit one-parameter function type; f((x, y)) should be accepted.
ReplaceFunTypeArgs.replace packs the parameter list with tupleTyFromList. Its singleton case makes one tuple parameter indistinguishable from two separate parameters. Application lowering similarly packs call arguments.
- Dominant language
- Haskell
- Stars
- 115
- Forks
- 11
- Avg merge
- 20h 29m
- Merged PRs (30d)
- 2
Getting set up
This project ships no dev container, Dockerfile or contributing guide, so setting up is up to you: start from its README, and see our first-contribution guide for the general steps.
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from argotorg/solcore
-
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
-
user feedback: Rename `lam` to `lambda` and give the unit type a namePossibly taken @rodrigogribeiro claimed this 50 days ago. Open
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 82/100
-
Difficulty 1/5 Under an hour Newbie friendliness 92/100
-
Difficulty 4/5 3-5 days Newbie friendliness 57/100
All issues in argotorg/solcore
Similar issues
-
Difficulty 1/5 Under an hour Newbie friendliness 75/100
-
15-minutes 5-minutes algorithm any-language beginner-friendly c cpp csharp easy go good first issue hacktoberfest help wanted java javascript kotlin python rust swift typescript
Difficulty 1/5 Under an hour Newbie friendliness 68/100
Huerte/algo-solutions-python#260 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 70/100
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 65/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 62/100
IntersectMBO/cardano-ledger#6276 ·
Maintainers usually reply within 1 day