Commit Graph

62 Commits

Author SHA1 Message Date
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 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 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 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 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 b9e44ef2eb Typechecking templates: add a recover rule for variable declaration 2017-07-26 16:15:27 +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 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 51263e9b8b Reorganizing the code, optimize the number of solutions. Delete empty solutions. 2017-06-12 18:55:55 +02:00
Fedor Isakov 663c58d880 Delete empty generators. Fix the import errors. 2017-06-12 16:45:00 +02:00
Fedor Isakov ee0b98f9db Rename "sampleLang" to "baseLanguageExt" 2017-06-12 16:32:49 +02:00
Fedor Isakov 9884923141 Typechecking templates: ensure every type is restored, substitute bottom for unknown type. 2017-06-12 12:22:42 +02:00
Fedor Isakov effa917f63 Optimize module/model imports. Get rid of "exported" dependencies (too much trouble with the ant files). 2017-06-09 09:51:35 +02:00
Fedor Isakov c5a3fc6adc Re-save types model to update resolve info. 2017-05-22 10:34:22 +02:00
Fedor Isakov 9f828fec11 Typechecking templates: ensure no type errors in model check. 2017-05-12 11:54:22 +02:00
Fedor Isakov 7912b66516 Typechecking templates: re-save the model to update the resolve info. 2017-05-11 13:31:38 +02:00
Fedor Isakov 7c8cc408fc Typechecking templates: replace all instances of "index" with "position" 2017-05-11 13:11:08 +02:00
Fedor Isakov 0d6452c826 Typechecking templates: auto-changes after the concepts renaming. 2017-05-09 15:42:07 +02:00
Fedor Isakov 21dbecd386 Re-saved all models. 2017-05-04 13:10:14 +02:00
Fedor Isakov 4b18d94664 Typechecking templates: move the term declarations to separate root. 2017-05-04 12:47:22 +02:00
Fedor Isakov 2f3c1a6492 Typechecking templates: drop links to type term from type declarations 2017-05-03 16:14:44 +02:00
Fedor Isakov bbb5451408 Typechecking templates: adopting to the changes in the language. 2017-05-03 16:14:26 +02:00
Fedor Isakov 3136d7bedb Switched to the latest EAP build, applied the migrations. 2017-03-09 14:36:20 +01:00
Fedor Isakov 55eae7dda5 Typechecking templates: replace all obsolete code blocks with logical clauses. Extract logicals into the rule part declaration where possible. 2017-03-01 12:51:21 +01:00
Fedor Isakov c254e94a2e Typechecking templates: Switch to using new way of recovering type nodes. Drop the recovery blocks. 2017-02-17 11:58:12 +01:00
Fedor Isakov f4b965efce Repackage utility classes inside the types aspect model. Delete obsolete module. 2017-02-09 14:24:00 +01:00
Fedor Isakov 61fd80014d Typechecking templates: adapting to the latest refactoring. 2017-02-03 11:28:10 +01:00
Fedor Isakov 44019dca79 Typechecking templates: remove usages of the "typeConcept" 2017-02-03 11:15:23 +01:00
Fedor Isakov 4430488f26 New recover types handler (unfinished) 2017-02-03 11:15:01 +01:00
Fedor Isakov 31e15fcaa9 Typechecking templates: annotate the handlers with the primary constraints. Moderate pocessing speedup. 2016-12-28 12:48:47 +01:00
Fedor Isakov 5bb2d9c7fa Drop the deprecated postProcess and other obsolete features. 2016-12-23 17:40:04 +01:00
Fedor Isakov 1c7e72db40 Typechecking templates: sort the rules so that abstract come after the concrete for post-processing, and before otherwise. 2016-12-23 17:40:02 +01:00
Fedor Isakov c08cfbc173 Typechecking templates: optimizing processing of constraints by using more optimal rules order. 2016-12-14 17:08:32 +01:00
Fedor Isakov a5a05531b4 Typechecking templates: Refactoring and straightening up the typesystem, cleaning up and dropping unused rules and constraints.
Refactoring bounds, containment.
Using new type construct for non-patterns.
Using new type construct for non-patterns.
New features: support for boxing, array conversion, capture classifier type parameters.
2016-12-12 16:02:12 +01:00
Fedor Isakov 5f802cf6cf Typechecking templates: simplify the code. 2016-11-16 15:44:35 +01:00
Fedor Isakov 57bfd6433e Refactoring out the typechecking code from the sample plugin. 2016-11-07 15:07:16 +01:00
Fedor Isakov 9b7323b40c Typechecking templates: basic support for primitive types. 2016-10-20 12:55:48 +02:00
Fedor Isakov 47f3d61b28 Typechecking templates: adding new types, a workaround for raw classifier types. 2016-10-19 16:09:41 +02:00
Fedor Isakov 6abca3f4e9 Attempting to make tests run from the generated build script. 2016-10-19 11:22:59 +02:00
Fedor Isakov 99a564dac4 Typechecking templates: fix the subtyping/substitution logic, bounds check, LUB 2016-10-13 13:37:58 +02:00
Fedor Isakov 16a8541b3e Refactor error reporting while applygin typechecking templates. Trigger headless rules with the "main" constraint instead of merging everything into one huge conjunction. 2016-10-06 11:48:06 +02:00
Fedor Isakov b3dd169531 Typechecking templates: keep the node reference in the type term instead of the id 2016-09-30 18:10:18 +02:00
Fedor Isakov 36b721fbe0 Type templates: implementing recovery feature. 2016-09-19 13:01:23 +02:00
Fedor Isakov b03e8578e5 Resave all models containing obsolete resolve info. Fix all mentions of the old api class. 2016-09-17 14:57:55 +02:00
Fedor Isakov 9312b7d30e MPS suddenly decided to remove references to the deleted solution. 2016-09-01 11:03:36 +02:00
Fedor Isakov 414a60fffc Moving the reactor API to the separate project.
Switch to java_stub models for the reactor api.
2016-09-01 11:03:35 +02:00
Fedor Isakov 4b6ac48a41 Merging TreeForm model into the reactor solution.
Move unification lib tnd treeform api model to reactor solution.
Remove obsolete solution.
2016-09-01 11:03:35 +02:00
Fedor Isakov a27cdecc67 Renamings and refactorings in the logic api.
Use TreeForm name for the tree abstraction.
Rename Atom, Func etc. and the usages.
2016-09-01 11:03:21 +02:00