Don <> changed:

           What    |Removed                     |Added
                 CC|                            |

--- Comment #1 from Don <> 2011-08-24 04:48:25 PDT ---
Another test case, involving a variable instead of a delegate literal:

void bug6351(alias dg)()

void delegate(int[] a...) deleg6351 = (int[] a...){};

alias bug6351!(deleg6351) baz6531;

The problem is in expression.c, functionParameters().
The parameter 'fd' is NULL, but the function calls fd->isSafe().
In fact, 'fd' will be null for any kind of call involving a variable -- TOKvar,
TOKdotvar, TOKindex, TOKstar, TOKcall, TOKdotti.

For the delegate literal case, we can determine 'fd' in expression.c 7618. This
will allow @safe inference for delegate literals as parameters.
For the variable case, the function type should be used instead of fd.

    assert(tf->ty == Tfunction);

+    if (!f && e1->op == TOKfunction)
+    {
+        f = ((FuncExp *)e1)->fd;
+    }

Configure issuemail:
------- You are receiving this mail because: -------

Reply via email to