Goose  Diff

Differences From Artifact [0e1f31680e]:

  • File bs/builtins/types/decl.cpp — part of check-in [0e66d22527] at 2019-03-30 15:30:31 on branch trunk —
    • Changed type's type representation to be able to pass types around as value anywhere.
    • Fixed a bunch of bugs.
    (user: achavasse size: 1193)

To Artifact [4daf21b679]:

  • File bs/builtins/types/decl.cpp — part of check-in [90ab7b489f] at 2019-08-08 14:29:05 on branch trunk — Implemented the assignment operator of an expression to a decl of the same type, which declares and initialize a local variable. (user: achavasse size: 1401)

12
13
14
15
16
17
18








19
20
21
22
23
24
25
                Lit( "decl"_sid ),
                SubTerm()
            )
        );

        return !!result;
    }








}

namespace empathy::ir
{
    Term Bridge< Decl >::Type( const Term& declType )
    {
        return ValueToIRExpr( Value( TypeType(), TVEC( TSID( decl ), declType ) ) );







>
>
>
>
>
>
>
>







12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
                Lit( "decl"_sid ),
                SubTerm()
            )
        );

        return !!result;
    }

    const Term& Decl::PatternTypeT::GetPattern()
    {
        static auto pattern = ValueToIRExpr(
            Value( TypeType(), TVEC( TSID( decl ), MkHole( "T"_sid ) ) ) );

        return pattern;
    }
}

namespace empathy::ir
{
    Term Bridge< Decl >::Type( const Term& declType )
    {
        return ValueToIRExpr( Value( TypeType(), TVEC( TSID( decl ), declType ) ) );