Gibt es eine Möglichkeit, eine Warnung im Solidity-Code zu deaktivieren? [Duplikat]

Ich schreibe Einheitentests für einige Verträge und in einigen der Tests erzeuge ich absichtlich eine Warnung und solcwerde diese Warnung beim Kompilieren anzeigen.

Gibt es eine Möglichkeit, Warnungen solcfür Testzwecke zu deaktivieren.

Etwas Äquivalent zu MSVC++

#pragma warning(push)
#pragma warning(disable : 44444)
// CODE
#pragma warning(pop)
Ich denke, Sie können den Pragma-Compiler der Update-Version auswählen. Konstante entfernen und view.0.4.18 einfügen
Solc kompiliert meines Wissens nur den Code. Es befasst sich nicht mit der Adressprüfsumme.
Es scheint nur so, als ob die angegebene Adresse nicht mit der Prüfsumme übereinstimmt. Der Fehler sagt dir alles
Adresskonstante a = "0x0123456789abcDEF0123456789abCDef01234568"; Versuche dies..
Laut der Kommandozeilenhilfe von Solc - nein. Vielleicht können Sie es "unterdrücken", indem Sie das durch addressein ersetzen uint256und dann jedes andere Vorkommen von adurch ersetzen address(a).
@goodvibration Ja, ich weiß, es ist absichtlich schlecht, und ich weiß, wie ich das besonders beheben kann. Die Frage ist jedoch, wie eine willkürliche Warnung für die Ausführung automatisierter Tests deaktiviert werden kann.
Ich würde nicht empfehlen, die Warnung für Solidity-Code zu deaktivieren. Sie existieren aus einem Grund, den Sie berücksichtigen müssen.
Das Öffnen eines Problems in ihrem Repo und das Anfordern dieser Funktion könnte ein guter Anfang sein, sie sind ziemlich offen und suchen tatsächlich ausgiebig nach Benutzerfeedback.
Ich habe es nie gemeldet, weil es meiner Meinung nach für die meisten Benutzer ein schlechtes Feature ist und wahrscheinlich von schlechten Bibliotheksimplementierern missbraucht wird.

Antworten (2)

Ab dem 24.05.2018 gibt es keine Möglichkeit, die vom Compiler ausgegebenen Warnungen nativ zu deaktivieren solc. Es gibt jedoch eine Möglichkeit, diese Warnungen zu umgehen, indem Sie einen Wrapper erstellen.

Erstellen Sie einfach eine Node.JS-Anwendung, die intern das solcjsPlugin verwendet, das ein Port von solcin Node ist, um Ihre lokalen Smart Contracts zu kompilieren .solund die Ausgabe des Plugins zu filtern.

Dies ist in der Tat ein sehr unorthodoxer Ansatz und Stummschaltungswarnungen sollten generell vermieden werden .

Es ist ein Komponententest, er schlägt fehl und ich erkenne diese Situation und melde sie als solche. Ich würde es nur für diesen Fall aus kosmetischen Gründen deaktivieren wollen. Ich habe es nie gemeldet, weil ich denke, dass es für die meisten Benutzer eine schlechte Funktion ist.

Sie könnten auch solidity-cli verwenden , das die Warnungen standardmäßig deaktiviert.

Ich möchte eine einzelne Warnung deaktivieren, nicht alle Warnungen.