We have a longstanding issue where the expression parser does not handle wide CFStrings (e.g., @"凸凹") correctly, producing the useless error message
Internal error [IRForTarget]: An Objective-C constant string's string initializer is not an array error: warning: expression result unused error: The expression could not be prepared to run in the target
This is just a side effect of the fact that we don't handle wide string constants when converting these to CFStringCreateWithBytes. That function takes the string's encoding as an argument, so I made it work and added a testcase.
The default case here expresses "I don't know what this string is so I'm just going to try ASCII". That's fine, but we should log the unknown kind so that when this happens in the wild and we can't get a repro case, we'll be able to figure out something from the log.