Goose  Diff

Differences From Artifact [c254d75499]:

  • File bs/codegen/codegen.h — part of check-in [7d2def7b75] at 2020-12-27 14:40:24 on branch trunk — Renamed "ir" to "eir" (expression intermediate representation) and "llr" to "cir" (code intermediate representation) for clarity. (user: achavasse size: 561)

To Artifact [d09f881dc0]:

  • File bs/codegen/codegen.h — part of check-in [3cf6ab5249] at 2021-03-04 21:47:51 on branch trunk —
    • Refactored and simplified the way integer and string constants are handled: we no longer try to resolve them during typechecking, this breaks when parametric types are involved and also it makes no sense, typechecking is about types, not values
    • Fixed multiple places where locationIds weren't propagated
    • Verifier: variable assignments now verify the destination variable type's refinement conditions
    • Fixed a test where the above change detected a bug, kept the bugged version as a new verification failure test
    (user: achavasse size: 585)

10
11
12
13
14
15
16

17
18
19
20
21
22
23
#include "cir/cir.h"
#include "sema/sema.h"

namespace goose::builtins
{
    class Func;
    class FuncType;

}

namespace goose::codegen
{
    using namespace eir;
    using namespace cir;
    using namespace sema;







>







10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include "cir/cir.h"
#include "sema/sema.h"

namespace goose::builtins
{
    class Func;
    class FuncType;
    struct PointerType;
}

namespace goose::codegen
{
    using namespace eir;
    using namespace cir;
    using namespace sema;