Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/corert.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichal Strehovský <MichalStrehovsky@users.noreply.github.com>2017-05-27 00:55:50 +0300
committerGitHub <noreply@github.com>2017-05-27 00:55:50 +0300
commitb202bbf68bc0475403e583f703470738e730dc5b (patch)
treec23fe5315130741a9fed9193719ec7bcb8b34de3 /src/ILCompiler.TypeSystem
parentf0b23ea9aadf64c1909bef60efa8fa746ce57603 (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.csproj12
-rw-r--r--src/ILCompiler.TypeSystem/tests/RuntimeDeterminedTypesTests.cs2
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);