Re: Strange exception, with EXTREMELY SIMPLE toString() in a struct

2015-12-07 Thread rumbu via Digitalmars-d-learn

On Monday, 7 December 2015 at 08:17:27 UTC, Enjoys Math wrote:

Exception Message:
First-chance exception: std.format.FormatException Unterminated 
format specifier: "%" at 
C:\D\dmd2\windows\bin\..\..\src\phobos\std\format.d(828)


[CODE]
module set;
import std.conv;

struct Set(T) {
string toString() const {
auto str = "{";
return str;
}
}

unittest {
import std.stdio;
auto A = Set!int();
writeln(A);
}
[/CODE]


This is caused in fact by a correct unittest assertion in 
format.d:


f = FormatSpec("a%%b%%c%");
w.clear();
assertThrown!FormatException(f.writeUpToNextSpec(w)); <-- here
assert(w.data == "a%b%c" && f.trailing == "%");

You can add std.Format.FormatException to the Exception Settings 
(Debug -> Exceptions) and  untick the Thrown checkbox.


Strange exception, with EXTREMELY SIMPLE toString() in a struct

2015-12-07 Thread Enjoys Math via Digitalmars-d-learn

Exception Message:
First-chance exception: std.format.FormatException Unterminated 
format specifier: "%" at 
C:\D\dmd2\windows\bin\..\..\src\phobos\std\format.d(828)


[CODE]
module set;
import std.conv;

struct Set(T) {
string toString() const {
auto str = "{";
return str;
}
}

unittest {
import std.stdio;
auto A = Set!int();
writeln(A);
}
[/CODE]


Re: Strange exception, with EXTREMELY SIMPLE toString() in a struct

2015-12-07 Thread Marc Schütz via Digitalmars-d-learn

On Monday, 7 December 2015 at 08:17:27 UTC, Enjoys Math wrote:

Exception Message:
First-chance exception: std.format.FormatException Unterminated 
format specifier: "%" at 
C:\D\dmd2\windows\bin\..\..\src\phobos\std\format.d(828)


[CODE]
module set;
import std.conv;

struct Set(T) {
string toString() const {
auto str = "{";
return str;
}
}

unittest {
import std.stdio;
auto A = Set!int();
writeln(A);
}
[/CODE]


Works fine for me (Linux x86_64, DMD 2.069). Which version are 
you using exactly? Also, are you sure you're not accidentally 
running an outdated executable, or your executable doesn't 
actually match the code you posted? It doesn't invoke format at 
all.


Re: Strange exception, with EXTREMELY SIMPLE toString() in a struct

2015-12-07 Thread Radu via Digitalmars-d-learn

On Monday, 7 December 2015 at 08:17:27 UTC, Enjoys Math wrote:

Exception Message:
First-chance exception: std.format.FormatException Unterminated 
format specifier: "%" at 
C:\D\dmd2\windows\bin\..\..\src\phobos\std\format.d(828)


[CODE]
module set;
import std.conv;

struct Set(T) {
string toString() const {
auto str = "{";
return str;
}
}

unittest {
import std.stdio;
auto A = Set!int();
writeln(A);
}
[/CODE]


Are you running this in VisualD plugin? This is the only place I 
get that exception. Running it from the command line works as 
expected on 2.069.1 win32