https://issues.dlang.org/show_bug.cgi?id=19091
Iain Buclaw changed:
What|Removed |Added
Priority|P1 |P3
--
https://issues.dlang.org/show_bug.cgi?id=19091
--- Comment #14 from FeepingCreature ---
Hm, this one seems to be distinctive enough that I should report it as a new
one.
Sorry, it smelled familiar. But the assert seems its own problem site. Re-filed
as
https://issues.dlang.org/show_bug.cgi?id=19091
--- Comment #13 from FeepingCreature ---
Oh yeah, the missing printf I forgot to paste:
[] error: __error
Ie. considering
printf("[%s] %s: %s\n", e.loc.toChars(), EXPtoString(e.op).ptr, e.toChars());
meaning e, probably the opEquals, was in an
https://issues.dlang.org/show_bug.cgi?id=19091
--- Comment #12 from FeepingCreature ---
I have found a whole new manifestation of this bug!
struct Inner()
{
bool opEquals(Inner) { }
}
struct Outer()
{
Inner!() field;
bool opEquals(Outer) { return field == field; }
}
void main()
{
https://issues.dlang.org/show_bug.cgi?id=19091
Walter Bright changed:
What|Removed |Added
See Also||https://issues.dlang.org/sh
https://issues.dlang.org/show_bug.cgi?id=19091
Dlang Bot changed:
What|Removed |Added
Keywords||pull
--- Comment #11 from Dlang Bot ---
https://issues.dlang.org/show_bug.cgi?id=19091
--- Comment #10 from FeepingCreature ---
There's probably two issues. There's some sort of issue (which triggered this
originally) where the same template is inferred @safe at one time and non-@safe
in the other, which is what sent me off on 21235.
https://issues.dlang.org/show_bug.cgi?id=19091
moonlightsenti...@disroot.org changed:
What|Removed |Added
CC||moonlightsentinel@disroot.o
https://issues.dlang.org/show_bug.cgi?id=19091
--- Comment #8 from FeepingCreature ---
*** Issue 21235 has been marked as a duplicate of this issue. ***
--
https://issues.dlang.org/show_bug.cgi?id=19091
--- Comment #7 from FeepingCreature ---
Unified with what I'm learning from the testcase from 21235:
```
// gag the foo error
static assert(!__traits(compiles, foo()));
void foo()() {
static assert(false);
bar!();
}
// foo() is not
https://issues.dlang.org/show_bug.cgi?id=19091
--- Comment #6 from FeepingCreature ---
Update: version that makes it clearer what happens:
```
struct Template {
void opEquals(U, this TA)(U) {
pragma(msg, "Template.opEquals!(" ~ U.stringof ~ ", " ~ TA.stringof ~
")");
foo();
https://issues.dlang.org/show_bug.cgi?id=19091
FeepingCreature changed:
What|Removed |Added
Severity|enhancement |normal
--
https://issues.dlang.org/show_bug.cgi?id=19091
--- Comment #5 from FeepingCreature ---
https://issues.dlang.org/show_bug.cgi?id=21235 might be the same bug? I don't
know.
--
https://issues.dlang.org/show_bug.cgi?id=19091
Mario Kroeplin changed:
What|Removed |Added
Keywords||industry
CC|
https://issues.dlang.org/show_bug.cgi?id=19091
--- Comment #4 from FeepingCreature ---
A different way of provoking the same effect:
```
struct Struct() {
static void missing() { } // this will be missing from the linker
void fun() { error; } // will provoke an error if attempted to
https://issues.dlang.org/show_bug.cgi?id=19091
--- Comment #3 from FeepingCreature ---
Correction, sorry; didn't pay attention and accidentally pasted a working
version. This one properly linker errors:
```
void early()() { auto var = Struct!()(0); }
struct Struct() { this(int) { } void fun()
https://issues.dlang.org/show_bug.cgi?id=19091
--- Comment #2 from FeepingCreature ---
Found a new version of this bug:
```
void early()() { Struct!() var; }
struct Struct() { void fun() { error; } }
void main() {
void helper()() { early; }
static assert(!__traits(compiles,
https://issues.dlang.org/show_bug.cgi?id=19091
--- Comment #1 from FeepingCreature ---
Note that __traits(compiles) evaluates to true?!
--
18 matches
Mail list logo