For @property, the return type is inferred even without the auto return type:
struct S {
@property p() { // missing bool/auto
return true;
}
}
void main() {
S s;
static assert(is(typeof(s.p) == bool)); // ok
}
Comment #1 by simendsjo — 2011-08-08T03:25:06Z
This also breaks creation of import files. Notice the double @property:
// D import file generated from 't.d'
struct S
{
@property @property p()
{
return true;
}
}
void main();
Comment #2 by k.hara.pg — 2011-09-21T06:40:58Z
(In reply to comment #0)
> For @property, the return type is inferred even without the auto return type:
>
> struct S {
> @property p() { // missing bool/auto
> return true;
> }
> }
> void main() {
> S s;
> static assert(is(typeof(s.p) == bool)); // ok
> }
Maybe this is expected feature, but spec does not describe it.
http://d-programming-language.org/declaration.html
> Decl:
> StorageClasses Decl
> BasicType Declarators ;
> BasicType Declarator FunctionBody
> AutoDeclaration
(In reply to comment #1)
> This also breaks creation of import files. Notice the double @property:
>
> // D import file generated from 't.d'
> struct S
> {
> @property @property p()
> {
> return true;
> }
> }
> void main();
This is same as issue 6360.
Comment #3 by lt.infiltrator — 2014-03-19T21:14:54Z
So where are we with this? Is this a "feature not a bug"?