[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