public static object EvaluateInSingleton(object self, BlockParam /*!*/ block) { // TODO: this is checked in method definition, if no method is defined it is ok. // => singleton is create in method definition also. if (!RubyUtils.CanCreateSingleton(self)) { throw RubyExceptions.CreateTypeError("can't define singleton method for literals"); } block.ModuleDeclaration = block.RubyContext.CreateSingletonClass(self); // TODO: flows Public visibility in the block // Flow "Singleton" method attribute? If we change method attribute object returnValue = RubyOps.Yield1(self, self, block); block.BlockJumped(returnValue); return(returnValue); }