Invoke super implementation instead of raising error

This commit is contained in:
Anders Carling 2015-11-23 14:53:33 +01:00
parent 0559f3ee9e
commit 3a5f213cca

View File

@ -218,7 +218,7 @@ public class RubyMessage extends RubyObject {
IRubyObject oneofDescriptor = rubyDescriptor.lookupOneof(context, args[0]);
if (oneofDescriptor.isNil()) {
if (!hasField(args[0])) {
throw context.runtime.newNoMethodError("undefined method `" + args[0].toString() + "' for " + metaClass.toString(), args[0].asJavaString(), metaClass);
return Helpers.invokeSuper(context, this, metaClass, "method_missing", args, Block.NULL_BLOCK);
}
return index(context, args[0]);
}
@ -238,7 +238,7 @@ public class RubyMessage extends RubyObject {
}
if (!hasField(field)) {
throw context.runtime.newNoMethodError("undefined method `" + args[0].asJavaString() + "' for " + metaClass.toString(), args[0].asJavaString(), metaClass);
return Helpers.invokeSuper(context, this, metaClass, "method_missing", args, Block.NULL_BLOCK);
}
return indexSet(context, field, args[1]);
}