[Issue 20417] New: __traits(compiles) returns false result if expression is not wrapped inside a lambda while typeof works correctly
d-bugmail at puremagic.com
d-bugmail at puremagic.com
Tue Nov 26 16:29:29 UTC 2019
https://issues.dlang.org/show_bug.cgi?id=20417
Issue ID: 20417
Summary: __traits(compiles) returns false result if expression
is not wrapped inside a lambda while typeof works
correctly
Product: D
Version: D2
Hardware: All
OS: All
Status: NEW
Severity: normal
Priority: P1
Component: dmd
Assignee: nobody at puremagic.com
Reporter: sahmi.soulaimane at gmail.com
Test case:
```
struct A { ~this(); }
void f(A, int);
A a();
int i();
pragma(msg, __traits(compiles, { f(a, i); })); // true
pragma(msg, __traits(compiles, f(a, i))); // false
pragma(msg, __traits(compiles, typeof({ f(a, i); }))); // true
pragma(msg, __traits(compiles, typeof(f(a, i)))); // true
```
output:
---
true
false
true
true
---
expected:
---
true
true
true
true
---
--
More information about the Digitalmars-d-bugs
mailing list