7cce1bd124
interfaces, impls, and constrained generics (basics) ( #1073 )
...
* interfaces, impls, and constrained generics (basics)
* separate type checking into declare vs. type check, removing redundancy
* external impls
* added impl scopes to handle generics calling generics
* cleanup
* more cleanup
* Update executable_semantics/testdata/interface/external_impl_point_vector.carbon
Co-authored-by: josh11b <josh11b@users.noreply.github.com >
* Update executable_semantics/testdata/interface/generic_call_generic.carbon
Co-authored-by: josh11b <josh11b@users.noreply.github.com >
* Update executable_semantics/testdata/interface/tuple_vector_add_scale.carbon
Co-authored-by: josh11b <josh11b@users.noreply.github.com >
* Update executable_semantics/testdata/interface/vector_point_add_scale.carbon
Co-authored-by: josh11b <josh11b@users.noreply.github.com >
* change ImplementationDeclaration to ImplDeclaration
* remove impl_type_value
* split NamedEntity into two
* changed GetName to be a free function
* adding comments
* more edits to respond to review
* introduce ImplBinding, remove punning on GenericBinding
* new test case and some minor edits
* refactor GetMember and GetField to move impl logic to interpreter
* remove commennt
* change EntityView to ImplBinding in FieldAccess...
* move ImplBinding
* review response
* added example to impl_scope.h
* minor edits
* Update executable_semantics/interpreter/field_path.h
Co-authored-by: Geoff Romer <gromer@google.com >
* Update executable_semantics/interpreter/value.cpp
Co-authored-by: Geoff Romer <gromer@google.com >
* Update executable_semantics/interpreter/interpreter.cpp
Co-authored-by: Geoff Romer <gromer@google.com >
* Update executable_semantics/ast/expression.h
Co-authored-by: Geoff Romer <gromer@google.com >
* Update executable_semantics/ast/expression.h
Co-authored-by: Geoff Romer <gromer@google.com >
* Update executable_semantics/ast/generic_binding.h
Co-authored-by: Geoff Romer <gromer@google.com >
* more edits from review
* review response
* Update executable_semantics/ast/static_scope.h
Co-authored-by: Geoff Romer <gromer@google.com >
* remove ImplType, renamed node_view to value_node
Co-authored-by: josh11b <josh11b@users.noreply.github.com >
Co-authored-by: Geoff Romer <gromer@google.com >
2022-03-02 15:58:45 -05:00
Jeremy G. Siek
ac0b810bf3
Adds basic support for class functions and methods. ( #1057 )
...
* 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
2022-02-05 12:30:13 -05:00
Geoff Romer
8e6c209a28
Use resolved names in typechecker ( #974 )
...
As a byproduct, replace NamedEntity with a type-erasing wrapper NamedEntityView, eliminate virtual inheritance from the AST, and eliminate interfaces from gen_rtti.
2021-12-13 16:35:30 -08:00
Geoff Romer
f75b4d322f
Handle use-before-declare in static name lookup ( #967 )
...
Also remove inheritance from NamedEntity for some classes that don't need it.
2021-12-03 13:52:31 -08:00
Geoff Romer and Jon Meow
dc5e62fc7a
Support parsing and testing unimplemented expressions ( #957 )
...
Co-authored-by: Jon Meow <46229924+jonmeow@users.noreply.github.com >
2021-11-30 12:29:15 -08:00
Geoff Romer
7a5b8434c8
Define a base class for all AST nodes. ( #947 )
...
Also implement code-generation to manage the resulting boilerplate.
2021-11-16 11:54:47 -08:00