Commit Graph

155 Commits

Author SHA1 Message Date
Fedor Isakov 2b146e886b Migrate to latest MPS 2026.1 EAP 2026-04-24 11:22:20 +02:00
Fedor Isakov dd36168269 Apply migrations to mpscore sample 2024-09-03 13:04:20 +02:00
Fedor Isakov 661ee068ff Refactor caching system; drop obsolete classes 2024-08-29 13:09:39 +02:00
Fedor Isakov 760b2d541f Drop usages of deprecated method 2024-07-18 11:02:52 +02:00
Fedor Isakov 4ce08f4b99 Refactor project structure and reduce the number of modules 2024-07-04 18:17:56 +02:00
Fedor Isakov c230bfa6e4 Drop "ideaplugin" module from module dependencies 2024-07-01 15:41:37 +02:00
Fedor Isakov a19d02b8ae Switch initialization to use ModuleActivator; drop unused imports 2024-06-16 16:11:38 +02:00
Fedor Isakov 9e37cd236b Fix code with scope issues 2024-06-13 21:53:44 +02:00
Fedor Isakov 9aa9680ba1 Refactor DataForm.Visitor to use default methods; drop Stub 2024-06-13 17:40:23 +02:00
Fedor Isakov 0d192feaae Drop all TestInfo instances from the project 2024-06-07 10:32:44 +02:00
Fedor Isakov f3010743c1 Migration: FixExpandMacroTemplate 2023-10-13 18:13:08 +02:00
Fedor Isakov 3cf666e633 Apply migrations and make project 2023-07-31 12:57:24 +02:00
Fedor Isakov 6a849f82f2 Apply migrations and rebuild project 2023-06-12 12:01:02 +02:00
Fedor Isakov d531c6a5ad Run Migration Assistant 2023-02-22 13:52:02 +01:00
Fedor Isakov 4c847f4d3b Temporarily disable a test that produces too much noise 2022-11-23 14:03:19 +01:00
Fedor Isakov ad3ea9d63d Apply all migrations from 2022.2 2022-11-21 11:25:13 +01:00
Fedor Isakov 83e273da73 Fix tests by caching Config instance
Tests are launched within a context that is unable
to perform normal MPS classloading, so we resort to
caching the (singleton) instance of Config coming from
an (IDEA) plugin to use it later.
2022-08-27 19:39:14 +02:00
Fedor Isakov 78f847747b Drop unstable hacks, simplify code 2022-08-26 13:58:22 +02:00
Fedor Isakov d2ca45aa02 Extract bootstrap code to idea plugin; CR options to become app-level
CR typechecking options are now application-level.

The solution j.m.c.ideaplugin contains the code responsible
for accessing and setting the options. This solution is loaded
as IDEA plugin on deploy and as regular module in source project.

