mirror of
https://github.com/honeymoose/OpenSearch.git
synced 2025-02-22 21:05:23 +00:00
fix the primitive case of instanceof
This commit is contained in:
parent
001a060c84
commit
e6819648cc
@ -79,7 +79,7 @@ public class EInstanceof extends AExpression {
|
||||
// discard its result
|
||||
writer.writePop(expression.actual.type.getSize());
|
||||
// push our result: its a primitive so it cannot be null.
|
||||
writer.push(resolvedType == Object.class || resolvedType == expressionType);
|
||||
writer.push(resolvedType.isAssignableFrom(expressionType));
|
||||
} else {
|
||||
// ordinary instanceof
|
||||
expression.write(writer, globals);
|
||||
|
@ -442,6 +442,10 @@ public class ComparisonTests extends ScriptTestCase {
|
||||
|
||||
public void testInstanceOf() {
|
||||
assertEquals(true, exec("int x = 5; return x instanceof int"));
|
||||
assertEquals(true, exec("int x = 5; return x instanceof Number"));
|
||||
assertEquals(true, exec("int x = 5; return x instanceof Integer"));
|
||||
assertEquals(true, exec("int x = 5; return x instanceof def"));
|
||||
assertEquals(true, exec("int x = 5; return x instanceof Object"));
|
||||
assertEquals(true, exec("def x = 5; return x instanceof int"));
|
||||
assertEquals(true, exec("def x = 5; return x instanceof def"));
|
||||
assertEquals(true, exec("def x = 5; return x instanceof Object"));
|
||||
|
Loading…
x
Reference in New Issue
Block a user