Thread overview
isSame trait and literals
Oct 05, 2021
Jack Applegame
Oct 05, 2021
Basile B.
Oct 05, 2021
Jack Applegame
October 05, 2021
enum isSame1(alias a, alias b) = __traits(isSame, a, b);
enum isSame2(args...)          = __traits(isSame, args[0], args[1]);

pragma(msg, isSame1!(1, 1)); //false
pragma(msg, isSame2!(1, 1)); //true

pragma(msg, isSame1!("test", "test")); //false
pragma(msg, isSame2!("test", "test")); //true

Looks like a bug.

try yourself: https://run.dlang.io/is/Edlz28

October 05, 2021

On Tuesday, 5 October 2021 at 19:28:30 UTC, Jack Applegame wrote:

>
enum isSame1(alias a, alias b) = __traits(isSame, a, b);
enum isSame2(args...)          = __traits(isSame, args[0], args[1]);

pragma(msg, isSame1!(1, 1)); //false
pragma(msg, isSame2!(1, 1)); //true

pragma(msg, isSame1!("test", "test")); //false
pragma(msg, isSame2!("test", "test")); //true

Looks like a bug.

Yes, this was discussed two weeks ago and I've filled this issue in consequence.

At first glance that would be a problem with AliasTemplateParameter.

Phobos isSame could be updated to use a TemplateVariadicParameter so that the body could just the __trait result.

October 05, 2021

On Tuesday, 5 October 2021 at 19:38:15 UTC, Basile B. wrote:

>

Yes, this was discussed two weeks ago and I've filled this issue in consequence.

Thanks.