Clarify and simplify handling of lvalues (#956)

- Rename `PointerValue` to `LValue` to reflect how it's actually used. We can introduce a `PointerValue` type when we add support for actual pointer values.
- Remove support for pattern assignment. It's unclear if Carbon will support this, and even if we do, it raises questions that should first be addressed in a language proposal, like "is the left-hand side of `(x, y) = (1, 2)` an lvalue, or a pattern, or both, or something else entirely?"
This commit is contained in:
Geoff Romer
2021-11-23 14:13:08 -08:00
committed by GitHub
parent 6ae85bd13a
commit 3f7e1cd3fb
7 changed files with 25 additions and 110 deletions
+1 -2
View File
@@ -132,8 +132,7 @@ class Action {
};
// An Action which implements evaluation of an Expression to produce an
// lvalue. The result be expressed as a PointerValue which points to the
// Expression's value.
// LValue.
class LValAction : public Action {
public:
explicit LValAction(Nonnull<const Expression*> expression)