aa8a5f174d
Replaced std::exit() with return Carbon::ErrorOr for expected errors like invalid syntax ( #1120 )
...
* Replaced std::exit() with return llvm::Expected/llvm::Error<T> for expected errors like invalid syntax.
* Use llvm::formatv() for formatting lexer error messages.
x
* Addresed merge errors.
* Fixed impl scope.
* Made ErrorBuilder::operator<< nodiscard, to catch code forgetting 'return' in 'return FATAL_COMPILATION_ERROR()'.
* FatalComplationError() -> ParseAndLexContext::RecordLexerError().
Other usages of ERROR_TOKEN in lexer.lpp were actually supposed to be END_OF_FILE.
* Update executable_semantics/syntax/parse_and_lex_context.h
Co-authored-by: Jon Meow <jperkins@google.com >
* Code review fixes.
* Update executable_semantics/syntax/parser.ypp
Co-authored-by: Jon Meow <jperkins@google.com >
* More code review fixes.
* Update executable_semantics/interpreter/type_checker.h
Co-authored-by: Jon Meow <jperkins@google.com >
* Yet more code review fixes...
* Update executable_semantics/syntax/lexer.lpp
Co-authored-by: Jon Meow <jperkins@google.com >
* code review comments
* Update executable_semantics/interpreter/interpreter.cpp
Co-authored-by: Geoff Romer <gromer@google.com >
* Apply suggestions from code review
Co-authored-by: Jon Meow <jperkins@google.com >
* Update executable_semantics/syntax/lexer.lpp
Co-authored-by: Jon Meow <jperkins@google.com >
* code review
* code review
* Apply suggestions from code review
Co-authored-by: Jon Meow <jperkins@google.com >
* formatted code
* review comments
* Switched to the new ErrorOr<V> error implementation
* code review comments
* fixed comment
* restored ostream.h as #976 makes the change unnecesary
* review comments
Co-authored-by: Jon Meow <jperkins@google.com >
Co-authored-by: Geoff Romer <gromer@google.com >
2022-03-22 16:17:04 -04:00
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
Geoff Romer and Jon Meow
c311c8849c
Use static name resolution in Interpreter ( #1022 )
...
Co-authored-by: Jon Meow <46229924+jonmeow@users.noreply.github.com >
2022-01-21 09:48:11 -08:00
Geoff Romer
461e178273
Store named constant values in the AST ( #1011 )
...
This enables us to stop using `Env` in the typechecker. As a byproduct, this commit also restructures the interpreter to handle run-time global initialization as part of ordinary execution, using the Action stack.
2022-01-13 11:07:28 -08:00
Geoff Romer
9642d7ad05
Factor out ActionStack from Interpreter ( #951 )
2021-11-17 12:59:16 -08:00