[Issue 21711] New: Concatenating a function pointer with a string should be an error
d-bugmail at puremagic.com
d-bugmail at puremagic.com
Sun Mar 14 04:08:57 UTC 2021
https://issues.dlang.org/show_bug.cgi?id=21711
Issue ID: 21711
Summary: Concatenating a function pointer with a string should
be an error
Product: D
Version: D2
Hardware: x86_64
OS: Linux
Status: NEW
Severity: normal
Priority: P1
Component: dmd
Assignee: nobody at puremagic.com
Reporter: thomas.bockman at gmail.com
Here's a weird bug (this works since 2.066.0):
unittest {
assert(is(typeof(cast(typeof({})) 91)
== void function() pure @safe nothrow @nogc));
// This definitely should not pass, but does:
assert((cast(typeof({})) 91) ~ "" == "[");
}
It becomes a compile-time error, as it should be, if the function pointer
expression is replaced with a variable of the same type and value.
(Reduced from an obfuscation puzzle posted on the forums:
https://forum.dlang.org/post/vijyjoncoozwqzrvkhat@forum.dlang.org)
--
More information about the Digitalmars-d-bugs
mailing list