From 96918d0e1da4a4f2dc0de1f789d414759ef752b7 Mon Sep 17 00:00:00 2001 From: Fedor Isakov Date: Tue, 21 Jul 2020 16:57:27 +0200 Subject: [PATCH] Support for processing input nodes recursively or not. Optimizing local typechecking. The flag "recursive" is passed down to ProgramFactory to control whether the input nodes are to be walked recursively. This flag is set to false when calculating a node's type in isolation. --- .../jetbrains.mps.lang.coderules.eval.mps | 7 + .../jetbrains.mps.lang.coderules.program.mps | 1041 ++++++++++------- ...s.mps.coderules.typechecking.test.util.mps | 3 + ...rains.mps.coderules.typechecking@tests.mps | 3 + ...s.mps.coderules.typechecking.ui.plugin.mps | 3 + ...ins.mps.coderules.typechecking.service.mps | 48 + .../models/service.mps | 26 + .../models/plugin.mps | 3 + 8 files changed, 717 insertions(+), 417 deletions(-) diff --git a/coderules/languages/jetbrains.mps.lang.coderules/runtime/models/jetbrains.mps.lang.coderules.eval.mps b/coderules/languages/jetbrains.mps.lang.coderules/runtime/models/jetbrains.mps.lang.coderules.eval.mps index d491df2c..ba0c00bb 100644 --- a/coderules/languages/jetbrains.mps.lang.coderules/runtime/models/jetbrains.mps.lang.coderules.eval.mps +++ b/coderules/languages/jetbrains.mps.lang.coderules/runtime/models/jetbrains.mps.lang.coderules.eval.mps @@ -4139,6 +4139,10 @@ + + + + @@ -4245,6 +4249,9 @@ + + + diff --git a/coderules/languages/jetbrains.mps.lang.coderules/runtime/models/jetbrains.mps.lang.coderules.program.mps b/coderules/languages/jetbrains.mps.lang.coderules/runtime/models/jetbrains.mps.lang.coderules.program.mps index f77052fd..1e653c3d 100644 --- a/coderules/languages/jetbrains.mps.lang.coderules/runtime/models/jetbrains.mps.lang.coderules.program.mps +++ b/coderules/languages/jetbrains.mps.lang.coderules/runtime/models/jetbrains.mps.lang.coderules.program.mps @@ -4961,6 +4961,10 @@ + + + + @@ -5131,6 +5135,9 @@ + + + @@ -5253,6 +5260,10 @@ + + + + @@ -5286,66 +5297,57 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + - - - - + + + + + - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - @@ -5366,7 +5368,7 @@ - + @@ -7616,7 +7618,7 @@ - + @@ -7625,12 +7627,12 @@ - + - + @@ -7719,7 +7721,7 @@ - + @@ -7985,111 +7987,10 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + @@ -8099,7 +8000,7 @@ - + @@ -8253,6 +8154,141 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -8277,280 +8313,87 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - + + + + - - - + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + @@ -8558,13 +8401,15 @@ - - + + + + + - @@ -8578,7 +8423,142 @@ - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -8697,7 +8677,234 @@ - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/coderules/solutions/jetbrains.mps.coderules.typechecking.test/models/jetbrains.mps.coderules.typechecking.test.util.mps b/coderules/solutions/jetbrains.mps.coderules.typechecking.test/models/jetbrains.mps.coderules.typechecking.test.util.mps index a88a9ce5..0ae7c018 100644 --- a/coderules/solutions/jetbrains.mps.coderules.typechecking.test/models/jetbrains.mps.coderules.typechecking.test.util.mps +++ b/coderules/solutions/jetbrains.mps.coderules.typechecking.test/models/jetbrains.mps.coderules.typechecking.test.util.mps @@ -1571,6 +1571,9 @@ + + + diff --git a/coderules/solutions/jetbrains.mps.coderules.typechecking.test/models/jetbrains.mps.coderules.typechecking@tests.mps b/coderules/solutions/jetbrains.mps.coderules.typechecking.test/models/jetbrains.mps.coderules.typechecking@tests.mps index c677c4a8..e6574784 100644 --- a/coderules/solutions/jetbrains.mps.coderules.typechecking.test/models/jetbrains.mps.coderules.typechecking@tests.mps +++ b/coderules/solutions/jetbrains.mps.coderules.typechecking.test/models/jetbrains.mps.coderules.typechecking@tests.mps @@ -1348,6 +1348,9 @@ + + + diff --git a/coderules/solutions/jetbrains.mps.coderules.typechecking.ui/models/jetbrains.mps.coderules.typechecking.ui.plugin.mps b/coderules/solutions/jetbrains.mps.coderules.typechecking.ui/models/jetbrains.mps.coderules.typechecking.ui.plugin.mps index 6fe52e33..34dc6071 100644 --- a/coderules/solutions/jetbrains.mps.coderules.typechecking.ui/models/jetbrains.mps.coderules.typechecking.ui.plugin.mps +++ b/coderules/solutions/jetbrains.mps.coderules.typechecking.ui/models/jetbrains.mps.coderules.typechecking.ui.plugin.mps @@ -3279,6 +3279,9 @@ + + + diff --git a/coderules/solutions/jetbrains.mps.coderules.typechecking/models/jetbrains.mps.coderules.typechecking.service.mps b/coderules/solutions/jetbrains.mps.coderules.typechecking/models/jetbrains.mps.coderules.typechecking.service.mps index b3389c1b..f035cdc0 100644 --- a/coderules/solutions/jetbrains.mps.coderules.typechecking/models/jetbrains.mps.coderules.typechecking.service.mps +++ b/coderules/solutions/jetbrains.mps.coderules.typechecking/models/jetbrains.mps.coderules.typechecking.service.mps @@ -6905,6 +6905,9 @@ + + + @@ -7103,6 +7106,9 @@ + + + @@ -7620,6 +7626,7 @@ + @@ -7978,6 +7985,10 @@ + + + + @@ -8216,6 +8227,9 @@ + + + @@ -8324,6 +8338,10 @@ + + + + @@ -8380,6 +8398,9 @@ + + + @@ -8481,6 +8502,9 @@ + + + @@ -8552,6 +8576,9 @@ + + + @@ -8581,6 +8608,10 @@ + + + + @@ -8691,6 +8722,9 @@ + + + @@ -14846,6 +14880,9 @@ + + + @@ -16996,6 +17033,10 @@ + + + + @@ -17070,6 +17111,9 @@ + + + @@ -17806,6 +17850,10 @@ + + + + diff --git a/coderules/solutions/jetbrains.mps.coderules/models/service.mps b/coderules/solutions/jetbrains.mps.coderules/models/service.mps index 164a249e..aeabf7aa 100644 --- a/coderules/solutions/jetbrains.mps.coderules/models/service.mps +++ b/coderules/solutions/jetbrains.mps.coderules/models/service.mps @@ -715,6 +715,19 @@ + + + + + + + + + + + + + @@ -771,6 +784,10 @@ + + + + @@ -1070,6 +1087,9 @@ + + + @@ -1323,6 +1343,12 @@ + + + + + + diff --git a/coderules/solutions/jetbrains.mps.controlflow.ui/models/plugin.mps b/coderules/solutions/jetbrains.mps.controlflow.ui/models/plugin.mps index aaa79211..15b42ba6 100644 --- a/coderules/solutions/jetbrains.mps.controlflow.ui/models/plugin.mps +++ b/coderules/solutions/jetbrains.mps.controlflow.ui/models/plugin.mps @@ -1089,6 +1089,9 @@ + + +