Commit Graph

259 Commits

Author SHA1 Message Date
Fedor Isakov c2b445b8e0 Update samples: raw type. 2017-10-13 11:51:11 +02:00
Fedor Isakov adbd00aeed Ensure local typechecking produces same results when running tests. 2017-10-13 11:49:45 +02:00
Fedor Isakov 1a284c9c58 Typechecking templates: Ensure required nodes are specified by the rules. Raw classifier types support. 2017-10-13 11:49:45 +02:00
Fedor Isakov 6d42745a52 Typechecking templates:
Reimplement capture constraint, use capture for type inference, introduce captureOf type.
Remove lbound, replace ubound with hasBound.
Fix the classifier type well-formedness check.
Minor fixes.
2017-10-04 15:47:02 +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 4c8952a09a Typechecking templates: protect from NPE; guard aganst infinite recursion while constructing terms for recursive type; more primitive subtyping cases. 2017-09-13 16:41:47 +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 1c2bfc7346 Typechecking templates: add missing support for primitive types; protect rule applications from running into a cycle on recursive types; git rid of cycles in the typechecking. 2017-08-23 14:33:30 +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 59798eba71 Typechecking templates: switch to map instead of "logical substitution" type. 2017-08-22 11:47:35 +02:00
Fedor Isakov cf3832ef5a Typechecking templates: extract substitution context parameter. Provisional collecting of dependencies for "local typechecking". 2017-08-22 11:47:35 +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 b9e44ef2eb Typechecking templates: add a recover rule for variable declaration 2017-07-26 16:15:27 +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