@@ -73,9 +73,10 @@ static int toIndex(int index, int length) {
7373 }
7474
7575 /** Evaluates an eager binary operation, {@code x op y}. (Excludes AND and OR.) */
76- static Object binaryOp (
77- TokenKind op , Object x , Object y , StarlarkSemantics semantics , Mutability mu )
76+ static Object binaryOp (TokenKind op , Object x , Object y , StarlarkThread starlarkThread )
7877 throws EvalException {
78+ StarlarkSemantics semantics = starlarkThread .getSemantics ();
79+ Mutability mu = starlarkThread .mutability ();
7980 switch (op ) {
8081 case PLUS :
8182 if (x instanceof StarlarkInt ) {
@@ -339,6 +340,8 @@ static Object binaryOp(
339340 case IN :
340341 if (y instanceof StarlarkIndexable ) {
341342 return ((StarlarkIndexable ) y ).containsKey (semantics , x );
343+ } else if (y instanceof StarlarkIndexable .Threaded ) {
344+ return ((StarlarkIndexable .Threaded ) y ).containsKey (starlarkThread , semantics , x );
342345 } else if (y instanceof String ) {
343346 if (!(x instanceof String )) {
344347 throw Starlark .errorf (
@@ -349,7 +352,7 @@ static Object binaryOp(
349352 break ;
350353
351354 case NOT_IN :
352- Object z = binaryOp (TokenKind .IN , x , y , semantics , mu );
355+ Object z = binaryOp (TokenKind .IN , x , y , starlarkThread );
353356 if (z != null ) {
354357 return !Starlark .truth (z );
355358 }
0 commit comments