-
-
Notifications
You must be signed in to change notification settings - Fork 925
Commit
- 9.4.12.0
- 9.4.11.0
- 9.4.10.0
- 9.4.9.0
- 9.4.8.0
- 9.4.7.0
- 9.4.6.0
- 9.4.5.0
- 9.4.4.0
- 9.4.3.0
- 9.4.2.0
- 9.4.1.0
- 9.4.0.0
- 9.3.15.0
- 9.3.14.0
- 9.3.13.0
- 9.3.12.0
- 9.3.11.0
- 9.3.10.0
- 9.3.9.0
- 9.3.8.0
- 9.3.7.0
- 9.3.6.0
- 9.3.5.0
- 9.3.4.0
- 9.3.3.0
- 9.3.2.0
- 9.3.1.0
- 9.3.0.0
- 9.2.21.0
- 9.2.20.1
- 9.2.20.0
- 9.2.19.0
- 9.2.18.0
- 9.2.17.0
- 9.2.16.0
- 9.2.15.0
- 9.2.14.0
- 9.2.13.0
- 9.2.12.0
- 9.2.11.1
- 9.2.11.0
- 9.2.10.0
- 9.2.9.0
- 9.2.8.0
- 9.2.7.0
- 9.2.6.0
- 9.2.5.0
- 9.2.4.1
- 9.2.4.0
- 9.2.3.0
- 9.2.2.0
- 9.2.1.0
- 9.2.0.0
- 9.1.17.0
- 9.1.16.0
- 9.1.15.0
- 9.1.14.0
- 9.1.13.0
- 9.1.12.0
- 9.1.11.0
- 9.1.10.0
- 9.1.9.0
- 9.1.8.0
- 9.1.7.0
- 9.1.6.0
- 9.1.5.0
- 9.1.4.0
- 9.1.3.0
- 9.1.2.0
- 9.1.1.0
- 9.1.0.0
- 9.0.5.0
- 9.0.4.0
- 9.0.3.0
- 9.0.1.0
- 9.0.0.0
- 9.0.0.0.rc2
- 9.0.0.0.rc1
- 9.0.0.0.pre2
- 9.0.0.0.pre1
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -17,6 +17,7 @@ | |
import com.oracle.truffle.api.utilities.ConditionProfile; | ||
import org.jruby.truffle.nodes.dispatch.CallDispatchHeadNode; | ||
import org.jruby.truffle.nodes.dispatch.DispatchHeadNodeFactory; | ||
import org.jruby.truffle.runtime.DebugOperations; | ||
import org.jruby.truffle.runtime.RubyCallStack; | ||
import org.jruby.truffle.runtime.RubyContext; | ||
import org.jruby.truffle.runtime.control.RaiseException; | ||
|
@@ -254,6 +255,15 @@ public double div(double a, RubyBignum b) { | |
return a / b.doubleValue(); | ||
} | ||
|
||
@Specialization(guards = { | ||
"!isInteger(arguments[1])", | ||
"!isLong(arguments[1])", | ||
"!isDouble(arguments[1])", | ||
"!isRubyBignum(arguments[1])"}) | ||
public Object div(double a, Object b) { | ||
return DebugOperations.send(getContext(), a, "redo_coerced", null, getContext().getSymbolTable().getSymbol("/"), b); | ||
This comment has been minimized.
Sorry, something went wrong.
This comment has been minimized.
Sorry, something went wrong.
eregon
Member
|
||
} | ||
|
||
} | ||
|
||
@CoreMethod(names = "%", required = 1) | ||
|
This file was deleted.
@eregon @nirvdrum
We've got the problem that methods like
Float#/
have to handle classes such asRational
andComplex
on the RHS, but these types don't exist in our Java code. Kevin looked at writing a guard that looks for the type, having read it out of the object graph and then calls a helper method, but I think I've found a better way here.The Rubinius implementation of
Fixnum#/
runs a primitive, and if that fails it doesredo_coerced
. Their primitive handles the same types we do in our specialisation, so we can just re-use thatredo_coerced
! We just need to call it if none of our specialisations match.But I shouldn't have left this as a
DebugOperation.send
- I'll go back and add a proper call.