Cast hides type information

Imported from http://bugzilla.roxen.com/bugzilla/show_bug.cgi?id=4435

Reported by Martin Nilsson, IDA nilsson@pike.ida.liu.se

This code

#pragma strict_types

void main(int n, array(string) args)
{
  mapping(string:string) m = ([ "a" : "b" ]);
  ((array)m)[*]*"=";
}

gives the warning

/home/nilsson/Pike/7.7/type.pike:8: Warning: Type mismatch in argument 1 to `*.
/home/nilsson/Pike/7.7/type.pike:8: Warning: Expected: array(array | string
| mixed) | object | string | int | float
/home/nilsson/Pike/7.7/type.pike:8: Warning: Got     : mixed