src/c_tools: use template instead of compiling_writer

Signed-off-by: Jean Privat <jean@pryen.org>
src: remove now useless compiling_writer

If required, use lib/template instead

Signed-off-by: Jean Privat <jean@pryen.org>
Merge branch 'templates'
frontend: move `MPropDef::has_supercall` to `modelize_property`

new init will add implicit super-calls, so the flag that inform
post-frontend phases that a `super` call is required must
be more accessible.

Signed-off-by: Jean Privat <jean@pryen.org>
ffi: ASuperExternCall set mpropdef.has_supercall as true

Signed-off-by: Jean Privat <jean@pryen.org>
nitgs: use `MPorpDef::has_supercall` insead of collect_super_sends

Signed-off-by: Jean Privat <jean@pryen.org>
src: suppr. collect_super_sends module

Signed-off-by: Jean Privat <jean@pryen.org>
typing: add `ASuperExpr::mpropdef` to stores the called super-property

Signed-off-by: Jean Privat <jean@pryen.org>
src: use `ASuperExpr::mpropdef` instead of asking the frame or visitors

Signed-off-by: Jean Privat <jean@pryen.org>
Merge branch 'has_supercall'
abstract_compiler: show who require a declaration when not fulfilled

~~~
No provided declaration for SOME_strage_symbol
aborted
~~~

is not the best error message when developing the compiler.

This patch attach node to requirements, so the origin of the request
can be shown on error.

Signed-off-by: Jean Privat <jean@pryen.org>
modelviz: filter out modules without groups to avoid NPE error

These modules without groups are injected one or implicit bottom modules.

Now `nitmetrics m1.nit m2.nit --all` do not crash.

Signed-off-by: Jean Privat <jean@pryen.org>
nitmetrics: do not crash in `to_console` if no values to present

The crash occurs since `max` and `min` assert that `not values.is_empty`.

Signed-off-by: Jean Privat <jean@pryen.org>
Merge branch 'debug_require'
tests: permit multiple inputs on a single test

Currently, for each program, if a `name.inputs` file exists, it is used for input for
all executions (for a total of alts * (args+1) executions).

Now a specific input can be used for each specific args.
This distinct input file is the one named with the basename of the res file.

eg. for the program `some_test.nit`, the file `some_test_args2.inputs` is
used as input for the execution associated to the second
line of the `some_test.args` file.
The result of the execution is still `some_test_args2.res`.

If there is no specific inputs file, the previous behavior remains:
`some_test.inputs` is used if it exists, else `/dev/null` is used.

The point of this patch is to enable specific CLI interactive programs,
like the debugger or nitx, to have automatizable regression tests.

Signed-off-by: Jean Privat <jean@pryen.org>
Merge branch 'test_inputs'
tests: update nitmetrics stuff

Note: nobody saw it but there was a `Assert failed` in the previous sav file.

Signed-off-by: Jean Privat <jean@pryen.org>
lib/a_star: fix use of virtual type in Node::path_to

Signed-off-by: Alexis Laferrière <alexis.laf@xymus.net>
lib/a_star: minor style cleanup

Signed-off-by: Alexis Laferrière <alexis.laf@xymus.net>
Merge remote-tracking branch 'alexis/a_star'

The type error was detected by nitg in complex cases.