mps-coderules/samples/mpscore
Grigorii Kirgizov f9ca9f2766 Handle usedDataHash computation for macros
Fixes IncrClosureInference.changeFunctionalInterfaceParam test.
Temporary rules built as macro applications weren't computing hash
due to origin!=null condition. Also macro inputs weren't processed.

Stable hash for TypeVarSubstitution is defined because it's used in macro args.
In general, any classes used as constraint/predicate/macro args
must adhere to stable hashCode() contract: hash should change
if there're important changes that may influence typechecking result.
Otherwise there may be unnecessary incremental recomputations.
Relevant for MPSCR-62
2020-07-01 14:36:48 +03:00
..
.mps Apply automatic migrations to mpscore subproject 2019-01-13 14:27:38 +01:00
languages Handle usedDataHash computation for macros 2020-07-01 14:36:48 +03:00
solutions minor: fix mistake in IncrClosureInference.changeFunctionalInterfaceParams test 2020-07-01 14:36:48 +03:00
README.md Update readme files. 2018-07-19 15:12:34 +02:00
build.gradle Attempt to fix gradle task deps graph. 2020-04-13 18:00:15 +02:00
build.xml Move Result class to commonly-used runtime solution. 2020-06-25 14:30:30 +02: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.