Literal floats with zero decimal part become ints in PIR. For example PAST::Val.new(:value(1.0)) becomes $P16."new"(1 :named("value")) (SHA: 699da41). This works as a test:
sub are_floats_floats($x) {
if !pir::isa($x, 'Float') {
print('not ');
}
say('ok 1 - Float argument # TODO: PAST::Compiler bug');
}
are_floats_floats(1.0);