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 |
||
|---|---|---|
| .. | ||
| .mps | ||
| languages | ||
| solutions | ||
| README.md | ||
| build.gradle | ||
| build.xml | ||
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:
- Type system
- 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:
- Follow the instructions for building the root project, or
- 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.