Thread overview
[Issue 6454] New: @property doesn't need return type
Aug 08, 2011
simendsjo
Aug 08, 2011
simendsjo
Sep 21, 2011
Kenji Hara
August 08, 2011
http://d.puremagic.com/issues/show_bug.cgi?id=6454

           Summary: @property doesn't need return type
           Product: D
           Version: D2
          Platform: Other
        OS/Version: Windows
            Status: NEW
          Severity: normal
          Priority: P2
         Component: DMD
        AssignedTo: nobody@puremagic.com
        ReportedBy: simendsjo@gmail.com


--- Comment #0 from simendsjo <simendsjo@gmail.com> 2011-08-08 03:23:22 PDT ---
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
}

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
August 08, 2011
http://d.puremagic.com/issues/show_bug.cgi?id=6454



--- Comment #1 from simendsjo <simendsjo@gmail.com> 2011-08-08 03:25:06 PDT ---
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();

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
September 21, 2011
http://d.puremagic.com/issues/show_bug.cgi?id=6454



--- Comment #2 from Kenji Hara <k.hara.pg@gmail.com> 2011-09-21 06:40:58 PDT ---
(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.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------