From 1b79c2b548c964dc17c8bce416d6ae7403a193c3 Mon Sep 17 00:00:00 2001 From: Grigorii Kirgizov Date: Thu, 26 Dec 2019 17:57:59 +0300 Subject: [PATCH] Check compatability for eq/neq operators, forbid null to prim conversion (MPSCR-3) Introduced a variation of conversion relation with a bit stricter boxing, needed for eq/neq. e.g. suppose { (Number n, float f) => n == f } here f shouldn't be boxed. --- .../jetbrains.mps.baseLanguageExt.types.mps | 1142 ++++++++++------- ...mps.baseLanguageExt.test.code.features.mps | 797 +++++++++++- ...ps.baseLanguageExt.test.features@tests.mps | 29 + 3 files changed, 1522 insertions(+), 446 deletions(-) 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 b6680753..90036d07 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 @@ -12935,39 +12935,71 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -13026,45 +13058,11 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + @@ -13083,110 +13081,134 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + - - - + + + - + - + - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + + + - + - + - - - + + + - - - - + + + + - + - + - - + + - - + + - - - - + + + + - + - + - - + + + + + + + + + + + + + + @@ -14467,8 +14489,38 @@ - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -14535,21 +14587,6 @@ - - - - - - - - - - - - - - - @@ -14772,7 +14809,6 @@ - @@ -15043,9 +15079,6 @@ - - - @@ -15067,6 +15100,187 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -15490,31 +15704,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - @@ -15821,209 +16010,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -16183,7 +16169,7 @@ - + @@ -16220,6 +16206,85 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -24286,7 +24351,7 @@ - + @@ -24304,7 +24369,7 @@ - + @@ -24333,8 +24398,8 @@ - - + + @@ -24353,6 +24418,74 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -24746,6 +24879,126 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -25842,62 +26095,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -25954,6 +26151,61 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -39069,7 +39321,7 @@ - + @@ -39215,7 +39467,7 @@ - + diff --git a/samples/mpscore/solutions/jetbrains.mps.baseLanguageExt.test/models/jetbrains.mps.baseLanguageExt.test.code.features.mps b/samples/mpscore/solutions/jetbrains.mps.baseLanguageExt.test/models/jetbrains.mps.baseLanguageExt.test.code.features.mps index f6b9f344..65e587fb 100644 --- a/samples/mpscore/solutions/jetbrains.mps.baseLanguageExt.test/models/jetbrains.mps.baseLanguageExt.test.code.features.mps +++ b/samples/mpscore/solutions/jetbrains.mps.baseLanguageExt.test/models/jetbrains.mps.baseLanguageExt.test.code.features.mps @@ -183,6 +183,7 @@ + @@ -5454,6 +5455,19 @@ + + + + + + + + + + + + + @@ -5464,7 +5478,6 @@ - @@ -6027,6 +6040,21 @@ + + + + + + + + + + + + + + + @@ -6439,6 +6467,21 @@ + + + + + + + + + + + + + + + @@ -6838,6 +6881,21 @@ + + + + + + + + + + + + + + + @@ -7270,6 +7328,16 @@ + + + + + + + + + + @@ -7552,6 +7620,27 @@ + + + + + + + + + + + + + + + + + + + + + @@ -7677,6 +7766,15 @@ + + + + + + + + + @@ -8024,6 +8122,15 @@ + + + + + + + + + @@ -10065,5 +10172,693 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/samples/mpscore/solutions/jetbrains.mps.baseLanguageExt.test/models/jetbrains.mps.baseLanguageExt.test.features@tests.mps b/samples/mpscore/solutions/jetbrains.mps.baseLanguageExt.test/models/jetbrains.mps.baseLanguageExt.test.features@tests.mps index 17877269..b59dfae8 100644 --- a/samples/mpscore/solutions/jetbrains.mps.baseLanguageExt.test/models/jetbrains.mps.baseLanguageExt.test.features@tests.mps +++ b/samples/mpscore/solutions/jetbrains.mps.baseLanguageExt.test/models/jetbrains.mps.baseLanguageExt.test.features@tests.mps @@ -443,6 +443,35 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +