vala:wip/bug567269

Last commit made on 2018-02-19
Get this branch:
git clone -b wip/bug567269 https://git.launchpad.net/vala

Branch merges

Branch information

Name:
wip/bug567269
Repository:
lp:vala

Recent commits

1fd2f68... by Rico Tzschichholz

tests: Add some invalid "chain-up" tests

https://bugzilla.gnome.org/show_bug.cgi?id=567269

3a40f6f... by Simon Werbeck

Warn when using 'this' before chain up

Do flow analysis on 'this' parameter in creation methods. Report a
warning if it is used before a chain up call.

https://bugzilla.gnome.org/show_bug.cgi?id=567269

f5a4f20... by Simon Werbeck

Allow 'static' lambdas before chainup

If a lambda expression does not use its instance parameter, it is safe
to use before a chainup expression. To make this work, usage of 'this'
has to be tracked and the code generator needs to make use of this
information.

https://bugzilla.gnome.org/show_bug.cgi?id=567269

7b06c4c... by Simon Werbeck

Allow multiple chain-up calls in the constructor

This requires that the instance parameter is initialized at the end of
the constructor.
Another issue is the possibility of initializing 'this' more than once,
so I added a warning when this is the case.

https://bugzilla.gnome.org/show_bug.cgi?id=567269

e90b726... by Simon Werbeck

Make lambdas work in chain-ups again

Lambdas can confuse the flow analyser when chaining up. The reason is
that lambdas take their instance parameter directly from the enclosing
method without copying it.
Since flow analysis in the lambdas method body is separate from the
creation method it was defined in, 'this' is seen as uninitialized.

https://bugzilla.gnome.org/show_bug.cgi?id=567269

c424722... by Rico Tzschichholz

tests: Add chain-up lambda regression test

https://bugzilla.gnome.org/show_bug.cgi?id=567269

3b2e2d5... by Rico Tzschichholz

vala: Make SemanticAnalyzer.check_arguments() independent of context

dff67ff... by Marco Trevisan (Treviño)

codegen: Add valid support for const multi-dimensional arrays

For example this
  const int[,,] tri_numbers = {{{1, 2, 3}, {5, 5, 6}}, {{6, 7}}};
correctly transfoms to
  const gint tri_numbers[2][2][3] = {{{1, 2, 3}, {5, 5, 6}}, {{6, 7}}};

https://bugzilla.gnome.org/show_bug.cgi?id=604371

9093a1d... by Marco Trevisan (Treviño)

codegen: Use pointers when accessing constant multi-dimensional arrays

https://bugzilla.gnome.org/show_bug.cgi?id=604371

30caeac... by Rico Tzschichholz

vala: The rank of an array-initializer should match the target's rank

https://bugzilla.gnome.org/show_bug.cgi?id=744923