Skip to content

Commit 1fcd7cb

Browse files
committed
Leave the public modifiers in place
1 parent 640906b commit 1fcd7cb

1 file changed

Lines changed: 43 additions & 0 deletions

File tree

com.unity.netcode.gameobjects/Editor/CodeGen/RuntimeAccessModifiersILPP.cs

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,9 @@ public override ILPostProcessResult Process(ICompiledAssembly compiledAssembly)
4747

4848
switch (typeDefinition.Name)
4949
{
50+
case nameof(NetworkManager):
51+
ProcessNetworkManager(typeDefinition, compiledAssembly.Defines);
52+
break;
5053
case nameof(NetworkBehaviour):
5154
ProcessNetworkBehaviour(typeDefinition);
5255
break;
@@ -87,6 +90,46 @@ public override ILPostProcessResult Process(ICompiledAssembly compiledAssembly)
8790
return new ILPostProcessResult(new InMemoryAssembly(pe.ToArray(), pdb.ToArray()), m_Diagnostics);
8891
}
8992

93+
// TODO: Deprecate...
94+
// This is changing accessibility for values that are no longer used, but since our validator runs
95+
// after ILPP and sees those values as public, they cannot be removed until a major version change.
96+
private void ProcessNetworkManager(TypeDefinition typeDefinition, string[] assemblyDefines)
97+
{
98+
foreach (var fieldDefinition in typeDefinition.Fields)
99+
{
100+
#pragma warning disable CS0618 // Type or member is obsolete
101+
if (fieldDefinition.Name == nameof(NetworkManager.__rpc_func_table))
102+
#pragma warning restore CS0618 // Type or member is obsolete
103+
{
104+
fieldDefinition.IsPublic = true;
105+
}
106+
107+
#pragma warning disable CS0618 // Type or member is obsolete
108+
if (fieldDefinition.Name == nameof(NetworkManager.RpcReceiveHandler))
109+
#pragma warning restore CS0618 // Type or member is obsolete
110+
{
111+
fieldDefinition.IsPublic = true;
112+
}
113+
114+
#pragma warning disable CS0618 // Type or member is obsolete
115+
if (fieldDefinition.Name == nameof(NetworkManager.__rpc_name_table))
116+
#pragma warning restore CS0618 // Type or member is obsolete
117+
{
118+
fieldDefinition.IsPublic = true;
119+
}
120+
}
121+
122+
foreach (var nestedTypeDefinition in typeDefinition.NestedTypes)
123+
{
124+
#pragma warning disable CS0618 // Type or member is obsolete
125+
if (nestedTypeDefinition.Name == nameof(NetworkManager.RpcReceiveHandler))
126+
#pragma warning restore CS0618 // Type or member is obsolete
127+
{
128+
nestedTypeDefinition.IsNestedPublic = true;
129+
}
130+
}
131+
}
132+
90133
private void ProcessNetworkBehaviour(TypeDefinition typeDefinition)
91134
{
92135
foreach (var nestedType in typeDefinition.NestedTypes)

0 commit comments

Comments
 (0)