// https://issues.dlang.org/show_bug.cgi?id=21806
void main()
{
    ubyte[16] arr;
    static assert(is(typeof(  fun(arr[])) == char));
    static assert(is(typeof(funtp(arr[])) == char));
    static assert(is(typeof(  bar(arr[])) == char));
}
// functions
char fun(ubyte[] arr) { return 'X'; }
int fun(ubyte[16] arr) { return 123; }
// function templates
char funtp()(ubyte[] arr) { return 'X'; }
int funtp(size_t N)(ubyte[N] arr) { return 123; }
// original case with 'in'
char bar()(in ubyte[] arr) { return 'X'; }
int bar(size_t N)(in ubyte[N] arr) { return 123; }