I need to use delete as the method name. But now it's still a keyword, right?

zoujiaqing zoujiaqing at gmail.com
Wed May 18 16:31:25 UTC 2022


On Wednesday, 18 May 2022 at 15:33:09 UTC, Steven Schveighoffer 
wrote:
> 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

The body is now available, and hopefully the delete keyword will 
be deprecated soon.


More information about the Digitalmars-d-learn mailing list