Commit Graph

225 Commits

Author SHA1 Message Date
Fedor Isakov adbd00aeed Ensure local typechecking produces same results when running tests. 2017-10-13 11:49:45 +02:00
Fedor Isakov ce77d05486 Minor fixes in the samples. Make bad samples bad again. 2017-10-04 15:47:02 +02:00
Fedor Isakov 3adfaf1ec2 Fix model read violation by wrapping SearchQuery construction into a read action. 2017-10-01 14:37:33 +02:00
Fedor Isakov 3ce85cac5e Introduce snapshot history. Activation sink to record all snapshots and allow to refer to snapshot taken at particular instant. This is used in the Store sink in order to correctly represent logical assignments and unions. Snapshot history is reused by the next stage program. 2017-09-26 11:37:35 +02:00
Fedor Isakov 651fb9ac66 Activation trace: emphasise constraint occurrences in the store view relevant to the selected occurrence event. 2017-09-25 11:34:12 +02:00
Fedor Isakov 6f95100696 Standardise term symbol names.
Typechecking UI: display variable values in the activation trace view as condensed terms.
2017-09-20 16:23:31 +02:00
Fedor Isakov 975beae9bb Refactor Show Type action to also display progress. 2017-09-18 13:34:01 +02:00
Fedor Isakov f0a7ab2317 Make types cache store type models by source root instead of model. 2017-09-15 15:10:55 +02:00
Fedor Isakov 9bc019c58d Show Node Type action to show single node's type. Minor refactoring in ui plugin. 2017-09-15 14:18:18 +02:00
Fedor Isakov 2b123d9f42 Apply rule templates from all stages in one pass.
A heuristic to collect nodes required for local typechecking.
Minor changes in typesystem2 runtime.
2017-09-14 18:54:19 +02:00
Fedor Isakov bad0e86d85 Test recursive type. 2017-09-13 16:41:56 +02:00
Fedor Isakov 0ef1798c1a Fix infinite cycle in Snapshot. Include the exception that caused failure while evaluating rules. 2017-09-13 16:05:07 +02:00
Fedor Isakov f8c265dcc7 Use PooledThreadExecutor for background scheduling. Ad-hoc support for handling fatal errors during execution, such as StackOverflowError. 2017-09-12 17:11:43 +02:00
Fedor Isakov b33aa6fd76 Introduce module for type models managed by the types cache. 2017-09-12 13:01:36 +02:00
Fedor Isakov 490abaad0f Typechecking plugin: ensure the highlighting is part of the reactive scheme. Expose errors during highlighting to the user. 2017-09-11 13:17:34 +02:00
Fedor Isakov e9c8897bfa Refactor out common typechecking actions. An action to mark a single node's type. 2017-08-23 14:33:25 +02:00
Fedor Isakov 6c56623987 Minor refactoring in CHR program producing code: avoid passing stage as a parameter. 2017-08-22 11:47:35 +02:00
Fedor Isakov 5c442c47b6 Support for launching typechecking on a bunch of nodes without going deep. Implies automatic collection of typechecking dependencies. 2017-08-22 11:47:34 +02:00
Fedor Isakov 78c7f71e9a Refactoring the code that launches typechecking to better separate concerns.
Extract TypeAspectRuntime.
Support building typechecking program for sequence of nodes.
Moving classes/models around to get rid of cyclic deps.
2017-08-16 15:29:23 +02:00
Fedor Isakov 9a9dc9bd08 Refactoring rule application API and generator: consolidate all logic into token, make token a private API, switch to prototype extension of rule templates. Cleaning up the generator. 2017-08-14 13:33:50 +02:00
Fedor Isakov 9e5eb91089 Minor refactoring of rules application logic: extract specific subclasses of NodeWalker for different kinds of walks. 2017-08-08 11:56:19 +02:00
Fedor Isakov 4dd344e533 Fix mark types with trace. 2017-07-31 20:09:22 +02:00
Fedor Isakov d66b9db100 Use concurrent map for cache holder. 2017-07-31 17:41:35 +02:00
Fedor Isakov 8ecdb38df2 Typechecking schedulers. Using trampoline scheduler when typechecking facade is called from a command. Test type cache update. 2017-07-31 15:47:17 +02:00
Fedor Isakov 60ef0acb6a Remove dependency on guava. 2017-07-28 20:33:10 +02:00
Fedor Isakov 5c4fb50a63 Reorganize and repackage the code to better reflect purpose of the modules. 2017-07-28 19:13:48 +02:00
Fedor Isakov eace5181df Streamlining the internal typechecking API: remove dependencies on unused classes. Reimplement TypecheckingFacade using the unified API. 2017-07-28 18:55:42 +02:00
Fedor Isakov aac95b2b25 Move typesystem2.helper.plugin to typechecking.plugin. Drop typesystem2.helper solution. 2017-07-28 13:58:37 +02:00
Fedor Isakov 804cc9140b Refactoring typechecking API: extract cache component to the plugin, change the cache updater contract to factory, simplify TestLaunchTypechecking. 2017-07-28 13:51:15 +02:00
Fedor Isakov 9e74520810 Refactor TypecheckingHelper to re-throw the exception that was wrapped in ResumeNextStepException at the end. Allow to resume only once.
Refactor LaunchTypechecking.checkTypes() to throw exception on failure.
2017-07-27 15:18:26 +02:00
Fedor Isakov 757d869cf3 Rewrite tests without using NodeTestCase's header. Update TypeNodeManager and Typechecker to both be initialized async, add a dispose call for Typechecker. 2017-07-27 15:18:20 +02:00
Fedor Isakov f2710aa8d6 Fix the trace displaying only the first stage. Simplify types in TypecheckingHelper. Refactor LaunchTypechecking to use CollectTypesStep. 2017-07-27 15:17:20 +02:00
Fedor Isakov 2908543afe Refactoring typechecking steps to extract the core part. Get rid of the persistency-dependent model, use a bare EditableSModelBase for types. 2017-07-25 13:55:55 +02:00
Fedor Isakov e970b2443a Extract typechecking-related stuff to a separate solution 'j.m.typechecking' 2017-07-25 10:30:29 +02:00
Fedor Isakov 4665aa5623 Rename 'j.m.typechecking' solution to 'j.m.typechecking.ui'. Contains only the plugin model. 2017-07-24 11:29:59 +02:00
Fedor Isakov 499b02e56e Fix NPE in TreeTableTree.setVisibleRow(). The tree object may have been replaced by setModel(). 2017-07-21 16:57:13 +02:00
Fedor Isakov c232ba7d57 Fix the "read outside read action" issue in the cell renderer. 2017-07-21 15:40:01 +02:00
Fedor Isakov ba5def2285 Another refactoring in TypecheckingHelper: extract all steps to standalone classes, cleanup the API. 2017-07-20 19:15:46 +02:00
Fedor Isakov 9bd7b5fe08 Refactoring TypecheckingHelper to get rid of the homegrown scheduling and reporting. 2017-07-20 15:19:21 +02:00
Fedor Isakov 20622554f2 Switch to MPS 172 latest RC build. Fix a couple of parent-invariant violations in the type system, remove obsolete intention. 2017-07-19 16:22:59 +02:00
Fedor Isakov 998aa96d6b Fix test launching after switching to rxJava. Need to hack ModelAccess in order to work around the mandatory write action in NodeTestCase. 2017-07-19 12:00:06 +02:00
Fedor Isakov be66ee5bce Automatically updated module descriptors. 2017-07-18 11:46:27 +02:00
Fedor Isakov f4ff350bc5 Set "reexport" flag to true to avoid warning. 2017-07-18 11:27:32 +02:00
Fedor Isakov bebb503874 Switch to using rxJava for launching type checking, avoid blocking EDT. Minor optimization of the trace. 2017-07-18 11:27:12 +02:00
Fedor Isakov c8b4fff148 Add dependencies on RxJava and rxjava2-swing. 2017-07-18 11:24:38 +02:00
Fedor Isakov ab408b0c09 Add explicit mapping of library jar locations to reactor module. Fix the plugin. 2017-06-13 20:31:40 +02:00
Fedor Isakov dab37c39b1 Update the plugin metadata. 2017-06-13 10:17:38 +02:00
Fedor Isakov 0fd6f65591 Rename "sampleplugin" solution to "typechecking". Move build solution to typechecking folder. Rename the plugin to "typechecking". 2017-06-12 21:55:53 +02:00
Fedor Isakov 33bc06e9cc Rename solutions "typesystem2.sample.*" to "typechecking.sample.*". 2017-06-12 19:10:29 +02:00
Fedor Isakov 0a615c8490 Rename solution "typesystem2.test" to "typechecking.test". 2017-06-12 19:01:49 +02:00