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