typeof and (program) interfers.
Imported from http://bugzilla.roxen.com/bugzilla/show_bug.cgi?id=3170
Reported by Martin Nilsson, IDA nilsson@pike.ida.liu.se
// bug.pike
int main(int num, array(string) args) {
function(array(string):int) foo;
werror("%O %O\n", typeof(foo), _typeof(foo));
}
[nilsson@m222 nilsson]$ pike bug.pike function(array(string) : int) zero
// bug.pike
int main(int num, array(string) args) {
program p = (program)"a.pike";
function(array(string):int) foo;
werror("%O %O\n", typeof(foo), _typeof(foo));
}
[nilsson@m222 nilsson]$ pike bug.pike program(object) zero
// bug.pike
int main(int num, array(string) args) {
function(array(string):int) foo;
werror("%O\n", typeof(foo));
program p = (program)"a.pike";
}
[nilsson@m222 nilsson]$ pike bug.pike
function(array(string) : int) zero
Cannot perform cast to that type.
bug.pike:5: main(1,({"/home/nilsson/bug.pike"}))