summaryrefslogtreecommitdiff
path: root/BCT/BytecodeTranslator/ExpressionTraverser.cs
diff options
context:
space:
mode:
authorGravatar t-espave <unknown>2011-08-08 17:21:25 -0700
committerGravatar t-espave <unknown>2011-08-08 17:21:25 -0700
commitcdbb3d595c6f741ef660bab2c093367022830a65 (patch)
tree46b494a64b3205bc4594e8858335d1f1964df3da /BCT/BytecodeTranslator/ExpressionTraverser.cs
parent79de464c9866898c04a5443125b6e4feda3b9dc3 (diff)
parent97df6539f15323e9e346a4321d0da83dc3aa39a6 (diff)
Merge
Diffstat (limited to 'BCT/BytecodeTranslator/ExpressionTraverser.cs')
-rw-r--r--BCT/BytecodeTranslator/ExpressionTraverser.cs6
1 files changed, 4 insertions, 2 deletions
diff --git a/BCT/BytecodeTranslator/ExpressionTraverser.cs b/BCT/BytecodeTranslator/ExpressionTraverser.cs
index f2f0dde5..caa2c351 100644
--- a/BCT/BytecodeTranslator/ExpressionTraverser.cs
+++ b/BCT/BytecodeTranslator/ExpressionTraverser.cs
@@ -961,8 +961,10 @@ namespace BytecodeTranslator
Bpl.IToken cloc = creationAST.Token();
var a = this.sink.CreateFreshLocal(creationAST.Type);
- sink.AddDelegate(type.ResolvedType, methodToCall.ResolvedMethod);
- Bpl.Constant constant = sink.FindOrCreateDelegateMethodConstant(methodToCall.ResolvedMethod);
+ ITypeDefinition unspecializedType = Microsoft.Cci.MutableContracts.ContractHelper.Unspecialized(type.ResolvedType).ResolvedType;
+ IMethodDefinition unspecializedMethod = Sink.Unspecialize(methodToCall.ResolvedMethod).ResolvedMethod;
+ sink.AddDelegate(unspecializedType, unspecializedMethod);
+ Bpl.Constant constant = sink.FindOrCreateDelegateMethodConstant(unspecializedMethod);
Bpl.Expr methodExpr = Bpl.Expr.Ident(constant);
Bpl.Expr instanceExpr = TranslatedExpressions.Pop();