mirror of
https://github.com/carbon-language/carbon-lang.git
synced 2026-09-24 22:02:23 +01:00
Previously we walked the global variables defined by the current file and emitted an LLVM global variable definition for each of them. Now instead, when emitting a constant reference to a global variable, we emit an LLVM global variable declaration, and we then subsequently walk the global variables defined by the current file and convert each of them from a declaration to a definition. In order to make import of names of global variables work, add support for import of `var`, as well as support for importing `tuple_access` and `tuple_pattern` in the case where the `var` has a tuple pattern in its declaration. Also treat `bind_name`s that are reference bindings to `var`s as having the same constant reference value as their `var` so that we can properly import and lower them. --------- Co-authored-by: Jon Ross-Perkins <jperkins@google.com> Co-authored-by: Carbon Infra Bot <carbon-external-infra@google.com>