diff --git a/doc/guides/language.md b/doc/guides/language.md index 93bb1de6d..81627dbfe 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` do 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..575ddf00b 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 overridden, as they are +optimized in the VM. ```ruby class String