From 0f1460bb67e3fc0c7989bf395b8c6a972d8c99d8 Mon Sep 17 00:00:00 2001 From: Grigorii Kirgizov Date: Mon, 26 Aug 2019 14:17:40 +0300 Subject: [PATCH] Add typechecking of array literals handling nested literals Array literals always belong to some variable decl and their elements are recursively checked against declared component type [JLS 10.6]. --- reactor/.idea/modules.xml | 3 + .../jetbrains.mps.baseLanguageExt.types.mps | 1539 ++++++++++++----- .../models/features.mps | 202 ++- ...ecking.samples.baseLanguage.helloWorld.mps | 308 +++- ...mples.baseLanguage.incrementalBL@tests.mps | 381 +++- 5 files changed, 1919 insertions(+), 514 deletions(-) diff --git a/reactor/.idea/modules.xml b/reactor/.idea/modules.xml index 027c87f1..f3c1e0e2 100644 --- a/reactor/.idea/modules.xml +++ b/reactor/.idea/modules.xml @@ -5,6 +5,9 @@ + + + \ No newline at end of file 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 695f3417..cdebd29e 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 @@ -36,7 +36,6 @@ - @@ -31230,383 +31229,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -31616,12 +31238,12 @@ - + - + - + @@ -31639,11 +31261,11 @@ - + - + @@ -31651,7 +31273,7 @@ - + @@ -31672,7 +31294,7 @@ - + @@ -31694,7 +31316,7 @@ - + @@ -31711,7 +31333,7 @@ - + @@ -31724,7 +31346,7 @@ - + @@ -31784,11 +31406,11 @@ - + - + @@ -31807,7 +31429,7 @@ - + @@ -31824,7 +31446,7 @@ - + @@ -31835,7 +31457,7 @@ - + @@ -31855,20 +31477,20 @@ - + - + - + - + @@ -31878,7 +31500,7 @@ - + @@ -31904,7 +31526,7 @@ - + @@ -31927,7 +31549,7 @@ - + @@ -31938,7 +31560,7 @@ - + @@ -31961,7 +31583,7 @@ - + @@ -31979,7 +31601,7 @@ - + @@ -31994,7 +31616,7 @@ - + @@ -32054,19 +31676,19 @@ - + - + - + - + @@ -32087,7 +31709,7 @@ - + @@ -32095,20 +31717,20 @@ - + - + - + - + - + - + @@ -32126,15 +31748,15 @@ - + - + - + @@ -32142,16 +31764,16 @@ - + - + - + @@ -32159,14 +31781,14 @@ - + - + - + @@ -32207,7 +31829,7 @@ - + @@ -32217,11 +31839,11 @@ - + - + @@ -32232,15 +31854,15 @@ - + - + - + - + @@ -32249,14 +31871,14 @@ - + - + - + @@ -32273,7 +31895,7 @@ - + @@ -32284,15 +31906,15 @@ - + - + - + @@ -32301,7 +31923,7 @@ - + @@ -32312,11 +31934,11 @@ - + - + @@ -32326,12 +31948,12 @@ - + - + - + @@ -32349,12 +31971,12 @@ - + - + @@ -32365,7 +31987,7 @@ - + @@ -32400,11 +32022,11 @@ - + - + @@ -32413,15 +32035,15 @@ - + - + - + - + @@ -32431,11 +32053,11 @@ - + - + @@ -32443,7 +32065,7 @@ - + @@ -32453,25 +32075,25 @@ - + - + - + - + - + - + @@ -32502,7 +32124,7 @@ - + @@ -32528,14 +32150,14 @@ - + - + - + @@ -32545,14 +32167,14 @@ - + - + - + @@ -32573,7 +32195,7 @@ - + @@ -32604,23 +32226,23 @@ - + - + - + - + - + @@ -32631,7 +32253,7 @@ - + @@ -32646,6 +32268,971 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/samples/mpscore/solutions/typechecking.samples.baseLanguage/models/features.mps b/samples/mpscore/solutions/typechecking.samples.baseLanguage/models/features.mps index 58ab1ba5..8347de2f 100644 --- a/samples/mpscore/solutions/typechecking.samples.baseLanguage/models/features.mps +++ b/samples/mpscore/solutions/typechecking.samples.baseLanguage/models/features.mps @@ -205,6 +205,13 @@ + + + + + + + @@ -8537,8 +8544,7 @@ - - + @@ -8627,6 +8633,28 @@ + + + + + + + + + + + + + + + + + + + + + + @@ -8721,6 +8749,74 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -8903,46 +8999,88 @@ - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - + + + + + + - - - - + + + + - - - - - + + + + + + + + - + + + - - - - - diff --git a/samples/mpscore/solutions/typechecking.samples.baseLanguage/models/typechecking.samples.baseLanguage.helloWorld.mps b/samples/mpscore/solutions/typechecking.samples.baseLanguage/models/typechecking.samples.baseLanguage.helloWorld.mps index 9640afd4..bad48bc6 100644 --- a/samples/mpscore/solutions/typechecking.samples.baseLanguage/models/typechecking.samples.baseLanguage.helloWorld.mps +++ b/samples/mpscore/solutions/typechecking.samples.baseLanguage/models/typechecking.samples.baseLanguage.helloWorld.mps @@ -21,10 +21,18 @@ + + + + + + + + @@ -36,9 +44,13 @@ + + + + @@ -102,6 +114,7 @@ + @@ -355,11 +368,6 @@ - - - - - @@ -389,6 +397,11 @@ + + + + + @@ -1118,5 +1131,290 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/samples/mpscore/solutions/typechecking.samples.baseLanguage/models/typechecking.samples.baseLanguage.incrementalBL@tests.mps b/samples/mpscore/solutions/typechecking.samples.baseLanguage/models/typechecking.samples.baseLanguage.incrementalBL@tests.mps index d409c7e0..d6b1ba9f 100644 --- a/samples/mpscore/solutions/typechecking.samples.baseLanguage/models/typechecking.samples.baseLanguage.incrementalBL@tests.mps +++ b/samples/mpscore/solutions/typechecking.samples.baseLanguage/models/typechecking.samples.baseLanguage.incrementalBL@tests.mps @@ -24,10 +24,12 @@ + + @@ -59,6 +61,9 @@ + + + @@ -76,6 +81,7 @@ + @@ -83,9 +89,15 @@ + + + + + + @@ -145,6 +157,11 @@ + + + + + @@ -169,10 +186,25 @@ + + + + + + + + + + + + + + + @@ -217,17 +249,24 @@ + + + + + - + + + @@ -303,13 +342,20 @@ + + + + + + + @@ -4805,5 +4851,338 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +