From 47e6e0703942ca8f8e73ad15a23d941da79afe6e Mon Sep 17 00:00:00 2001 From: Fedor Isakov Date: Mon, 3 May 2021 13:09:32 +0200 Subject: [PATCH] Refactor processing of inference variables Introduce hasTarget and resolveVar constraints for delayed resolving of inference variables. In invocation context variables are not inferred eagerly, but wait for the end of all conversions, and then resolved via resolveVar. --- ...ins.mps.baseLanguage.closuresExt.types.mps | 105 +- .../jetbrains.mps.baseLanguageExt.types.mps | 2285 ++++++++++------- ...baseLanguage.closuresExt.test.closures.mps | 265 +- 3 files changed, 1713 insertions(+), 942 deletions(-) diff --git a/samples/mpscore/languages/jetbrains.mps.baseLanguage.closuresExt/models/jetbrains.mps.baseLanguage.closuresExt.types.mps b/samples/mpscore/languages/jetbrains.mps.baseLanguage.closuresExt/models/jetbrains.mps.baseLanguage.closuresExt.types.mps index 95ca0ba0..5519acdd 100644 --- a/samples/mpscore/languages/jetbrains.mps.baseLanguage.closuresExt/models/jetbrains.mps.baseLanguage.closuresExt.types.mps +++ b/samples/mpscore/languages/jetbrains.mps.baseLanguage.closuresExt/models/jetbrains.mps.baseLanguage.closuresExt.types.mps @@ -1530,7 +1530,57 @@ - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -1629,6 +1679,19 @@ + + + + + + + + + + + + + @@ -1700,6 +1763,23 @@ + + + + + + + + + + + + + + + + + @@ -1773,6 +1853,23 @@ + + + + + + + + + + + + + + + + + @@ -4929,7 +5026,7 @@ - + @@ -6199,7 +6296,7 @@ - + @@ -6304,7 +6401,7 @@ - + diff --git a/samples/mpscore/languages/jetbrains.mps.baseLanguageExt/models/jetbrains.mps.baseLanguageExt.types.mps b/samples/mpscore/languages/jetbrains.mps.baseLanguageExt/models/jetbrains.mps.baseLanguageExt.types.mps index c5558694..7504c2e2 100644 --- a/samples/mpscore/languages/jetbrains.mps.baseLanguageExt/models/jetbrains.mps.baseLanguageExt.types.mps +++ b/samples/mpscore/languages/jetbrains.mps.baseLanguageExt/models/jetbrains.mps.baseLanguageExt.types.mps @@ -71,6 +71,8 @@ + + @@ -105,6 +107,7 @@ + @@ -263,6 +266,8 @@ + + @@ -285,6 +290,10 @@ + + + + @@ -5204,6 +5213,45 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -6264,6 +6312,26 @@ + + + + + + + + + + + + + + + + + + + + @@ -8051,6 +8119,10 @@ + + + + @@ -8132,6 +8204,10 @@ + + + + @@ -15181,174 +15257,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -16994,6 +16902,20 @@ + + + + + + + + + + + + + + @@ -17038,6 +16960,172 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -32613,34 +32701,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -32652,71 +32712,80 @@ - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + @@ -32726,86 +32795,100 @@ - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + + + + + + + + + + + + + + + - - - - - - - - - - - + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + @@ -32853,8 +32936,176 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + @@ -32862,7 +33113,7 @@ - + @@ -32926,7 +33177,7 @@ - + @@ -32934,7 +33185,7 @@ - + @@ -32979,126 +33230,13 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + @@ -40651,26 +40789,6 @@ - - - - - - - - - - - - - - - - - - - - @@ -43815,7 +43933,27 @@ - + + + + + + + + + + + + + + + + + + + + + @@ -43845,6 +43983,15 @@ + + + + + + + + + @@ -43870,6 +44017,14 @@ + + + + + + + + @@ -44312,6 +44467,44 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -44825,6 +45018,7 @@ + @@ -53155,6 +53349,73 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -53172,15 +53433,19 @@ - - - - - + + + + - - + + + + + + + @@ -53197,17 +53462,17 @@ - - - - + + + + - - + + - - + + @@ -53224,17 +53489,17 @@ - - - - + + + + - - + + - - + + @@ -53251,15 +53516,19 @@ - - - - - + + + + - - + + + + + + + @@ -53276,17 +53545,17 @@ - - - - + + + + - - + + - - + + @@ -53303,15 +53572,19 @@ - - - - - + + + + - - + + + + + + + @@ -53332,17 +53605,17 @@ - - - - + + + + - - + + - - + + @@ -53359,15 +53632,19 @@ - - - - - + + + + - - + + + + + + + @@ -53377,8 +53654,63 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - @@ -53397,140 +53729,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -53642,26 +53840,31 @@ - - - - - - + + + + + + + + + + + - - + + - - + + - - + + - + @@ -53683,43 +53886,43 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + - - - + + + + + + + + + + + + + + + @@ -53729,10 +53932,20 @@ - - - - + + + + + + + + + + + + + + @@ -53743,9 +53956,21 @@ - - - + + + + + + + + + + + + + + + @@ -53755,9 +53980,21 @@ - - - + + + + + + + + + + + + + + + @@ -53769,9 +54006,45 @@ - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -53784,40 +54057,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -53838,64 +54077,29 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + - + - - + + + + + + + + - - - - - @@ -53916,15 +54120,11 @@ - - - - - - - - - + + + + + @@ -54415,7 +54615,7 @@ - + @@ -54458,118 +54658,247 @@ - - - + + + - - - + + + - - + + - - + + - - + + - - - - + + + + - - + + - - + + - - - - - - + + + + + + + + + + + + + - - - - + + + + - - - - + + + + + + + + + + + - - + + - + - + - + - - - - - + + + + + - - + + - - + + - - + + - - - - - + + + + + - - - - - + + - - + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -54580,79 +54909,79 @@ - - - + + + - - - + + + - - + + - - + + - - + + - - - - - - + + + + + + - - - - + + + + - - + + - + - + - - - - - + + + + + - - + + - - + + - - + + - - + + - + @@ -54686,10 +55015,17 @@ - - - - + + + + + + + + + + + @@ -54700,6 +55036,13 @@ + + + + + + + @@ -54714,17 +55057,14 @@ - - - - - - - + + + + - - + + @@ -54741,6 +55081,85 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/samples/mpscore/solutions/jetbrains.mps.baseLanguage.closuresExt.test/models/jetbrains.mps.baseLanguage.closuresExt.test.closures.mps b/samples/mpscore/solutions/jetbrains.mps.baseLanguage.closuresExt.test/models/jetbrains.mps.baseLanguage.closuresExt.test.closures.mps index b4e708ac..5828f1df 100644 --- a/samples/mpscore/solutions/jetbrains.mps.baseLanguage.closuresExt.test/models/jetbrains.mps.baseLanguage.closuresExt.test.closures.mps +++ b/samples/mpscore/solutions/jetbrains.mps.baseLanguage.closuresExt.test/models/jetbrains.mps.baseLanguage.closuresExt.test.closures.mps @@ -1112,6 +1112,70 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -1347,6 +1411,92 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -1364,9 +1514,6 @@ - - - @@ -1387,12 +1534,120 @@ - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +