diff options
author | t-espave <unknown> | 2011-08-08 17:21:25 -0700 |
---|---|---|
committer | t-espave <unknown> | 2011-08-08 17:21:25 -0700 |
commit | cdbb3d595c6f741ef660bab2c093367022830a65 (patch) | |
tree | 46b494a64b3205bc4594e8858335d1f1964df3da /BCT/BytecodeTranslator/ExpressionTraverser.cs | |
parent | 79de464c9866898c04a5443125b6e4feda3b9dc3 (diff) | |
parent | 97df6539f15323e9e346a4321d0da83dc3aa39a6 (diff) |
Merge
Diffstat (limited to 'BCT/BytecodeTranslator/ExpressionTraverser.cs')
-rw-r--r-- | BCT/BytecodeTranslator/ExpressionTraverser.cs | 6 |
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();
|