Search in sources :

Example 1 with DeclProperties

use of mb.nabl2.constraints.namebinding.DeclProperties in project nabl by metaborg.

the class Solution method findAndLock.

@Override
public ISolution findAndLock() {
    final IProperties.Transient<TermIndex, ITerm, ITerm> astProperties = astProperties().melt();
    astProperties.mapValues(unifier()::findRecursive);
    final IProperties.Transient<Occurrence, ITerm, ITerm> declProperties = declProperties().melt();
    declProperties.mapValues(unifier()::findRecursive);
    final ISymbolicConstraints symbolic = symbolic().map(unifier()::findRecursive);
    return ImmutableSolution.builder().from(this).astProperties(astProperties.freeze()).declProperties(declProperties.freeze()).symbolic(symbolic).build();
}
Also used : ISymbolicConstraints(mb.nabl2.symbolic.ISymbolicConstraints) ITerm(mb.nabl2.terms.ITerm) IProperties(mb.nabl2.util.collections.IProperties) Occurrence(mb.nabl2.scopegraph.terms.Occurrence) TermIndex(mb.nabl2.stratego.TermIndex)

Aggregations

Occurrence (mb.nabl2.scopegraph.terms.Occurrence)1 TermIndex (mb.nabl2.stratego.TermIndex)1 ISymbolicConstraints (mb.nabl2.symbolic.ISymbolicConstraints)1 ITerm (mb.nabl2.terms.ITerm)1 IProperties (mb.nabl2.util.collections.IProperties)1