mirror of
https://github.com/dlang/dmd.git
synced 2025-04-27 05:30:13 +03:00
Don't allow short constructor with non-void expression except this()
and super()
(#17489)
This commit is contained in:
parent
a13b00fab1
commit
a7f6b04a0c
4 changed files with 38 additions and 2 deletions
|
@ -15,7 +15,7 @@ class A {
|
|||
bool isNull() => this is null;
|
||||
|
||||
this() {}
|
||||
this(int x) => _x = x;
|
||||
this(int x) { _x = x; }
|
||||
this(float y) => this(cast(int) y);
|
||||
}
|
||||
|
||||
|
|
15
compiler/test/fail_compilation/short_fn.d
Normal file
15
compiler/test/fail_compilation/short_fn.d
Normal file
|
@ -0,0 +1,15 @@
|
|||
/*
|
||||
TEST_OUTPUT:
|
||||
---
|
||||
fail_compilation/short_fn.d(13): Error: can only return void expression, `this` call or `super` call from constructor
|
||||
fail_compilation/short_fn.d(14): Error: can only return void expression, `this` call or `super` call from constructor
|
||||
---
|
||||
*/
|
||||
|
||||
struct Number
|
||||
{
|
||||
int x;
|
||||
|
||||
this(int x) => this.x = x;
|
||||
this(byte x) => Number();
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue