* start of generic classes
* fix regressions
* class functions in interfaces
* access to class function on interface from class parameter
* more stuff working for generic classes
* fixing bugs
* update TypeEqual for generic classes
* fixing bugs and finding new ones
* disable unqualified access to members from other members for now
* minor edits
* bug fixes
* introduce compile_time_value to use in type checker instead of constant_value
* cleanup
* put a CHECK back in
* failure test cases for the new FATAL_COMPILATION_ERROR
* change a runtime FATAL into a FATAL_COMPILATION_ERROR
* Update executable_semantics/ast/declaration.h
Co-authored-by: Jon Meow <jperkins@google.com>
* Update executable_semantics/interpreter/action_stack.cpp
Co-authored-by: Jon Meow <jperkins@google.com>
* Update executable_semantics/interpreter/interpreter.cpp
Co-authored-by: Jon Meow <jperkins@google.com>
* Update executable_semantics/interpreter/value.cpp
Co-authored-by: Jon Meow <jperkins@google.com>
* Update executable_semantics/interpreter/value.cpp
Co-authored-by: Jon Meow <jperkins@google.com>
* Update executable_semantics/interpreter/interpreter.cpp
Co-authored-by: Jon Meow <jperkins@google.com>
* Update executable_semantics/interpreter/value.cpp
Co-authored-by: Jon Meow <jperkins@google.com>
* Update executable_semantics/interpreter/value.cpp
Co-authored-by: Jon Meow <jperkins@google.com>
* Update executable_semantics/interpreter/resolve_names.cpp
Co-authored-by: Jon Meow <jperkins@google.com>
* Update executable_semantics/interpreter/type_checker.cpp
Co-authored-by: Jon Meow <jperkins@google.com>
* Update executable_semantics/interpreter/type_checker.cpp
Co-authored-by: Jon Meow <jperkins@google.com>
* Update executable_semantics/interpreter/type_checker.cpp
Co-authored-by: Jon Meow <jperkins@google.com>
* responses to reviews
* Update executable_semantics/interpreter/type_checker.cpp
Co-authored-by: Jon Meow <jperkins@google.com>
* rename compile_time_value to symbolic_identity
* Update executable_semantics/interpreter/type_checker.cpp
Co-authored-by: Jon Meow <jperkins@google.com>
* Update executable_semantics/interpreter/type_checker.cpp
Co-authored-by: Jon Meow <jperkins@google.com>
* Update executable_semantics/interpreter/type_checker.cpp
Co-authored-by: Jon Meow <jperkins@google.com>
* Update executable_semantics/interpreter/type_checker.cpp
Co-authored-by: Jon Meow <jperkins@google.com>
* Update executable_semantics/interpreter/type_checker.cpp
Co-authored-by: Jon Meow <jperkins@google.com>
* Update executable_semantics/interpreter/type_checker.cpp
Co-authored-by: Jon Meow <jperkins@google.com>
* Update executable_semantics/interpreter/value.cpp
Co-authored-by: Jon Meow <jperkins@google.com>
* Update executable_semantics/interpreter/value.cpp
Co-authored-by: Jon Meow <jperkins@google.com>
* Update executable_semantics/interpreter/value.cpp
Co-authored-by: Jon Meow <jperkins@google.com>
* more edits from review
* Apply suggestions from code review
Co-authored-by: Geoff Romer <gromer@google.com>
* review responses
* Update executable_semantics/interpreter/interpreter.cpp
Co-authored-by: Geoff Romer <gromer@google.com>
* const impl_scope for TypeCheckChoiceDeclaration
* add some const
Co-authored-by: Jon Meow <jperkins@google.com>
Co-authored-by: Geoff Romer <gromer@google.com>
* Modify parser and AST nodes to include let statement
* Implement let variables
* Remove redundant code in fail_match_choice test
* Add comment for has_value_category()
* Apply suggestions from code review
Co-authored-by: Jon Meow <46229924+jonmeow@users.noreply.github.com>
* clang-format changes
* Update comments for new BindingPattern methods
* Implement nested vars in patterns
* Apply suggestions from @geoffromer's code review
Co-authored-by: Geoff Romer <gromer@google.com>
* Implement changes from code review.
* Remove maybe_var_pattern grammar rule
Co-authored-by: Jon Meow <46229924+jonmeow@users.noreply.github.com>
Co-authored-by: Geoff Romer <gromer@google.com>
* adding methods to the ast
* pre commit stuff?
* implementation of class functions
* implemented methods
* some cleanup
* more cleanup
* add newlines in test programs
* pre-commit fixups
* added include of return_term.h
* a test of a method calling another method
* replacing Member with Declaration
* removing the member.h etc files
* clarify a type annotation
* update uses of FunctionDeclaration
* remove ReturnTarget, no longer needed
* more cleanup
* more cleanup
* yet more cleanup, playing with pre-commit
* did a pre-commit run --all-files
* fixed const issue
* remove comment
* checking dependencies in BUILD files and headers
* pre-commit working now
* refactor NominalClassType to just hold a pointer to the class declaration
* remove Member from rtti
* responding to Geoffreys review
* change field_types to a non-member function
As a byproduct, replace NamedEntity with a type-erasing wrapper NamedEntityView, eliminate virtual inheritance from the AST, and eliminate interfaces from gen_rtti.