mps-coderules/samples/mpscore
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
..
.mps Apply migrations to mpscore sub-project 2022-11-23 14:03:18 +01:00
languages Redo fix of closure param type inference, drop typeScheme/2 2022-11-23 14:03:19 +01:00
solutions Apply migrations to mpscore sub-project 2022-11-23 14:03:18 +01:00
README.md Update readme files. 2018-07-19 15:12:34 +02:00
build.gradle Update mpscore plugin version and dependencies 2022-02-16 12:33:33 +01:00
build.xml Bump up plugin versions 2022-11-21 11:25:03 +01:00

README.md

MPSCORE

This project contains sample applications of coderules framework providing the implementations of source code analysis for baseLanguage and its extensions.

The two aspects are implemented here:

  1. Type system
  2. Control flow

Installation

The code in this project relies on coderules languages and solutions to be available, either as a project library or as a plugin. There are two possibilities to install coderules:

  1. Follow the instructions for building the root project, or
  2. Install the compiled plugin (see the latest release on GitHub).

License

Copyright 2014-2018 JetBrains s.r.o.

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.