Search Issue Tracker
By Design
Votes
0
Found in [Package]
1.8.7
Issue ID
BUR-2449
Regression
No
Mixing types in string interpolation causes BC1345
String interpolation works when using like types, but not when mixing.
{code:java}
[BurstCompile]
static public void AnyAmountOfIntegers()
{
Debug.Log($"{0}{0}{0}");
}
[BurstCompile]
static public void AnyAmountOfStrings()
{
Debug.Log($"{""}{""}{""}");
}
[BurstCompile]
static public void MixOneStringAndInteger()
{
// Burst error BC1345: Invalid argument type byte* with index 0. Only value types are supported.
Debug.Log($"{""}{0}");
}
[BurstCompile]
static public void MixOneIntegerAndString()
{
// Burst error BC1345: Invalid argument type byte* with index 1. Only value types are supported.
Debug.Log($"{0}{""}");
}
{code}
Add comment
All about bugs
View bugs we have successfully reproduced, and vote for the bugs you want to see fixed most urgently.
Latest issues
- Skinned Mesh Renderer with multiple Animator Components does not render when "Optimize Game Objects" is enabled
- [iOS]Certain characters are not displayed when using iOS devices with 18 OS and newer
- Trees do not render in 'Unity Terrain - URP Demo Scene'
- Silent crash when clicking in Scene View in a specific project
- The Player renders black on a Quest headset when MSAA, Post Processing, and Spacewarm depth submission are enabled
Resolution Note:
This is actually as-designed. The reason the multiple-empty-strings example works is because Roslyn collapses it down to a single empty string literal. Whereas for the integer+string, the string is routed via an {{object}} parameter in {{string.Format}}, and Burst doesn't support that.
https://sharplab.io/#v2:EYLgHgbALANALiAlgGwD4AEBMBGAsAKHQGYACLEgYRIG8CT6zT0oSBZACgEoa6G+B6fiQAiAewCmAZwB2AcjgkA7qIBOAaxKJpJAEIBXFZIXBxAYwCGeyeM0K4ACxvpsABk2SSK0XrjiAJprScKIk5toABqLAAFZmcOEkAA7mKuYAtuK+KgB0vHz0zgCc7AAkAETULgC+1GVlVWWcANx5JFWtrcRkLAByXDz4+QyCJADqqmoeWroGRiQmFlY2AEqiksgAntqmosjI5onWU3Yh5iQ70kZhCs4uuYNDZNjF5bX1bw3Nre34VUA