Commit Graph

312 Commits

Author SHA1 Message Date
Fedor Isakov 94dae1c5a8 Fix buildscript for samples/mpscore (extract dependency). 2019-10-18 17:02:14 +02:00
Grigorii Kirgizov 7fb8ebd7c2 Fix one assert in incremental tests to correctly check nodes with type errors. Fixes last failing test. 2019-10-17 13:17:16 +03:00
Grigorii Kirgizov ef93acd34a Revert "Temporarily silence the last failing BL incrementality test"
This reverts commit 5aa7585b
2019-10-17 12:58:37 +03:00
Grigorii Kirgizov d861fd5eb4 Add convertsTo_ground reflexive case.
At least convertsTo(stringType(), stringType()) was failing without it.
2019-10-17 12:33:17 +03:00
Grigorii Kirgizov 5aa7585bea Temporarily silence the last failing BL incrementality test 2019-10-15 21:31:29 +03:00
Grigorii Kirgizov 0fdc2ada2a Rewrite BL Recover base rules to make dependencies between rules visible (i.e. to actually reeval 'eval' predicates in rules incrementally) 2019-10-15 21:29:07 +03:00
Grigorii Kirgizov 28a82fd443 Revert "Temporarily disable failing tests in BLIncrTypecheck test case."
This reverts commit 1c1ddd6e
2019-10-15 18:01:21 +03:00
Fedor Isakov 6372f5a4a4 Experimental: cache the results of convertsTo/coerceTo queries.
The cache is repository-local and is invalidated on every command in that repository.
2019-10-12 09:35:09 +02:00
Fedor Isakov c7ad048a9e Completing the BL typesystem: rules for Minus- and ParethesizedExpression. 2019-10-12 09:35:09 +02:00
Fedor Isakov 1c1ddd6e5d Temporarily disable failing tests in BLIncrTypecheck test case.
Tests started to fail after an argument was introduced to a constraint that is being
activated from a query -- recoverAll/1 now has a parameter.
2019-10-12 09:35:09 +02:00
Fedor Isakov f8dcf127db Extend typechecking query TYPECHECK with a parameter to report types.
Reporting of calculated types is to be more explicit.
The not-so-obvious _type_.set() operation is to be phased out.
2019-10-10 17:30:11 +02:00
Fedor Isakov be81c982f1 Housekeeping in BL typesystem: organize artifacts using virtual folders. 2019-10-09 13:45:20 +02:00
Fedor Isakov 3d7f8688f5 Add new sample for testing typechecking performance. 2019-10-08 13:30:16 +02:00
Fedor Isakov 9914c3ba19 Add all descendants of classifier type as required. 2019-10-03 10:25:25 +02:00
Fedor Isakov 64a4be471f Optimize typechecking of array literals. The errors are now reported on the literal itself.
In general one should avoid using `typeOf/2` constraint with first argument being a logical.
The indexing mechanism ensures efficient search of matching rules when at least one argument
is a constant value. However, when all arguments are free logicals, *all* matches should be
tested, which is highly ineffective.
2019-09-30 16:44:36 +02:00
Fedor Isakov 7210fd2cad Drop checking for unique varname in BL typesystem. 2019-09-30 16:44:36 +02:00
Fedor Isakov 49518e0704 Switch to reactor version 0.9.14. 2019-09-30 16:44:36 +02:00
Grigorii Kirgizov b362f55b25 Fix error annotations to be on args in method calls tests. Unsilence incremental tests, same arg fix. 2019-09-16 13:56:23 +03:00
Grigorii Kirgizov c0e4bb1d1a Fix reporting on argument nodes in MethodCall rules 2019-09-16 13:56:23 +03:00
Grigorii Kirgizov 51258b5179 Silence two tests on incremental typechecking concerned with method calls 2019-09-16 13:56:23 +03:00
Grigorii Kirgizov ace483a61d Add tests on varargs. Adjust two error annotations. 2019-09-16 13:56:23 +03:00
Grigorii Kirgizov b4f2d88123 Add rules for checking method arguments incl. variable argument 2019-09-16 13:56:23 +03:00
Grigorii Kirgizov d251f626fa Remove Scratchpad that accidentally found its way into test suite 2019-09-16 13:56:23 +03:00
Fedor Isakov 2942c244a6 Move model access out of coderules evaluation, avoid "read access violation".
It's doubtful this check belongs here, but let's keept it for now.
2019-09-13 13:00:03 +02:00
Fedor Isakov 6938a8108b Drop superfluous check involving smodel access.
Typechecker should be occupied with checking types, not the model validation.
2019-09-13 11:31:18 +02:00
Fedor Isakov eda493f672 Fix typechecking of VariableArityType.
Parameter was defined as list instead of child.
2019-09-13 11:28:34 +02:00
Grigorii Kirgizov 332735e770 Remove unneded handler 2019-09-12 15:29:14 +03:00
Grigorii Kirgizov cdfe1f2c0c Update language version after migrations from mps.logic lang 2019-09-11 13:24:02 +03:00
Grigorii Kirgizov a9cf2e5589 Fix inf recursion in recovering intersectionType 2019-09-11 13:24:02 +03:00
Grigorii Kirgizov 9a782fc619 Run 'list literal -> cons list constructor' migration on samples 2019-09-11 13:24:02 +03:00
Grigorii Kirgizov 39fa007310 Run Splice migration on samples 2019-09-11 13:24:02 +03:00
Grigorii Kirgizov 163e339436 Add migration for replacing List usages for ConsList constructor usages 2019-09-11 13:24:02 +03:00
Grigorii Kirgizov 1e23572397 minor change of method use in BaseHelper 2019-09-11 13:24:02 +03:00
Grigorii Kirgizov 005dfa1e33 Fix reporting for typechecking of arrays in bl 2019-09-11 13:24:02 +03:00
Grigorii Kirgizov 6a02be6f6e Avoid nested empty lists in mapped ListNode.Alias. Fix capture in lcta helper for lub. Add test for lub.
The problem with empty lists showed up at least in printing lists.
2019-09-11 13:24:02 +03:00
Grigorii Kirgizov 442d15204c Add capture conversion for type variables produced by LUB 2019-09-11 13:24:02 +03:00
Grigorii Kirgizov a8cb00c8b5 Handle recursive case of LUB: produce wildcard type param 2019-09-11 13:24:02 +03:00
Grigorii Kirgizov 618524bdff Fix Forall term in lambdacalc with recent changes 2019-09-11 13:24:01 +03:00
Grigorii Kirgizov 37be72d9cf Refactor generation of ListFeature & 'spliced' MultiMetaLogical. Fix BL typesystem to accomodate these changes.
ListRole in DataForms is stricter and doesn't allow non-list values.
Spliced MultiMetaLogical is always generated to ListNode without intermediate step of Variable[].
2019-09-11 13:24:01 +03:00
Grigorii Kirgizov 4938551fcb Subst ListNode for 'term' type in some places in relation concerned with LUB. Change ListRole to ChildRole in upperBoundType & lowerBoundType. 2019-09-11 13:24:01 +03:00
Grigorii Kirgizov 6255bdb6f5 Add relations required for recursive case of LUB 2019-09-11 13:24:01 +03:00
Grigorii Kirgizov 087bfdaf9b Extend LubHelper to collect all parameterizations of erased types from raw LUB 2019-09-11 13:24:01 +03:00
Grigorii Kirgizov d3186851db Instantiate type variables in extended 'findSubtypePaths' rule 2019-09-11 13:24:01 +03:00
Grigorii Kirgizov e2e531f13c Add few utilities and extend logic of subtypePaths for LUB impl
subtypePaths constraint now has an extended version subtypePathsRaw that returns
extended 'classifierType' dataforms with type parameters (no only classifiers).
2019-09-11 13:24:01 +03:00
Grigorii Kirgizov 0f1460bb67 Add typechecking of array literals handling nested literals
Array literals always belong to some variable decl and their elements
are recursively checked against declared component type [JLS 10.6].
2019-09-11 13:24:01 +03:00
Grigorii Kirgizov 68f6507b72 Fix NPE in kotlin runtime on boolean types with null val from BL 2019-09-11 13:24:01 +03:00
Grigorii Kirgizov 924d07c8ed Return 'tagDetail' logic in RuleBuilder to handle duplicate tags of rules generated in loops 2019-09-11 13:24:01 +03:00
Grigorii Kirgizov ff9d109ea6 Add BL typechecking of arrays and boolean consts. Fails now due to rule tag collisions 2019-09-11 13:24:01 +03:00
Fedor Isakov 5b5798dcad Switch to reactor lib 0.9.13. 2019-09-10 18:37:11 +02:00
Fedor Isakov edc49464e1 Fix the failing test: the error is no longer reported on return statement. 2019-09-02 17:55:46 +02:00