Don't allow short constructor with non-void expression except this() and super() (#17489)

This commit is contained in:
Nick Treleaven 2024-12-08 09:21:42 +00:00 committed by GitHub
parent a13b00fab1
commit a7f6b04a0c
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
4 changed files with 38 additions and 2 deletions

View file

@ -7,9 +7,12 @@ struct Number
{
int x;
this(int x) => this.x = x;
void vf(int);
this(int x) => vf(x);
this(float x) => this(cast(int) x);
}
---
The expression body must be a `this`/`super` call or have type `void`.
Postblits and destructors already supported shortened method syntax because they return `void`.