protected String _case(
     JvmOperation input,
     XFeatureCall context,
     EReference reference,
     JvmFeatureDescription jvmFeatureDescription) {
   if (context.getDeclaringType() != null) {
     if (!input.isStatic()) return STATIC_ACCESS_TO_INSTANCE_MEMBER;
   }
   return checkJvmOperation(
       input,
       context,
       context.isExplicitOperationCall(),
       jvmFeatureDescription,
       context.getFeatureCallArguments());
 }
 protected IFeatureCallArguments toArguments(
     final String signature, final String invocation, final boolean receiver) {
   try {
     StringConcatenation _builder = new StringConcatenation();
     _builder.append("def void m(");
     _builder.append(signature, "");
     _builder.append(") {");
     _builder.newLineIfNotEmpty();
     _builder.append("\t");
     _builder.append("m(");
     _builder.append(invocation, "\t");
     _builder.append(")");
     _builder.newLineIfNotEmpty();
     _builder.append("}");
     _builder.newLine();
     final String functionString = _builder.toString();
     final XtendFunction function = this.function(functionString);
     XExpression _expression = function.getExpression();
     final XBlockExpression body = ((XBlockExpression) _expression);
     EList<XExpression> _expressions = body.getExpressions();
     XExpression _head = IterableExtensions.<XExpression>head(_expressions);
     final XFeatureCall featureCall = ((XFeatureCall) _head);
     final EList<XExpression> arguments = featureCall.getFeatureCallArguments();
     final JvmOperation operation =
         this._iXtendJvmAssociations.getDirectlyInferredOperation(function);
     EList<JvmFormalParameter> _parameters = operation.getParameters();
     ITypeReferenceOwner _owner = this.getOwner();
     final IFeatureCallArguments result =
         this.factory.createVarArgArguments(arguments, _parameters, receiver, _owner);
     Class<? extends IFeatureCallArguments> _class = result.getClass();
     boolean _equals = Objects.equal(_class, VarArgFeatureCallArguments.class);
     Assert.assertTrue(_equals);
     return result;
   } catch (Throwable _e) {
     throw Exceptions.sneakyThrow(_e);
   }
 }