Fedor Isakov
ba142094b7
Drop rules acting on removed obsolete concepts
2023-06-12 12:01:02 +02:00
Fedor Isakov
2cf2718484
Make rules auxiliary to reduce rules application scope
2023-06-12 12:01:02 +02:00
Fedor Isakov
0fcb804c42
Avoid boxing prim types when converting
2023-05-03 10:31:55 +02:00
Fedor Isakov
4fd280f06e
Fix closure type inference: infer result type
...
Proceed with the closure result type as with other inferrable types:
declare as inference var and resolve at the end of processing.
2023-05-03 10:31:55 +02:00
Fedor Isakov
8401363109
Fix recovery of raw types: clear parameter list
2023-05-03 10:31:55 +02:00
Fedor Isakov
6ea8c0e69d
Fix smodel types
2023-04-14 15:12:06 +02:00
Fedor Isakov
39dedccd02
KotlinRefs types: fix kt constructor type
2023-04-10 17:51:34 +02:00
Fedor Isakov
2d9027d431
Rebuild project
2023-03-27 17:22:51 +02:00
Fedor Isakov
75287824ec
BL Types: construct raw type for erasedType's bound; avoid recursion. MPSCR-129
2023-03-03 17:08:59 +01:00
Fedor Isakov
7daccbe1ad
Fix dangling reference
2023-03-03 17:07:24 +01:00
Fedor Isakov
40f8d69896
Rebuild project with latest MPS 2023.1 EAP
2023-03-02 17:03:01 +01:00
Fedor Isakov
03161ea3eb
Fix recursive call when gathering classifiers hierrarchy
2023-02-23 16:32:23 +01:00
Fedor Isakov
d531c6a5ad
Run Migration Assistant
2023-02-22 13:52:02 +01:00
Fedor Isakov
4db818637f
Rebuild project
2023-02-22 13:51:02 +01:00
Fedor Isakov
4c847f4d3b
Temporarily disable a test that produces too much noise
2022-11-23 14:03:19 +01:00
Fedor Isakov
13da45a973
Fix subtle issues with type inference, introduce more
...
As type variables are made to be resolved later, some errors may "escape"
their respective scope, such as classifier type definition. This needs to be
addressed separately.
2022-11-23 14:03:19 +01:00
Fedor Isakov
34452407f4
Ignore runtime error type in a test
2022-11-23 14:03:19 +01:00
Fedor Isakov
5d5cea10e6
Update error in test data model to reflect actually reported error
2022-11-23 14:03:19 +01:00
Fedor Isakov
25b82ebfb1
Redo fix of closure param type inference, drop typeScheme/2
...
The solution for inferring the type of a closure parameter using
auxiliary typeScheme/2 constraint and processing all "inference sites"
doesn't work for some situations, such as closure returning a closure with
untyped (var) parameter.
The new solution uses regular typeOf/2 constraint and calculates the
closure type assuming a variable as the return type. This must not be inferred from the context.
Avoid assigning a type to the closure the 2nd time, which
causes a cascade of typeOf/2 activations.
2022-11-23 14:03:19 +01:00
Fedor Isakov
e5c56fbb40
Ensure nothing() is contained in any type
2022-11-23 14:03:18 +01:00
Fedor Isakov
d2a68e8fc7
Apply migrations to mpscore sub-project
2022-11-23 14:03:18 +01:00
Fedor Isakov
ad3ea9d63d
Apply all migrations from 2022.2
2022-11-21 11:25:13 +01:00
Fedor Isakov
d9cda646de
Bump up plugin versions
2022-11-21 11:25:03 +01:00
Fedor Isakov
071efca420
Update build script
2022-11-21 10:50:00 +01:00
Fedor Isakov
847aa0d925
Update tests to ignore certain errors, avoid failure on correct code
2022-11-21 10:50:00 +01:00
Fedor Isakov
fecabe840d
Fix closure's parameter type inference, drop hacks
...
Replace the ad-hoc solution with typeScheme/2 cint to be used
on par with type/2. Type inference sites to be extended
with rules to process typeScheme.
2022-11-21 10:50:00 +01:00
Fedor Isakov
b5de53e27f
Fix type inference for untyped parameters; minor refactorings
...
Ensure nothing() type can be converted to any type.
Use the value "site" in capture() term to ensure capture types
don't get matched with `==`.
Also, avoid eagerly dropping resolveVar cint.
2022-11-21 10:50:00 +01:00
Fedor Isakov
876cf75302
Types for j.m.l.kotlinRefs languange
2022-11-21 10:50:00 +01:00
Fedor Isakov
83976afa9d
Update and generate build script
2022-11-21 10:50:00 +01:00
Fedor Isakov
d33e3148d9
Update virtual folders
2022-11-21 10:50:00 +01:00
Fedor Isakov
2a6d60133b
Fix closure's parameter type inference; properly lift function type
2022-11-21 10:50:00 +01:00
Fedor Isakov
497691e9af
Fix type inference of expressions in BL, plus few minor issues
2022-11-21 10:50:00 +01:00
Fedor Isakov
f1efac2c11
Fix typechecking of function type: varargs and type inference
2022-11-21 10:50:00 +01:00
Fedor Isakov
22fb818142
Simplify typechecking of SNodeTypeCastExpression, drop deprecated stuff
2022-11-21 10:50:00 +01:00
Fedor Isakov
5abf1dbce7
Ensure types extend BL's Type term
2022-11-21 10:50:00 +01:00
Fedor Isakov
9b341c2e2d
Ensure types extend BL's Type term
2022-11-21 10:50:00 +01:00
Fedor Isakov
3f722f6fbd
Drop creating abstract concept for open type
2022-11-21 10:50:00 +01:00
Fedor Isakov
8c0771769a
Update modules.xml for all recently added modules
2022-11-21 10:49:59 +01:00
Fedor Isakov
816dcc5f00
Types for j.m.l.methodReferences languange
2022-11-21 10:49:59 +01:00
Fedor Isakov
0e6a1103c7
Types for j.m.l.extension languange
2022-11-21 10:49:59 +01:00
Fedor Isakov
ec0167feba
Types for j.m.l.sharedConcepts languange
2022-11-21 10:49:59 +01:00
Fedor Isakov
ff1d53a7ab
Fix sequence type construction (passing correct unifier)
2022-11-21 10:49:59 +01:00
Fedor Isakov
0cdad6687c
Introduce nothing() term, ensure it is assigned by default instead of type()
2022-09-08 14:07:06 +02:00
Fedor Isakov
8c9f3c8afa
Fix closure type inference
2022-09-08 14:07:06 +02:00
Fedor Isakov
4aaf66d4cb
Support for LocalPropertyReference
2022-09-08 14:07:06 +02:00
Fedor Isakov
35288dc3e5
Fix conversion in smodel lang
2022-09-08 14:07:06 +02:00
Fedor Isakov
7c3c6968b0
Fix type recovery in logic lang
2022-09-08 14:07:06 +02:00
Fedor Isakov
ce71b0f987
Rebuild build scripts
2022-09-02 16:42:08 +02:00
Fedor Isakov
4070194d01
Bump up plugin versions
2022-09-02 16:11:00 +02:00
Fedor Isakov
83e273da73
Fix tests by caching Config instance
...
Tests are launched within a context that is unable
to perform normal MPS classloading, so we resort to
caching the (singleton) instance of Config coming from
an (IDEA) plugin to use it later.
2022-08-27 19:39:14 +02:00
Fedor Isakov
78f847747b
Drop unstable hacks, simplify code
2022-08-26 13:58:22 +02:00
Fedor Isakov
a40d74c600
Fix project build and loading scheme
...
Source files for ideaplugin are now compiled externally.
2022-08-26 10:39:20 +02:00
Fedor Isakov
299d9a4fd8
Update build scripts to fix tests launching
2022-08-25 12:59:36 +02:00
Fedor Isakov
d2ca45aa02
Extract bootstrap code to idea plugin; CR options to become app-level
...
CR typechecking options are now application-level.
The solution j.m.c.ideaplugin contains the code responsible
for accessing and setting the options. This solution is loaded
as IDEA plugin on deploy and as regular module in source project.
Also merge code from two modules into j.m.c.typechecking.
2022-08-25 12:59:36 +02:00
Fedor Isakov
fe3a38d90f
Rebuild project
2022-08-17 11:40:58 +02:00
Fedor Isakov
c4a157bf4d
Bump up plugin versions
2022-08-16 18:11:49 +02:00
Fedor Isakov
29c9a50fa9
Use built-in BL's intersection type instead of meet type
2022-08-16 18:11:49 +02:00
Fedor Isakov
ab2a1b6499
BL Types: Disable overriding methods check, MPSCR-115
...
This check doesn't belong to the type system, is
currently implemented on top of it as a "check" rule.
2022-08-01 14:11:38 +02:00
Fedor Isakov
ba7411abfa
Bump up plugin version and rebuild build scripts
2022-07-28 10:37:36 +02:00
Fedor Isakov
451529aa08
Cleanup imports
2022-07-28 10:30:38 +02:00
Fedor Isakov
f985db8206
Update and rebuild build scripts
2022-07-28 10:30:38 +02:00
Fedor Isakov
7fe773dcc2
Switch all type aspects in mpscore sample to typechecking terms
...
This includes dropping of Recover rule table and relying on
the automatic types recovery.
2022-07-28 10:30:38 +02:00
Fedor Isakov
e03f8d134b
Switch lambdac sample to typechecking queries
2022-07-28 10:30:37 +02:00
Fedor Isakov
8388edb4a5
Switch fitch sample to typechecking terms/queries
2022-07-28 10:30:37 +02:00
Fedor Isakov
0663921ecd
Refactoring in TypecheckingService; simplifying code
...
Request is no longer dependent on `TypecheckingService`.
Only single request can be processed at a time, which helps
prevent recursion.
All facade method in `TypecheckingService` now return instance
of `Response` instead.
2022-07-15 19:46:33 +02:00
Fedor Isakov
115135bbb5
Update plugin versions and manifests
2022-07-13 12:27:14 +02:00
Fedor Isakov
23502bafe7
Fix dangling import
2022-07-12 11:18:42 +02:00
Fedor Isakov
71d2014ef1
Update and rebuild build scripts
2022-07-07 12:56:30 +02:00
Fedor Isakov
f24169ba26
Refactor Config to be immutable; allow multi-project MPSCR-105
...
Drop hacks that try to figure out the active project.
Instead introduce new ones that cache the instance of `ProjectRepository`
(unfortunately, there is no way around that now).
Stop accessing and modifying the singleton `Config` instance,
instead make an instance of `Config` a parameter to `TypecheckingService`.
2022-07-07 12:56:30 +02:00
Fedor Isakov
735bd29d61
Update references and rebuild build scripts
2022-07-07 12:56:28 +02:00
Fedor Isakov
ea3e7c4719
Rebuild build scripts
2022-05-26 12:52:25 +02:00
Fedor Isakov
ed58f59794
Ensure all memo usages have unique keys
2022-05-26 09:55:21 +02:00
Fedor Isakov
cfcf6ecd81
Add dependency to j.m.build to enable plugin compatibility w/MPS
2022-05-11 11:37:20 +02:00
Fedor Isakov
85b0156c00
Remove erroneously added debug message
2022-04-27 11:42:02 +02:00
Fedor Isakov
9a312135cf
Rebuild build scripts
2022-04-26 11:40:28 +02:00
Fedor Isakov
bd249c5d0c
Drop obsolete feature: incremental specification
2022-04-21 16:05:31 +02:00
Fedor Isakov
dda4c9a7e6
Rebuild build projects
2022-03-16 12:32:42 +01:00
Fedor Isakov
c7c55605f5
Add dependency to c.i.modules.platform to pluigns
2022-02-23 13:09:34 +01:00
Fedor Isakov
a09dd24413
Fix plugin dependency to make compatible with MPS
2022-02-18 10:17:28 +01:00
Fedor Isakov
9cb04439eb
Fix packaging of coderules and mpscore plugins
...
Fix the path mapping of lib files.
2022-02-17 16:44:14 +01:00
Fedor Isakov
b2f97f25dd
Update mpscore plugin version and dependencies
2022-02-16 12:33:33 +01:00
Fedor Isakov
04048470c5
Fix processing of recursive types
...
Avoid failing to process composite types because
of visiting the same classifier.
2022-02-10 23:40:20 +01:00
Fedor Isakov
d7ffb963f7
Fix and rebuild build scripts
2022-02-08 10:44:48 +01:00
Fedor Isakov
041090d634
Fix module imports (new for 2021.3)
2022-02-08 10:44:48 +01:00
Fedor Isakov
0dcd48b42a
Rebuild project
2022-02-08 10:25:28 +01:00
Fedor Isakov
475944192b
Fix processing recursive types (BL)
2022-02-08 10:09:40 +01:00
Fedor Isakov
f2fedb0cb1
Rebuild project
2021-12-28 13:12:45 +01:00
Fedor Isakov
e98ae1a19d
Update build scripts to load 3rd-party-rt.jar
2021-12-28 11:09:44 +01:00
Fedor Isakov
4c8ffc0544
Add j.m.bl.classifiers language to the build
2021-11-16 12:04:32 +01:00
Fedor Isakov
6a834600c1
Add null guard NodeBuilder rule
2021-11-15 13:00:03 +01:00
Fedor Isakov
8e672897c5
Drop support for TypeHintExpression
2021-11-10 16:36:49 +01:00
Fedor Isakov
52e6eaf65d
Rebuild project
2021-10-27 12:03:49 +02:00
Fedor Isakov
509944c138
Fix typechecking of anonymous class with default ctor
2021-10-27 12:03:49 +02:00
Fedor Isakov
fedd56dd55
Extract correct classifier from anonymous class
2021-10-26 17:46:40 +02:00
Fedor Isakov
1ed5fa4e4b
Update build project
2021-09-22 17:08:25 +02:00
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
210f30be1b
Prefer node builder to quotation
2021-09-21 17:54:50 +02:00
Fedor Isakov
a5105e666a
Update build scripts
2021-09-21 17:54:50 +02:00
Fedor Isakov
f96211273c
Drop hack for finding refs in LateParameter, switch to internal var ref
2021-08-17 09:30:49 +02:00
Fedor Isakov
d941435963
Restore language module smodel.queryExt in the project
2021-08-17 09:30:48 +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
74ceb5cbfb
Types aspect for j.m.lang.typechecking (in Ext language)
2021-08-04 13:24:59 +02:00
Fedor Isakov
b1fbf7265e
Update plugin version and platform compatibility
2021-07-29 15:17:18 +02:00
Fedor Isakov
1b44d634b8
Rgenerate build scripts with MPS 2021.2 EAP
2021-07-29 14:46:40 +02:00
Fedor Isakov
c4db4fcafe
Set generator options: strict=false in build scripts
2021-07-29 14:18:29 +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
7e132a8604
Drop creating blockmap file
2021-07-22 13:59:19 +02:00
Fedor Isakov
d1f7932aae
Generate blockmap and hash for plugin update site
2021-06-29 18:10:21 +02:00
Fedor Isakov
bad065229f
Rebuild project
2021-06-29 18:10:21 +02:00
Fedor Isakov
17e1bc4589
Applied migration
2021-06-29 14:51:10 +02:00
Fedor Isakov
dd8c5ffb07
Introduce types aspect devkit and genplan
2021-06-29 14:51:10 +02:00
Fedor Isakov
9ea7ae2067
Better naming scheme for downloadable artefacts
2021-06-21 18:35:48 +02:00
Fedor Isakov
9826290f78
Fix building and packaging the plugins
2021-06-21 17:50:00 +02:00
Fedor Isakov
0b26d6cf7c
Package mpscore languages into a separate plugin
2021-06-18 18:41:01 +02:00
Fedor Isakov
9527a097b8
Migrate to the latest MPS release, apply migrations
2021-06-18 18:41:01 +02:00
Fedor Isakov
bcb4ea2499
Temporarily disable tricky to solve test case (nested generics)
2021-05-18 13:07:14 +02:00
Fedor Isakov
054ecf5c25
Adjust error annotations to reflect proper typechecking errors
2021-05-18 13:07:03 +02:00
Fedor Isakov
1e3c67949d
Fix BL types: conditional op, raw types, capture conversion
2021-05-18 13:07:03 +02:00
Fedor Isakov
632d33ed0f
Ensure the sample project is open with coderules plugin
2021-05-18 12:32: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
f434d34d95
Test integrating stream API and smodel
2021-05-18 12:32:03 +02:00
Fedor Isakov
0691ca6a1b
Drop last usage of "kind" feature
2021-05-13 15:54:44 +02:00
Fedor Isakov
f623846f6c
Fix function types: observe function type variance, drop wildcards
2021-05-13 15:54:44 +02:00
Fedor Isakov
6d655c4707
Update resolve info in models after renaming
2021-05-13 15:54:44 +02:00
Fedor Isakov
d9225a4516
Test code for smodel/stream sample
2021-05-13 15:54:44 +02:00
Fedor Isakov
bb4aa7e6e1
Fix sequence types: correctly process raw types
2021-05-13 15:54:44 +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
d5a91b91e5
Fix closures types: convertsTo of function type
...
Instead of solving convertsTo for function type in functional domain,
try to find the expected classifier type and solve for it instead.
2021-05-13 15:54:43 +02:00
Fedor Isakov
33476c837c
Minor fix coderules types: ensure correct incremental processing
2021-05-13 15:54:43 +02:00
Fedor Isakov
582d62749e
Minor fix generatorContext types: avoid exception on rule application
2021-05-13 15:54:43 +02:00
Fedor Isakov
fc7d97f015
Fix closures types: observe function type's inherent variance
2021-05-13 15:54:43 +02:00
Fedor Isakov
7e4eff91de
Fix smodel types: more precise conversion to/from classifier
2021-05-13 15:54:43 +02:00
Fedor Isakov
cba508dc01
Fix collections types: indexOf accepts Object
2021-05-13 15:54:43 +02:00
Fedor Isakov
2ae85d4dae
Types for j.m.lang.pattern language
2021-05-13 15:54:43 +02:00
Fedor Isakov
5a6db97aed
Types for j.m.lang.scopes language
2021-05-13 15:54:43 +02:00
Fedor Isakov
827089d8ae
Fix smodel types: ofconcept, attribute access, children
2021-05-13 15:54:43 +02:00
Fedor Isakov
abbbfe5141
Fix behaviour types: fix wrong term
2021-05-13 15:54:43 +02:00
Fedor Isakov
ab28b66981
Fix coderules types: avoid exception
2021-05-13 15:54:43 +02:00
Fedor Isakov
71cb954cba
Temporary stub for NamedTuple type, to be completed later
2021-05-13 15:54:43 +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
81d025298c
Update build script and rebuild
2021-05-04 11:07:14 +02:00
Fedor Isakov
5e4dfb249e
Add tests for type variables inference
2021-05-03 13:29:13 +02:00
Fedor Isakov
0194dcdfcc
Fix closure test failing after recent changes
2021-05-03 13:14:11 +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
e488399229
Minor refactoring in collections types
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