I need to use delete as the method name. But now it's still a keyword, right?
Steven Schveighoffer
schveiguy at gmail.com
Wed May 18 15:33:09 UTC 2022
On 5/18/22 2:13 AM, bauss wrote:
> On Wednesday, 18 May 2022 at 02:12:42 UTC, zoujiaqing wrote:
>> https://dlang.org/changelog/2.100.0.html#deprecation_delete
>>
>> My code:
>>
>> ```D
>> import std.stdio;
>>
>> class HttpClient
>> {
>> string get(string url)
>> {
>> return "";
>> }
>>
>> string delete(string url)
>> {
>> return "";
>> }
>> }
>>
>> void main()
>> {
>> auto http = new HttpClient;
>>
>> string content = http.get("https://forum.dlang.org/group/general");
>> string content =
>> http.delete("https://forum.dlang.org/newpost/general?");
>> }
>> ```
>>
>> error message
>> ```bash
>> % dub build --compiler=dmd
>> Performing "debug" build using dmd for x86_64.
>> test ~master: building configuration "application"...
>> source/app.d(10,9): Error: no identifier for declarator `string`
>> source/app.d(10,9): Error: declaration expected, not `delete`
>> source/app.d(14,1): Error: unmatched closing brace
>> dmd failed with exit code 1.
>> ```
>>
>> I wonder when I can use it. Because this will cause a software naming
>> problem.
>
> Considering the deprecation period has ended then IMO it should be able
> to be used as an identifier.
>
> I would consider this a bug.
No, it's intentional.
https://dlang.org/changelog/2.100.0.html#deprecation_delete
> Starting with this release, using the delete *keyword* will result in
a *compiler error*.
It's still a keyword according to that. I'm assuming a future release
will remove the error, and then you can use it as a symbol.
-Steve
More information about the Digitalmars-d-learn
mailing list