Thread overview
[Issue 377] New: Compiler error when using -inline only
Sep 27, 2006
d-bugmail
Sep 27, 2006
d-bugmail
Sep 28, 2006
d-bugmail
Sep 29, 2006
Thomas Kuehne
Oct 10, 2006
d-bugmail
September 27, 2006
http://d.puremagic.com/issues/show_bug.cgi?id=377

           Summary: Compiler error when using -inline only
           Product: D
           Version: 0.167
          Platform: PC
        OS/Version: Windows
            Status: NEW
          Severity: major
          Priority: P1
         Component: DMD
        AssignedTo: bugzilla@digitalmars.com
        ReportedBy: boris.kolar@globera.com


Compile the following application with:
# dmd.exe -inline -c main.d
... compiler will report 3 "is not an lvalue" error. No such error is reported
when -inline is ommited.

[main.d]
module Application;

struct List {
        void get() {}
}
struct Array {
        interface Model {
                List list();
        }
        List list() {
                return model ? model.list : List.init;
        }
        void item() {
                list.get;
        }
        private Model model;
}

int main(char[][] args) {
        return 0;
}


-- 

September 27, 2006
http://d.puremagic.com/issues/show_bug.cgi?id=377


smjg@iname.com changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |smjg@iname.com
           Keywords|                            |rejects-valid




------- Comment #1 from smjg@iname.com  2006-09-27 16:04 -------
Please report compiler messages in full.  Normally, you should copy and paste the full compiler output.


-- 

September 28, 2006
http://d.puremagic.com/issues/show_bug.cgi?id=377





------- Comment #2 from boris.kolar@globera.com  2006-09-28 05:09 -------
Full, verbose compiler output (input is file main.d, described in the first
post):
# dmd.exe -v -inline main.d
parse     main
semantic  Application
semantic2 Application
semantic3 Application
inline scan Application
main.d(11): (((this).model).list)() is not an lvalue
main.d(11): &(((this).model).list)() is not an lvalue
main.d(11): &(_init_11Application4List) is not an lvalue


-- 

September 29, 2006
d-bugmail@puremagic.com schrieb am 2006-09-27:
> http://d.puremagic.com/issues/show_bug.cgi?id=377

> Compile the following application with:
> # dmd.exe -inline -c main.d
> ... compiler will report 3 "is not an lvalue" error. No such error is reported
> when -inline is ommited.
>
> [main.d]
> module Application;
>
> struct List {
>         void get() {}
> }
> struct Array {
>         interface Model {
>                 List list();
>         }
>         List list() {
>                 return model ? model.list : List.init;
>         }
>         void item() {
>                 list.get;
>         }
>         private Model model;
> }
>
> int main(char[][] args) {
>         return 0;
> }

Added to DStress as http://dstress.kuehne.cn/run/i/inline_17_A.d

Thomas


October 10, 2006
http://d.puremagic.com/issues/show_bug.cgi?id=377


bugzilla@digitalmars.com changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |RESOLVED
         Resolution|                            |FIXED




------- Comment #4 from bugzilla@digitalmars.com  2006-10-10 03:27 -------
Fixed DMD 0.169


--