Grigorii Kirgizov
7e996c8772
Disable checking local types in 2 tests (in anticipation of MPSCR-63 fix)
2020-07-01 14:36:48 +03:00
Grigorii Kirgizov
2df90d00c5
minor: fix buildscript depndencies
2020-07-01 14:36:48 +03:00
Grigorii Kirgizov
a37bd44de0
disable tests on inremental typechecking of recursive closure 'invoke'
...
To fix them need either extending incr algo to handle rules which
postpone binding logicals in principal constraints (i.e. typeOf)
(see rules in Closures for 'invoke' expression)
or rewriting these rules to not produce typeOf with free logicals.
2020-07-01 14:36:48 +03:00
Grigorii Kirgizov
672b46dc65
minor: fix mistake in IncrClosureInference.changeFunctionalInterfaceParams test
2020-07-01 14:36:48 +03:00
Grigorii Kirgizov
1943157cd0
update samples test models dependencies & regen build.xml
2020-07-01 14:36:48 +03:00
Grigorii Kirgizov
a16756bfdb
Fix error reporting in bl.closures for conversion to functional interface
...
Add 'genDecl' constraint in heads of toFunctionalCls* rules
to handle incremental changes to respective classifier.
Also fail instead of just reporting error to break execution and
report on correct node according to calling rule.
2020-07-01 14:36:48 +03:00
Grigorii Kirgizov
8ccfa63111
Add test methods for ensuring incremental logic for rules diff
2020-07-01 14:36:48 +03:00
Grigorii Kirgizov
51b0438888
Add tests for incremental processing of closure type inference
2020-07-01 14:36:45 +03:00
Grigorii Kirgizov
827d2e5c42
Add tests for generic method calls
2020-07-01 14:36:45 +03:00
Grigorii Kirgizov
36e4e01f2e
Аdd tests for changes to class hierarchy with generics
2020-07-01 14:36:45 +03:00
Fedor Isakov
9c1d3aad92
Move Result class to commonly-used runtime solution.
2020-06-25 14:30:30 +02:00
Fedor Isakov
82b37d8103
Add module dependencies to test modules.
...
This ensures the tests can be launched on a test module in isolation.
2020-06-24 13:59:58 +02:00
Fedor Isakov
ecb2569bad
Types for smodel lang.
2020-06-22 13:38:09 +02:00
Fedor Isakov
ab99a0245c
Introduce runtime support module j.m.coderules.runtime.
2020-06-21 23:17:33 +02:00
Grigorii Kirgizov
4876c22282
Refactor single root of incremental tests into several, move IncrTestBuilder
2020-06-16 14:14:46 +03:00
Grigorii Kirgizov
a03651dd31
Refactor IncrementalLauncher in tests to use TypeIndex (as on runtime)
2020-06-15 13:03:09 +03:00
Grigorii Kirgizov
62d31743ed
Refactor incremental tests
2020-06-15 11:14:47 +03:00
Grigorii Kirgizov
f81d8ac44e
Fix missing lang import on tests model
2020-06-09 12:00:37 +03:00
Grigorii Kirgizov
1631f77e74
Implement typechecking for j.m.bl.collections & tests for it
2020-06-08 12:29:37 +03:00
Fedor Isakov
490eb66a3e
Disable Thinlet test, too many timeouts.
2020-06-04 12:40:34 +02:00
Fedor Isakov
161beb6a4d
Refactoring in hierarchy graph. Introduce various abstractions.
...
Hierarchy graph vertex can represent LUB as a simple
collection of inheritance paths.
Abstract intefaces allow to model operations such as finding
the LUB in an abstract way.
Greatly simplify code.
2020-06-01 10:18:04 +02:00
Fedor Isakov
f96a014543
Minor refactoring: code simplification and cleanup.
2020-05-25 13:15:29 +02:00
Fedor Isakov
3ff038e4a3
Drop obsolete and unused code. Tests superceded by new tests.
2020-05-25 13:15:25 +02:00
Fedor Isakov
71fd7d7301
Switch typechecking templates to use the refactored facade.
2020-05-25 12:38:05 +02:00
Fedor Isakov
35b09d3e2e
Fix build script and regenerate.
2020-05-25 11:03:39 +02:00
Fedor Isakov
b4a5b4cec4
Refactor various utilities into facade class.
...
Introduce HierarchyGraph and its specialization,
ClassHierarchyGraph, as a facade to all tasks related to
finding paths and LUB of types.
2020-05-25 11:03:39 +02:00
Grigorii Kirgizov
00dc426f43
Consider case of NestedNewExpression for class creators (MPSCR-29)
2020-05-22 22:36:10 +03:00
Grigorii Kirgizov
42f0d06063
Refactor duplicate code for checking method call into call macro
...
Also typecheck method call arguments with macro instead of a rule
2020-05-22 21:39:15 +03:00
Grigorii Kirgizov
c3cf1e5111
Complete type inference for closure params wit inst macro, add tests, fix few minor issues
...
Related to MPSCR-20 & MPSCR-29.
2020-05-22 21:39:14 +03:00
Grigorii Kirgizov
e2b3c21b2f
Change semantics of implicit ListFeature: treat as wildcard, not as empty list
...
Motivation is that implicit (non-overriden) list features must unify
with list of any length. Consider an example:
`classifier(cls: node-ptr/A/) = classifier(cls: node-ptr/A/ param: [B,C])`
With previous approach it would fail, which seems counter-intuitive to me.
So, if empty list (e.g. of type parameters) is meant, then it must be
specified explicitly.
There's one thing to remember, though: such wildcard list features
won't match with MetaLogicalArrays in rule heads.
(e.g. see dpromote_* rules and consider what happens when
a classifier with unbound `parameter` feature comes in)
2020-05-21 16:38:36 +03:00
Grigorii Kirgizov
3a99a1569a
Add typechecking for AlternativeType. Move & refactor genDecl macro a bit.
...
Introduce common 'parameterized(child typeParams)' term
to allow unifying processing of GenericDeclarations.
Collect type variables from enclosing GenericDeclaration.
Will be needed to simplify instantiation of nested generic decls
(e.g. generic method inside generic class) using `genDecl`
machinery instead of TypeVarSubstitution.
2020-05-21 16:38:30 +03:00
Grigorii Kirgizov
3047926ce4
Fix typechecking for vararg param decls: treat them as arrays.
2020-05-21 16:31:41 +03:00
Grigorii Kirgizov
ac2e3f97d2
Add typechecking for implicitly typed closure arg, add tests
2020-05-14 20:07:01 +03:00
Fedor Isakov
14780b5561
Apply automatic migrations.
2020-05-09 15:04:25 +02:00
Fedor Isakov
d1163fc883
Open and rebuild the project with MPS 2020.1.
2020-05-09 15:02:20 +02:00
Fedor Isakov
f3b16186e6
Fix build scripts and regenerate.
2020-05-09 10:54:18 +02:00
Fedor Isakov
acd6234415
Force save all.
2020-05-09 10:54:18 +02:00
Grigorii Kirgizov
e1af32b97c
Add tests for closuresExt concerned with yield and sequence, reproduces MPSCR-60
2020-05-07 01:28:14 +03:00
Grigorii Kirgizov
54c9af37a3
Add checking of loop statements in blExt
2020-05-05 16:45:27 +03:00
Fedor Isakov
ab9a22a013
Rebuild project.
2020-05-05 10:19:38 +02:00
Fedor Isakov
ea687efb21
Types for j.m.logic language.
2020-05-05 10:19:32 +02:00
Grigorii Kirgizov
27b7917a1a
Add conversion of closures to functional classifiers, add tests
2020-05-04 16:38:00 +03:00
Grigorii Kirgizov
36a85d5c2c
Add bl.collectionsExt dependency on bl.function lang; upd mpscore build script and build.xml
2020-05-04 15:16:47 +03:00
Grigorii Kirgizov
f7a9c73199
Refactor out lang dependency on function type analogously to sequence type
...
As closures typesystem depends on collections due to sequence type,
so collections typesystem depends on closures due to function type.
E.g. consider typechecking of SequenceCreator.
2020-05-04 15:16:47 +03:00
Grigorii Kirgizov
898087f427
Fix term table in closuresExt to extend blExt term table and use imported sequence type
2020-05-04 15:15:35 +03:00
Grigorii Kirgizov
72d48d76e3
Add typechecking for recursive closure invoke expression, add tests & fix older ones
2020-05-04 15:15:28 +03:00
Grigorii Kirgizov
3284d2c331
Add typechecking of ClosureLiteral and invoke expressions
2020-05-02 14:04:34 +03:00
Grigorii Kirgizov
19ab82586f
Add function type subtyping
2020-05-02 14:04:34 +03:00
Grigorii Kirgizov
b9fe7439bb
Add empty closuresExt files for lang and test solution, upd bulid script
2020-05-02 14:04:34 +03:00
Grigorii Kirgizov
3101d22a5b
Upd mpscore build script and build.xml
2020-05-02 13:44:19 +03:00