Fedor Isakov
ec6e56c1c3
Fix expandMacro calls to explicitly pass 'subs' parameter recursively
...
The hack on which expandMacro parameters used to rely on, resulted in a side-
effect, namely that once passed expandMacro parameter is available
recursively, until overridden.
With new contract all parameters need to be passed on when an expandMacro
is called recursively.
2021-09-21 17:54:51 +02:00
Fedor Isakov
6b0526ba31
Introduce language j.m.l.types to contain aspect-related generator mappings
2021-08-17 09:29:21 +02:00
Fedor Isakov
78c9b16f13
Auto-fix: change reference to default constructor
2021-07-22 15:46:21 +02:00
Fedor Isakov
73d50ef39c
Add typing rules for string operations in BL
2021-07-22 13:59:19 +02:00
Fedor Isakov
9527a097b8
Migrate to the latest MPS release, apply migrations
2021-06-18 18:41:01 +02:00
Fedor Isakov
1e3c67949d
Fix BL types: conditional op, raw types, capture conversion
2021-05-18 13:07:03 +02:00
Fedor Isakov
0cea4073cc
Fix BL types: ensure proper type inference and incremental typechecking
2021-05-18 12:32:03 +02:00
Fedor Isakov
65ec6d9d35
Fix BL types: reimplement raw type, many small fixes
...
Fix type inference from containment, change priority for var-ground containment.
Fix variable reference type, property, plus operation, binary ops.
Fix type variables and bounds.
Fix checking overridden methods.
Introduce stripBounds for cleaning up wildcards.
Introduce containment string ≤ String.
2021-05-13 15:54:44 +02:00
Fedor Isakov
a08c730ece
Migrate to NodeRefItem
2021-05-13 15:54:43 +02:00
Fedor Isakov
637da7d966
Apply migration and rebuild project
2021-05-04 18:24:30 +02:00
Fedor Isakov
ea6e930954
Apply migration and rebuild project
2021-05-04 18:24:29 +02:00
Fedor Isakov
47e6e07039
Refactor processing of inference variables
...
Introduce hasTarget and resolveVar constraints for delayed resolving
of inference variables. In invocation context variables are not
inferred eagerly, but wait for the end of all conversions, and then
resolved via resolveVar.
2021-05-03 13:14:11 +02:00
Fedor Isakov
998fa3b925
Fix BL types: make capture processing generic, couple of minor fixes
2021-05-03 13:14:11 +02:00
Fedor Isakov
ae63863299
Minor code fix to ensure typechecking
2021-04-29 14:53:19 +02:00
Fedor Isakov
d45ef7815a
Fix BL types: avoid failing on incomplete source data
2021-04-29 14:53:19 +02:00
Fedor Isakov
cf386d848c
Fix smodel types: make gendecl processed correctly, generify dpromote
2021-04-28 08:55:00 +02:00
Fedor Isakov
c6c9a6e281
BL types: drop boxing/unboxing for strong converts/coerce queries
2021-04-28 08:54:25 +02:00
Fedor Isakov
118602b2fd
Fix BL types: classifier type with other types as parameters
...
Also fix code constructs that caused typechecking errors.
2021-04-28 08:54:25 +02:00
Fedor Isakov
a204df222a
Optimize BL types and queries
...
Make expectType optional (auxiliary).
Drop checkDecls from typeof query (unnecessary).
2021-04-28 08:54:25 +02:00
Fedor Isakov
d918fa5c12
Optimize BL types
...
Switch to pull style boundOf instead of typeVarBound.
Drop importDecls.
2021-04-21 10:45:09 +02:00
Fedor Isakov
ff6b5ec6ae
Apply migrations and rebuild project
2021-04-14 13:19:50 +02:00
Fedor Isakov
6ed5c3329d
Fix typing errors: specify correct type annotations
2021-04-14 11:59:09 +02:00
Fedor Isakov
c0601cb099
Optimizing types for more efficient evaluation
...
Replace "push" style genDecl constraint with "pull" schemeOf.
Mark rules as "auxiliary" to avoid these being included in
processing as dependencies.
2021-04-12 12:47:44 +02:00
Fedor Isakov
65b32a4f48
Fix lub processing in BL types
2021-04-08 08:54:46 +02:00
Fedor Isakov
5fc019caca
Mark an exhastive check rule as "auxiliary" to avoid including it as dependency.
2021-03-08 12:34:40 +01:00
Fedor Isakov
81831db86a
Move experimental controlflow aspect to a separate language
2021-02-06 15:28:03 +01:00
Fedor Isakov
dee5db0e96
Drop instances of TermFeature.final property
2021-02-04 18:01:10 +01:00
Fedor Isakov
ed55370a01
Fix model imports (hamcrest lib has been moved to another solution)
2021-02-04 12:27:55 +01:00
Fedor Isakov
2f0f2e5b13
BL types: support coerce to target type query kind
2021-02-04 08:51:00 +01:00
Fedor Isakov
4d1cdacfe2
BL types: avoid failure on typechecking BaseMethodCall
...
BaseMethodCall doesn't always have an enclosing classifier.
2021-02-04 08:51:00 +01:00
Fedor Isakov
2b46ab0413
BL types: ensure any type converts to Type
2021-01-23 16:59:46 +01:00
Fedor Isakov
2b6de60ebc
BL types: Drop runtimeType term and its usages
2021-01-23 16:59:42 +01:00
Fedor Isakov
62e8e7d013
Switch to MPS 2020.3 release.
2021-01-08 11:00:02 +01:00
Fedor Isakov
6f92d666f7
BL types: a few fixes, stabilize typechecking
...
Support Type type.
Simplify depdendency of var decl to its type.
Covariant subtyping for UpperBoundType.
Straightforward dependencies on type's parameters.
Specify BaseConcept as general type's concept.
Fix method reference.
2020-12-30 18:28:46 +01:00
Fedor Isakov
f5c9ed7c4b
Temporarily change the extends clause of Array rule table
...
This particular extends clause breaks an internal invariant
of rules plan, namely the topological sorting of rule tables.
This results in broken rule index, which needs to be fixed.
Also, disable a suspect rule that relies no typeof()
*not* being present, which is a transient condition.
2020-12-27 16:39:22 +01:00
Fedor Isakov
2ef3176bc2
BL types: extend lub to primitive types via boxing
2020-12-27 16:04:06 +01:00
Fedor Isakov
70d6dfefa1
Fix failing generation by disabling typechecking of cast expression
...
Cast expression must check the type of the argument expression
and ensure comparabitiy of types.
2020-12-27 16:04:06 +01:00
Fedor Isakov
1228ff036b
BL types: substring expression, string conversion to classifier
2020-12-27 16:04:06 +01:00
Fedor Isakov
2a5163c0f4
BL types: support concept function and Void classifier
2020-12-27 10:36:00 +01:00
Grigorii Kirgizov
0dc072413e
minor fix in BL typesystem: always check returns, it can influence resultiing type
2020-12-15 17:51:27 +03:00
Grigorii Kirgizov
61dccfd2d9
BL types: simplify array typing & fix minor errors
2020-12-15 17:51:27 +03:00
Fedor Isakov
034f7afa98
BL types: add rules for NPE-safe comparison operators
2020-12-15 13:28:44 +01:00
Fedor Isakov
c5fed5f2e0
BL and closure types: add necessary explicit dependencies. Fix tests.
...
In order to ensure properly functioning incremental typechecking
some explicit dependencies are to be declared.
2020-12-11 12:03:17 +01:00
Fedor Isakov
2ee4c30233
Add explicit dependencies to required sources.
2020-12-08 22:57:35 +01:00
Fedor Isakov
b35aab4912
Minor types optimization: change memoizer key.
2020-12-01 22:50:01 +01:00
Fedor Isakov
60f59a7a80
Fix BL types: anonymous class creator has optional ref to constructor.
2020-11-29 00:16:51 +01:00
Fedor Isakov
044b707b77
Implement handlers for typeOf query in all types aspects.
2020-11-24 13:41:25 +01:00
Fedor Isakov
80d2152df1
BL types: support as and instanceof
2020-11-24 13:41:24 +01:00
Fedor Isakov
fe16b80132
Refactor types in all mps foundation langs. Drop node-ptr usage as anchor in terms.
...
Drop node-ptr in node features, macro calls.
Drop node-ptr types in rule templates and recover closures,
fix BiConsumer params
Drop node-ptr// refs where appropriate.
Drop pointer operations from macro calls and term ctor's; add resolve to FunctionTypeLookup static table.
Drop node pointer operations from constraints, add require statements in SModel types macro table.
2020-11-24 13:41:24 +01:00
Fedor Isakov
ba39d7d047
Fix NPE during processing of classifier type with null classifier.
2020-11-24 13:41:24 +01:00