digitalmars.D.bugs - [Issue 12939] New: More uniform error messages for not nothrow and
- via Digitalmars-d-bugs (42/42) Jun 17 2014 https://issues.dlang.org/show_bug.cgi?id=12939
https://issues.dlang.org/show_bug.cgi?id=12939 Issue ID: 12939 Summary: More uniform error messages for not nothrow and not safe functions Product: D Version: D2 Hardware: All OS: All Status: NEW Keywords: diagnostic Severity: minor Priority: P1 Component: DMD Assignee: nobody puremagic.com Reporter: bearophile_hugs eml.cc void main() pure nothrow safe nogc { import std.stdio; writeln(1); } DMD 2.066alpha gives: test.d(3,12): Error: pure function 'D main' cannot call impure function 'std.stdio.writeln!(int).writeln' test.d(3,12): Error: safe function 'D main' cannot call system function 'std.stdio.writeln!(int).writeln' test.d(3,12): Error: nogc function 'D main' cannot call non- nogc function 'std.stdio.writeln!(int).writeln' test.d(3,12): Error: 'std.stdio.writeln!(int).writeln' is not nothrow test.d(1,6): Error: function 'D main' is nothrow yet may throw I suggest error messages like (note the different single error message for nothrow, and the use of safe/ system instead of safe/system): test.d(3,12): Error: pure function 'D main' cannot call impure function 'std.stdio.writeln!(int).writeln' test.d(3,12): Error: nothrow function 'D main' cannot call non-nothrow function 'std.stdio.writeln!(int).writeln' test.d(3,12): Error: safe function 'D main' cannot call system function 'std.stdio.writeln!(int).writeln' test.d(3,12): Error: nogc function 'D main' cannot call non- nogc function 'std.stdio.writeln!(int).writeln' The error messages could even be compressed to reduce the noise: test.d(3,12): Error: pure nothrow safe nogc function 'D main' cannot call impure non-nothrow system non- nogc function 'std.stdio.writeln!(int).writeln' --
Jun 17 2014