diff options
author | Michal Strehovský <MichalStrehovsky@users.noreply.github.com> | 2017-05-27 00:55:50 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-05-27 00:55:50 +0300 |
commit | b202bbf68bc0475403e583f703470738e730dc5b (patch) | |
tree | c23fe5315130741a9fed9193719ec7bcb8b34de3 /src/ILCompiler.TypeSystem | |
parent | f0b23ea9aadf64c1909bef60efa8fa746ce57603 (diff) |
Stop using InstantiateSignature to convert RDT's to concrete types (#3710)
Calling `InstantiateSignature` on `Foo<T__Canon, !0>` should have no
effect on the `T__Canon` part.
I was trying to avoid duplicating code when I was porting
RuntimeDeterminedTypes out of NUTC by reusing `InstantiateSignature` to
also do
`GetNonRuntimeDeterminedTypeFromRuntimeDeterminedSubtypeViaSubstitution`
but we really need the duplication.
Diffstat (limited to 'src/ILCompiler.TypeSystem')
-rw-r--r-- | src/ILCompiler.TypeSystem/src/ILCompiler.TypeSystem.csproj | 12 | ||||
-rw-r--r-- | src/ILCompiler.TypeSystem/tests/RuntimeDeterminedTypesTests.cs | 2 |
2 files changed, 13 insertions, 1 deletions
diff --git a/src/ILCompiler.TypeSystem/src/ILCompiler.TypeSystem.csproj b/src/ILCompiler.TypeSystem/src/ILCompiler.TypeSystem.csproj index 9c5d6b780..c842cd4b3 100644 --- a/src/ILCompiler.TypeSystem/src/ILCompiler.TypeSystem.csproj +++ b/src/ILCompiler.TypeSystem/src/ILCompiler.TypeSystem.csproj @@ -503,12 +503,24 @@ <Compile Include="..\..\Common\src\TypeSystem\Common\LocalVariableDefinition.cs"> <Link>TypeSystem\Common\LocalVariableDefinition.cs</Link> </Compile> + <Compile Include="..\..\Common\src\TypeSystem\RuntimeDetermined\ArrayType.RuntimeDetermined.cs"> + <Link>TypeSystem\RuntimeDetermined\ArrayType.RuntimeDetermined.cs</Link> + </Compile> + <Compile Include="..\..\Common\src\TypeSystem\RuntimeDetermined\ByRefType.RuntimeDetermined.cs"> + <Link>TypeSystem\RuntimeDetermined\ByRefType.RuntimeDetermined.cs</Link> + </Compile> + <Compile Include="..\..\Common\src\TypeSystem\RuntimeDetermined\FieldDesc.RuntimeDetermined.cs"> + <Link>TypeSystem\RuntimeDetermined\FieldDesc.RuntimeDetermined.cs</Link> + </Compile> <Compile Include="..\..\Common\src\TypeSystem\RuntimeDetermined\FunctionPointerType.RuntimeDetermined.cs"> <Link>TypeSystem\RuntimeDetermined\FunctionPointerType.RuntimeDetermined.cs</Link> </Compile> <Compile Include="..\..\Common\src\TypeSystem\RuntimeDetermined\MethodDesc.RuntimeDetermined.cs"> <Link>TypeSystem\RuntimeDetermined\MethodDesc.RuntimeDetermined.cs</Link> </Compile> + <Compile Include="..\..\Common\src\TypeSystem\RuntimeDetermined\PointerType.RuntimeDetermined.cs"> + <Link>TypeSystem\RuntimeDetermined\PointerType.RuntimeDetermined.cs</Link> + </Compile> <Compile Include="..\..\Common\src\TypeSystem\RuntimeDetermined\RuntimeDeterminedCanonicalizationAlgorithm.cs"> <Link>TypeSystem\RuntimeDetermined\RuntimeDeterminedCanonicalizationAlgorithm.cs</Link> </Compile> diff --git a/src/ILCompiler.TypeSystem/tests/RuntimeDeterminedTypesTests.cs b/src/ILCompiler.TypeSystem/tests/RuntimeDeterminedTypesTests.cs index 5bea0e369..876c1ce77 100644 --- a/src/ILCompiler.TypeSystem/tests/RuntimeDeterminedTypesTests.cs +++ b/src/ILCompiler.TypeSystem/tests/RuntimeDeterminedTypesTests.cs @@ -143,7 +143,7 @@ namespace TypeSystemTests // GenericReferenceTypeWithThreeParams<T__Canon, StructType, V__Canon> substituted over // an instantiation of <ReferenceType, StructType, OtherReferenceType> is // GenericReferenceTypeWithThreeParams<ReferenceType, StructType, OtherReferenceType> - var grtOverRtStRtSharedInstantiated = grtOverRtStRtShared.InstantiateSignature( + var grtOverRtStRtSharedInstantiated = grtOverRtStRtShared.GetNonRuntimeDeterminedTypeFromRuntimeDeterminedSubtypeViaSubstitution( new Instantiation(_referenceType, _structType, _otherReferenceType), Instantiation.Empty); |