[Issue 21190] New: generated strings should convert to immutable char *
d-bugmail at puremagic.com
d-bugmail at puremagic.com
Sat Aug 22 21:13:47 UTC 2020
https://issues.dlang.org/show_bug.cgi?id=21190
Issue ID: 21190
Summary: generated strings should convert to immutable char *
Product: D
Version: D2
Hardware: All
OS: All
Status: NEW
Severity: minor
Priority: P1
Component: dmd
Assignee: nobody at puremagic.com
Reporter: schveiguy at yahoo.com
When a string is generated at compile time (and assigned to an enum), it should
be equivalent to a string literal in all cases.
This works today:
enum x = "hello";
const char *p = x;
enum x2 = "hello" ~ " there";
p = x2;
static string foo()
{
return "hello" ~ " there";
}
enum x3 = foo();
p = x3;
This does not:
static string foo2()
{
import std.string : join;
return ["hello", "there"].join(" ");
}
enum x4 = foo2();
p = x4; // Error: cannot implicitly convert expression "hello there" of type
string to const(char*)
It's unclear why foo2 cannot produce a convertible string, whereas all the
other cases can.
--
More information about the Digitalmars-d-bugs
mailing list