[Issue 18267] array comparison broken in 2.078.3

2021-11-02 Thread d-bugmail--- via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=18267

John Colvin  changed:

   What|Removed |Added

 Status|RESOLVED|REOPENED
 Resolution|FIXED   |---

--- Comment #6 from John Colvin  ---
Atila's original example still fails with dmd master

--


[Issue 18267] array comparison broken in 2.078.3

2021-11-02 Thread d-bugmail--- via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=18267

RazvanN  changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 CC||razvan.nitu1...@gmail.com
 Resolution|--- |FIXED

--- Comment #5 from RazvanN  ---
This seems to have been fix as I cannot reproduce the example provided by John
Colvin.

--


[Issue 18267] array comparison broken in 2.078.3

2019-04-01 Thread d-bugmail--- via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=18267

feklushkin.de...@gmail.com changed:

   What|Removed |Added

 CC|feklushkin.de...@gmail.com  |

--


[Issue 18267] array comparison broken in 2.078.3

2019-04-01 Thread d-bugmail--- via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=18267

feklushkin.de...@gmail.com changed:

   What|Removed |Added

 CC||feklushkin.de...@gmail.com

--


[Issue 18267] array comparison broken in 2.078.3

2018-04-27 Thread d-bugmail--- via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=18267

Mike Franklin  changed:

   What|Removed |Added

 CC||slavo5...@yahoo.com

--- Comment #4 from Mike Franklin  ---
Attributing `opEquals` with `nothrow` resolves the linker error:

struct S
{
P payload;
alias payload this;
}

struct P
{
auto opEquals(T)(T other) const nothrow  //*** Needs nothrow ***/
{
static assert(is(typeof(performOp!(S[], T;
return const(S[]).init == other;
}
}

bool performOp(T, A)(T value, A arg)
{
return value == arg;
}

--


[Issue 18267] array comparison broken in 2.078.3

2018-02-22 Thread d-bugmail--- via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=18267

John Colvin  changed:

   What|Removed |Added

   Keywords||industry
Summary|Linker errors compiling |array comparison broken in
   |std_data_json dub package   |2.078.3
   |with dmd 2.078.0|

--- Comment #3 from John Colvin  ---
Here is a standalone file that demonstrates what I think is a symptom of the
same bug:

% cat oops.d
struct JSONValue
{
TaggedAlgebraic payload;
alias payload this;
}

struct TaggedAlgebraic
{
auto opEquals(T)(T other) const
{
static assert(is(typeof(performOp!(JSONValue[], T;
return const(JSONValue[]).init == other;
}
}

bool performOp(T, A)(T value, A arg)
{
return value == arg;
}

% dmd oops.d
Undefined symbols for architecture x86_64:
  "_D6object__T8__equalsTxS4oops9JSONValueTxQsZQBgFNbAxQBdQfZb", referenced
from:
  _D4oops15TaggedAlgebraic__T8opEqualsTAxSQBm9JSONValueZQBbMxFQxZb in
oops.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

--