The following test passes on Windows, but fails on non-Windows platforms, discovered in dotnet/corefx#10532
[Fact]
public void Test()
{
AssemblyBuilder assemblyBuilder = AssemblyBuilder.DefineDynamicAssembly(new AssemblyName("AssemblyName"), AssemblyBuilderAccess.Run);
ModuleBuilder moduleBuilder = assemblyBuilder.DefineDynamicModule("ModuleName");
TypeBuilder type = moduleBuilder.DefineType("\uD800\uDC00");
TypeInfo createdType = type.CreateTypeInfo();
moduleBuilder.GetType("\uD800\uDC00", false, false); // Works on all platforms
moduleBuilder.GetType("\uD800\uDC00", true, false); // Works on all platforms
moduleBuilder.GetType("\uD800\uDC00", true, true); // Throws TypeLoadException on Unix
moduleBuilder.GetType("\uD800\uDC00".ToLowerInvariant(), true, true); // Throws TypeLoadException on Unix
moduleBuilder.GetType("\uD800\uDC00".ToUpperInvariant(), true, true); // Throws TypeLoadException on Unix}
/cc @stephentoub @atsushikan
The following test passes on Windows, but fails on non-Windows platforms, discovered in dotnet/corefx#10532
/cc @stephentoub @atsushikan