Lost type information

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

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

The following code

#pragma strict_types

void main(int n, array(string) args)
{
  array(string) a = ({ "a", "bee" });
  int i = `+( @map(a, sizeof) );
}

will produce the warning

/home/nilsson/Pike/7.7/type.pike:7: Warning: An expression of type string |
int | float | mixed cannot be assigned to a variable of type int.