Imported Upstream version 4.6.0.182

Former-commit-id: 439c182e520038bf50777ca2fe684f216ae28552
This commit is contained in:
Xamarin Public Jenkins (auto-signing)
2016-09-01 10:46:18 +00:00
parent c911219690
commit 804b15604f
118 changed files with 1007 additions and 891 deletions

View File

@@ -1595,6 +1595,15 @@ namespace Mono.CSharp {
if (res && errors != ec.Report.Errors)
return null;
if (block.IsAsync && block.Original.ParametersBlock.HasCapturedThis && ec.CurrentAnonymousMethod != null && ec.CurrentAnonymousMethod.block.IsAsync) {
//
// We'll do ldftn to load the fabricated m_X method but
// because we are inside struct the method can be hoisted
// anywhere in the parent scope
//
ec.CurrentBlock.ParametersBlock.HasReferenceToStoreyForInstanceLambdas = true;
}
return res ? this : null;
}
@@ -1798,6 +1807,8 @@ namespace Mono.CSharp {
parent = storey = sm;
}
}
} else if (src_block.ParametersBlock.HasReferenceToStoreyForInstanceLambdas) {
src_block.ParametersBlock.StateMachine.AddParentStoreyReference (ec, storey);
}
modifiers = storey != null ? Modifiers.INTERNAL : Modifiers.PRIVATE;

View File

@@ -1 +1 @@
02ae36b34c16802d921a2476f4a1ab3d750052c3
2a9aa97fed0e62be46728b7c4dccb871de0ff0cc

View File

@@ -1 +1 @@
ad08d02b5db754d3948bdb8ad9c4b690011c1aff
7f54b33eeb599c16146c7adfcc0c2e12b3d5beaf