From e2b3c21b2febd094e4e67d0ff8d9f2fa4df17be1 Mon Sep 17 00:00:00 2001 From: Grigorii Kirgizov Date: Tue, 19 May 2020 19:14:48 +0300 Subject: [PATCH] Change semantics of implicit ListFeature: treat as wildcard, not as empty list Motivation is that implicit (non-overriden) list features must unify with list of any length. Consider an example: `classifier(cls: node-ptr/A/) = classifier(cls: node-ptr/A/ param: [B,C])` With previous approach it would fail, which seems counter-intuitive to me. So, if empty list (e.g. of type parameters) is meant, then it must be specified explicitly. There's one thing to remember, though: such wildcard list features won't match with MetaLogicalArrays in rule heads. (e.g. see dpromote_* rules and consider what happens when a classifier with unbound `parameter` feature comes in) --- .../generator/template/main@generator.mps | 19 +- ...ins.mps.baseLanguage.closuresExt.types.mps | 436 +-------------- .../jetbrains.mps.baseLanguageExt.types.mps | 520 ++++++++---------- ...ps.baseLanguageExt.test.features@tests.mps | 2 +- 4 files changed, 252 insertions(+), 725 deletions(-) diff --git a/coderules/languages/jetbrains.mps.lang.coderules/generator/template/main@generator.mps b/coderules/languages/jetbrains.mps.lang.coderules/generator/template/main@generator.mps index 27e12a15..95f9c9ee 100644 --- a/coderules/languages/jetbrains.mps.lang.coderules/generator/template/main@generator.mps +++ b/coderules/languages/jetbrains.mps.lang.coderules/generator/template/main@generator.mps @@ -535,9 +535,6 @@ - - - @@ -16067,7 +16064,17 @@ - + + + + + + + + + + + @@ -16183,6 +16190,7 @@ + @@ -16199,9 +16207,6 @@ - - - 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 0332c6d8..dd0fc99e 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 @@ -275,13 +275,6 @@ - - - - - - - @@ -2104,19 +2097,14 @@ - - - - - - - - - - + + + + + - + @@ -3943,418 +3931,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 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 93c16c7f..4770ae11 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 @@ -1065,39 +1065,25 @@ - - - - - - - - - + + + + + + + + + - - - - - - - - - - - - - - - - + + @@ -1121,9 +1107,13 @@ - - - + + + + + + + @@ -1636,21 +1626,11 @@ - - + + + - - - - - - - - - - - @@ -11222,7 +11202,7 @@ - + @@ -16315,7 +16295,7 @@ - + @@ -16335,66 +16315,72 @@ - + - - - - + + + + - + - + - + - + - + - + - - - - - - - - + + + + + + + + - + - + - - + + + + + + + + - - + + - + @@ -23127,25 +23113,20 @@ - - - - - - - - - - - - - - - - - + + + + + + + + + + + + @@ -23190,21 +23171,16 @@ - - - - - - - - - - - - - + + + + + + + + @@ -23249,21 +23225,16 @@ - - - - - - - - - - - - - + + + + + + + + @@ -23308,21 +23279,16 @@ - - - - - - - - - - - - - + + + + + + + + @@ -23367,21 +23333,16 @@ - - - - - - - - - - - - - + + + + + + + + @@ -23426,21 +23387,16 @@ - - - - - - - - - - - - - + + + + + + + + @@ -23485,21 +23441,16 @@ - - - - - - - - - - - - - + + + + + + + + @@ -23544,21 +23495,16 @@ - - - - - - - - - - - - - + + + + + + + + @@ -31842,16 +31788,8 @@ - - - - - - - - - - + + @@ -31918,16 +31856,8 @@ - - - - - - - - - - + + @@ -34091,6 +34021,45 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -34155,6 +34124,12 @@ + + + + + + @@ -34595,22 +34570,17 @@ - - - - - - - - - - - - - - + + + + + + + + + @@ -36775,21 +36745,16 @@ - - - - - - - - - - - - - + + + + + + + + @@ -43078,6 +43043,7 @@ + @@ -43106,7 +43072,6 @@ - @@ -46627,6 +46592,12 @@ + + + + + + @@ -47376,6 +47347,12 @@ + + + + + + @@ -49175,14 +49152,14 @@ - + - + - - - + + + @@ -49226,6 +49203,12 @@ + + + + + + @@ -49243,46 +49226,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -49306,10 +49249,12 @@ - + - - + + + + @@ -49442,6 +49387,12 @@ + + + + + + @@ -50139,22 +50090,17 @@ - - - - - - - - - - - - - - + + + + + + + + + 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 30f91cb3..ea7df0ec 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 @@ -560,7 +560,7 @@ - +