rbs
rbs copied to clipboard
Updated most of Kernel module methods
This PR updates most of Kernel's module methods. Here's some things to note:
- Only
Complex,Rational,open,rand,select,exec,spawn, andsystemremain. These methods will be addressed in later PRs, but are somewhat complicated, and I wanted to get this PR merged. - There is one TODO that's still outstanding that will be completed by the time I finish the other
Kernelmethods: The newassert_send_raisesdoesn't actually validate the signature it's passed (instead, it only validates the raised error). - The
def self?.XXXsyntax is used to indicatemodule_functions. However, it doesn't mark the instance methods as private (it should be equal todef self.XXXandprivate def XXX). - An issue I ran into while doing this is that
loopwith no arguments returns anEnumerator, except theeachmethod doesn't actually pass in any arguments (ieloop.each{|*x,**y,&z| break [x, y, z] }gives you[[], {}, nil). This means theEnumerator[nil, untyped]interface is technically incorrect, as that implies it is given an argument. I've omitted the test, but I'm not sure what to do about it.