/*
EXTRA_SOURCES: imports/test45a.d imports/test45b.d
PERMUTE_ARGS:
RUN_OUTPUT:
---
foo()
foo(int)
foo()
foo()
foo(int)
bar(t)
bar(t,i)
---
*/

import imports.test45a;
import imports.test45b;

alias int function() fp1;
alias int function(int) fp2;

void main()
{
    auto i = foo();
    assert(i == 1);
    i = foo(1);
    assert(i == 2);
    i = foo;
    assert(i == 1);

    fp1 fp = &foo;
    i = (*fp)();
    assert(i == 1);

    fp2 fpi = &foo;
    i = (*fpi)(1);
    assert(i == 2);

    i = bar(1);
    assert(i == 3);
    i = bar(1, 2);
    assert(i == 4);
}
