/*
TEST_OUTPUT:
---
fail_compilation/fail10947.d(21): Error: cannot have `immutable out` parameter of type `immutable(S)`
fail_compilation/fail10947.d(22): Error: cannot have `immutable out` parameter of type `immutable(S)`
fail_compilation/fail10947.d(23): Error: cannot have `immutable out` parameter of type `immutable(S)`
fail_compilation/fail10947.d(25): Error: cannot have `const out` parameter of type `const(S)`
fail_compilation/fail10947.d(26): Error: cannot have `const out` parameter of type `const(S)`
fail_compilation/fail10947.d(27): Error: cannot have `const out` parameter of type `const(S)`
fail_compilation/fail10947.d(29): Error: cannot have `inout out` parameter of type `inout(S)`
fail_compilation/fail10947.d(30): Error: cannot have `inout out` parameter of type `inout(S)`
fail_compilation/fail10947.d(31): Error: cannot have `inout out` parameter of type `inout(S)`
---
*/

struct S {}
alias SI = immutable S;
alias SC = const S;
alias SW = inout S;

void fooi1(out SI) {}
void fooi2(out immutable(S)) {}
void fooi3(out immutable S) {}

void fooc1(out SC) {}
void fooc2(out const(S)) {}
void fooc3(out const S) {}

void foow1(out SW) {}
void foow2(out inout(S)) {}
void foow3(out inout S) {}
