Discuss warnings for accidental self-calls after function shadowing
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 3/5
- Tempo stimato
- 1-2 giorni
- Idoneità per principianti
- 57/100
Direzione di ricerca
Start by reading the warning and name-resolution code that handles imported functions, method scopes, and self-calls; the issue does not name specific source files or tests. Reproduce the two-file example with all warnings enabled and check how the private method call is resolved. Done means the compiler warns about the accidental self-call while preserving the separate scopes allowed by PR #599.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
A contract method can shadow an imported function and accidentally call itself without a warning. PR #599 intentionally permits these separate scopes; the silent self-call was reported in solcore-rs #48. This smaller example uses a private method and a runtime argument.
lib.sol:
export {setValue};
function setValue(x: word) {
assembly { sstore(0, x) }
}
main.sol:
import {setValue} from lib;
contract C {
function setValue(x: word) { setValue(x); }
function main() {
let x: word;
assembly { x := calldataload(0) }
setValue(x);
}
}
Actual: compilation succeeds without a warning even with all warnings enabled. The runtime Hull contains the following method; the imported storage write is never reached:
function setValue (x : word) -> unit {
setValue(x)
}
- Lingua principale
- Haskell
- Stelle
- 115
- Fork
- 11
- Merge medio
- 20h 29m
- PR unite (30g)
- 2
Preparare l'ambiente
Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di argotorg/solcore
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
-
user feedback: Rename `lam` to `lambda` and give the unit type a nameForse già presa @rodrigogribeiro l’ha presa 50 giorni fa. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 92/100
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 57/100
Tutte le issue di argotorg/solcore
Issue simili
-
Allow QuickCheck 2.17Aperta
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 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
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 68/100
Huerte/algo-solutions-python#260 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 70/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 65/100
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 62/100
IntersectMBO/cardano-ledger#6276 ·
I maintainer di solito rispondono entro 1 giorno