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
7cdbb939ef
Include into the processing the required node for standalone rules.
2017-10-09 13:15:13 +02:00
Fedor Isakov
6aadc5a9b5
Fix the list of constraints not considered garbage.
2017-10-04 15:47:02 +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
941e62fa55
Fix generation of 'for' and other inheritors of IContainStatementList.
...
Skip body clauses from building the list of required nodes.
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
dd35ff9200
Migrated to 2017.2.1
2017-09-08 12:19:46 +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
a6fffb46c9
Drop LogicalSubstitution type and runtime class.
2017-08-22 11:47:35 +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
2aa4717ae7
Typesystem2 lang: move the context parameter declarations to a separate root.
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
7d926f5cdf
Extract typechecking dependencies from all node anchors in typeof, asType and newType constraints.
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
243932d6a1
Collect required nodes from TypeofConstraint anchors.
2017-08-15 15:14:36 +02:00
Fedor Isakov
64546445ef
Merge two generator templates for rule templates into one, simplify the internal rule application API.
2017-08-14 16:00:09 +02:00
Fedor Isakov
741824e85a
Switch to MPS 2017.2 release.
2017-08-14 13:38:37 +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
cf0de2de6e
Switch to MPS 2017.2 RC2
2017-07-28 20:33:13 +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