mirror of
https://github.com/carbon-language/carbon-lang.git
synced 2026-10-02 06:45:49 +01:00
Global variables (#378)
* global variables * implemented type checking of global variable, added test case * added a comment * improvements based on Dave's suggestions * improvements based on Jon's suggestions * added test cases about global variable ordering
This commit is contained in:
@@ -304,6 +304,14 @@ auto FunctionDeclaration::InitGlobals(Env& globals) const -> void {
|
||||
globals.Set(definition->name, a);
|
||||
}
|
||||
|
||||
// Adds an entry in `globals` mapping the variable's name to the
|
||||
// result of evaluating the initializer.
|
||||
auto VariableDeclaration::InitGlobals(Env& globals) const -> void {
|
||||
auto v = InterpExp(globals, initializer);
|
||||
Address a = AllocateValue(v);
|
||||
globals.Set(name, a);
|
||||
}
|
||||
|
||||
// { S, H} -> { { C, E, F} :: S, H}
|
||||
// where C is the body of the function,
|
||||
// E is the environment (functions + parameters + locals)
|
||||
|
||||
Reference in New Issue
Block a user