fails:String#+ converts any non-String argument with #to_str
fails:String#+ raises a TypeError when given any object that fails #to_str
fails:String#+ taints the result when self or other is tainted
fails:String#+ when self is in an ASCII-incompatible encoding incompatible with the argument's encoding uses self's encoding if both are empty
fails:String#+ when self is in an ASCII-incompatible encoding incompatible with the argument's encoding uses self's encoding if the argument is empty
fails:String#+ when self is in an ASCII-incompatible encoding incompatible with the argument's encoding uses the argument's encoding if self is empty
fails:String#+ when self is in an ASCII-incompatible encoding incompatible with the argument's encoding raises Encoding::CompatibilityError if neither are empty
fails:String#+ when the argument is in an ASCII-incompatible encoding incompatible with self's encoding uses self's encoding if both are empty
fails:String#+ when the argument is in an ASCII-incompatible encoding incompatible with self's encoding uses self's encoding if the argument is empty
fails:String#+ when the argument is in an ASCII-incompatible encoding incompatible with self's encoding uses the argument's encoding if self is empty
fails:String#+ when the argument is in an ASCII-incompatible encoding incompatible with self's encoding raises Encoding::CompatibilityError if neither are empty
fails:String#+ when self and the argument are in different ASCII-compatible encodings uses self's encoding if both are ASCII-only
fails:String#+ when self and the argument are in different ASCII-compatible encodings uses self's encoding if the argument is ASCII-only
fails:String#+ when self and the argument are in different ASCII-compatible encodings uses the argument's encoding if self is ASCII-only
fails:String#+ when self and the argument are in different ASCII-compatible encodings raises Encoding::CompatibilityError if neither are ASCII-only
fails:String#+ when self is ASCII-8BIT and argument is US-ASCII uses ASCII-8BIT encoding
