From ab06ed825a972e5f6a75d131f356a01d9880cc7b Mon Sep 17 00:00:00 2001 From: leviongit Date: Tue, 3 Mar 2026 13:49:03 +0100 Subject: [PATCH] change wording of the "overloading" section the previous wording may have been taken as mruby not permitting the overloading of operators on any class --- doc/guides/language.md | 10 +++++----- doc/limitations.md | 3 ++- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/doc/guides/language.md b/doc/guides/language.md index 93bb1de6d..329808b51 100644 --- a/doc/guides/language.md +++ b/doc/guides/language.md @@ -371,15 +371,15 @@ Fibers cannot cross C function boundaries. You cannot yield from a fiber inside a C-implemented method. Only `mrb_fiber_yield` at function return is supported. -### Array Subclasses +### Array and String Subclasses -`Array` does not support instance variables to reduce memory. This -means subclassing `Array` and adding `@fields` will raise an error. +`Array` and `String` does not support instance variables to reduce memory. +This means subclassing `Array` or `String` and adding `@fields` will raise an error. ### Operator Overriding -Operators cannot be overridden by user code. Redefining `+` on -`String` has no effect on the behavior of the `+` operator. +Operators of primitive classes cannot be overridden by user code. +Redefining `String#+` has no effect on the behavior of the `+` __operator__. ### Module Loading Hooks diff --git a/doc/limitations.md b/doc/limitations.md index 953591b08..63dbe53c6 100644 --- a/doc/limitations.md +++ b/doc/limitations.md @@ -111,7 +111,8 @@ Syntax error ## Operator modification -An operator can't be overwritten by the user. +Operators on some of the primitive classes cannot be overriden, as they are +optimized in the VM. ```ruby class String