Also merge code from two modules into j.m.c.typechecking.
2022-08-25 12:59:36 +02:00
Fedor Isakov ab2a1b6499 BL Types: Disable overriding methods check, MPSCR-115
This check doesn't belong to the type system, is
currently implemented on top of it as a "check" rule.
2022-08-01 14:11:38 +02:00
Fedor Isakov 0663921ecd Refactoring in TypecheckingService; simplifying code
Request is no longer dependent on `TypecheckingService`.
Only single request can be processed at a time, which helps
prevent recursion.
All facade method in `TypecheckingService` now return instance
of `Response` instead.
2022-07-15 19:46:33 +02:00
Fedor Isakov f24169ba26 Refactor Config to be immutable; allow multi-project MPSCR-105
Drop hacks that try to figure out the active project.
Instead introduce new ones that cache the instance of `ProjectRepository`
(unfortunately, there is no way around that now).
Stop accessing and modifying the singleton `Config` instance,
instead make an instance of `Config` a parameter to `TypecheckingService`.
2022-07-07 12:56:30 +02:00
Fedor Isakov bd249c5d0c Drop obsolete feature: incremental specification 2022-04-21 16:05:31 +02:00
Fedor Isakov 9527a097b8 Migrate to the latest MPS release, apply migrations 2021-06-18 18:41:01 +02:00
Fedor Isakov bcb4ea2499 Temporarily disable tricky to solve test case (nested generics) 2021-05-18 13:07:14 +02:00
Fedor Isakov 054ecf5c25 Adjust error annotations to reflect proper typechecking errors 2021-05-18 13:07:03 +02:00
Fedor Isakov 5e4dfb249e Add tests for type variables inference 2021-05-03 13:29:13 +02:00
Fedor Isakov ab87c8a129 Support strong convert/coerce queries 2021-04-28 08:54:25 +02:00
Fedor Isakov ff6b5ec6ae Apply migrations and rebuild project 2021-04-14 13:19:50 +02:00
Fedor Isakov 49357ab87a Drop all usages of "principal store" and "preamble" feature 2021-04-13 22:57:06 +02:00
Fedor Isakov d527d5a114 Suppress errors in test code 2021-04-08 08:53:30 +02:00
Fedor Isakov 99e248c5b3 Fix incremental update of reported feedback
Correctly detect cache up-to-date.
Refactor feedback reporting, provide origin node as the key.
Drop invalidated feedback correctly.
Code cleanup.
2021-03-23 12:48:06 +01:00
Fedor Isakov b70d2cc87b Drop unused dependencies 2021-02-14 15:48:08 +01:00
Fedor Isakov 4755c0dfa0 Extract test helper classes into separate redistributable module 2021-02-14 15:12:58 +01:00
Fedor Isakov caca5e606f Fix failing CI build because of empty test case 2021-02-05 12:12:48 +01:00
Fedor Isakov ad269bb6b5 Ensure typechecking state is properly disposed of on reload 2021-02-04 08:51:00 +01:00
Grigorii Kirgizov 40a93d5ba9 Temporarily disable one failing test in IncrClassHierarchy; Preamble tests
Preamble tests should be reviewed. It's also unclear
whether preamble feature is effective and needed at all.
2021-01-29 16:21:57 +03:00
Grigorii Kirgizov 64762bf100 Fix bl tests (several test were failing after some of changes) 2021-01-29 13:39:35 +03:00
Fedor Isakov 62e8e7d013 Switch to MPS 2020.3 release. 2021-01-08 11:00:02 +01:00
Fedor Isakov 862d7f62c2 Replace direct usages of test data with proper references, fix generation 2020-12-27 21:04:51 +01:00
Fedor Isakov 66f04fe92a Replace direct usages of test data with proper references, fix generation 2020-12-27 20:42:07 +01:00
Grigorii Kirgizov 27ed01c447 refactoring: Adjust uniqueTag usages for Rule.Tag refactoring
Fix rule basetag generation to coincide with templateName

Needed for PrincipalStore (occurrence cache) which uses
info about occurrence source rule template name.
2020-12-15 17:59:09 +03:00
Grigorii Kirgizov 3eccaf81a1 Introduce occurrence store as cache for their reuse in Queries strategy
It's important that program that uses occurrences from cache
shouldn't include rules that could produce their duplicates.
So implementation of occurence cache includes 2 parts:
on reactor level & in ProrgramFactory.

When RuleBuilders are produced, cache is queried whether
there're already  occurrences associated with the rule template
in question. If so -- then those RuleBuilders are not included
into the program (as well as all RuleBuilders required by it).
2020-12-15 17:59:05 +03:00
Grigorii Kirgizov 61dccfd2d9 BL types: simplify array typing & fix minor errors 2020-12-15 17:51:27 +03:00
Grigorii Kirgizov b4c441a41e Add few incremental tests, tried reproduce MPSCR-82
Unsuccessfully. Algorithm is ok, problem is in UpdatesRecorder.
2020-12-15 17:51:23 +03:00
Fedor Isakov c7eaa1dbf3 Clean up ProgramEvaluator API. Straighten up passing of session token. Drop RulesDiff usages. 2020-12-08 22:57:36 +01:00
Grigorii Kirgizov 42bc7a88fd Modify incremental tests to allow testing other queries, add test 2020-11-18 11:36:28 +03:00
Fedor Isakov 54439e255e Refactor typechecking state/cache subsystem.
Refactor whe way TypecheckingResultsCache is updated:
all mutatiting methods extracted to Update subclass, which is
only available to the updater.

Make TypecheckingState a regular container for (unit) caches.
Make TypecheckingService responsible for managing caches.

Extract TypeModuleOwner and TypeModelHandler classes.
Get rid of QueryResultsCache, merge into TypecheckingResultsCache.
TypeModuleOwner to manage "repository" cache.
2020-08-14 16:57:36 +02:00
Fedor Isakov 905e11ac33 Refactor TypecheckingService API: simplify usage, extract Request.
Request is to keep all the parameters of a given API call,
whereas TypecheckingService is to handle the state between
calls.
2020-08-14 16:17:23 +02:00
Grigorii Kirgizov ef2b299124 Refactor unchecked conversion for raw types (MPSCR-63)
Now whether unchecked conversion is allowed is controlled
by ConvertsContext.Options of convertsTo relation.
Introduce 'erased()' term to be used in raw type params.
Drop 'uncheckedConversion' parameter in all macros.
Classifier kind:"raw" is now used only for Recover.
Allow unchecked conversions by default. Forbid for sequences.
2020-08-04 12:06:07 +03:00