Goose  Diff

Differences From Artifact [9bf5074352]:

  • File bs/sema/uni-context.cpp — part of check-in [06b4cded56] at 2019-03-25 22:39:47 on branch trunk — Higher order functions: it is now possible to bind a template lambda to a function typed parameter. (user: achavasse size: 2294)

To Artifact [512eeed115]:

  • File bs/sema/uni-context.cpp — part of check-in [ecf8c6820f] at 2019-03-30 16:28:15 on branch trunk —
    • Fixed the conversion of a type type value to an ir expression.
    • Fixed anonymous holes not being counted in unification scores.
    (user: achavasse size: 2380)

46
47
48
49
50
51
52


53

54
55
56
57
58
59
60
61


62

63
64
65
66
67
68
69
    ++m_numUnknownValues;
    return index;
}

void UnificationContext::setLHSHoleIndex( const StringId& name, uint32_t index )
{
    if( name == "_"_sid )


        return;


    HoleName holeName( name, m_currentLHSNamespaceIndex );
    CoW( m_pCow )->holeDict.emplace( holeName, index );
}

void UnificationContext::setRHSHoleIndex( const StringId& name, uint32_t index )
{
    if( name == "_"_sid )


        return;


    HoleName holeName( name, m_currentRHSNamespaceIndex );
    CoW( m_pCow )->holeDict.emplace( holeName, index );
}

void UnificationContext::eraseLHSName( const StringId& name )
{







>
>

>








>
>

>







46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
    ++m_numUnknownValues;
    return index;
}

void UnificationContext::setLHSHoleIndex( const StringId& name, uint32_t index )
{
    if( name == "_"_sid )
    {
        ++m_numAnonymousHoles;
        return;
    }

    HoleName holeName( name, m_currentLHSNamespaceIndex );
    CoW( m_pCow )->holeDict.emplace( holeName, index );
}

void UnificationContext::setRHSHoleIndex( const StringId& name, uint32_t index )
{
    if( name == "_"_sid )
    {
        ++m_numAnonymousHoles;
        return;
    }

    HoleName holeName( name, m_currentRHSNamespaceIndex );
    CoW( m_pCow )->holeDict.emplace( holeName, index );
}

void UnificationContext::eraseLHSName( const StringId& name )
{