586a2d7972 
								
							 
						 
						
							
							
								
								Add recursive_static_params to AIR  
							
							... 
							
							
							
							Any methods to a recursive function that are unchanged and forwarded
don't need to be applied each time we recurse; instead, you can
define a containing lambda, reducing the number of applications
dramatically when recursing 
							
						 
						
							2023-08-07 19:00:39 -04:00  
				
					
						
							
							
								 
						
							
								1d9878c5ee 
								
							 
						 
						
							
							
								
								fix: code gen tests now up to date using trace  
							
							... 
							
							
							
							fix: Formatter should take ErrorTerm and return "fail"
fix: fail with no reason should just return ErrorTerm 
							
						 
						
							2023-08-07 12:02:44 -04:00  
				
					
						
							
							
								 
						
							
								29599879b2 
								
							 
						 
						
							
							
								
								one minor tail fix in clause pattern  
							
							
							
						 
						
							2023-08-07 12:02:44 -04:00  
				
					
						
							
							
								 
						
							
								6a1b2db698 
								
							 
						 
						
							
							
								
								use retain instead of position  
							
							
							
						 
						
							2023-08-07 12:02:44 -04:00  
				
					
						
							
							
								 
						
							
								7bf22fa58b 
								
							 
						 
						
							
							
								
								fix multivalidator issue  
							
							
							
						 
						
							2023-08-07 12:02:44 -04:00  
				
					
						
							
							
								 
						
							
								281a8363c0 
								
							 
						 
						
							
							
								
								fixes to tuples and usage of discard.  
							
							... 
							
							
							
							Also a fix to tail and its type in when list pattern matches 
							
						 
						
							2023-08-07 12:02:44 -04:00  
				
					
						
							
							
								 
						
							
								bfa4cc2efc 
								
							 
						 
						
							
							
								
								fix: some function dependency tree path was not being updated in order  
							
							... 
							
							
							
							fix: revert to old implicit way of casting to data for now 
							
						 
						
							2023-08-07 12:02:44 -04:00  
				
					
						
							
							
								 
						
							
								a45ff692a6 
								
							 
						 
						
							
							
								
								last changes for today  
							
							
							
						 
						
							2023-08-07 12:02:44 -04:00  
				
					
						
							
							
								 
						
							
								db79468435 
								
							 
						 
						
							
							
								
								remove old stuff  
							
							
							
						 
						
							2023-08-07 12:02:44 -04:00  
				
					
						
							
							
								 
						
							
								aca79bd728 
								
							 
						 
						
							
							
								
								remove warning  
							
							
							
						 
						
							2023-08-07 12:02:44 -04:00  
				
					
						
							
							
								 
						
							
								3189a60bdb 
								
							 
						 
						
							
							
								
								fixes to how we sort dependencies.  
							
							... 
							
							
							
							Also update dependency path based on a functions path. 
							
						 
						
							2023-08-07 12:02:44 -04:00  
				
					
						
							
							
								 
						
							
								80b950b8aa 
								
							 
						 
						
							
							
								
								fix edge case with assign and pattern matching  
							
							
							
						 
						
							2023-08-07 12:02:44 -04:00  
				
					
						
							
							
								 
						
							
								186e1235fd 
								
							 
						 
						
							
							
								
								checkpoint  
							
							
							
						 
						
							2023-08-07 12:02:44 -04:00  
				
					
						
							
							
								 
						
							
								1ee7492f1f 
								
							 
						 
						
							
							
								
								fix tuple clause  
							
							
							
						 
						
							2023-08-07 12:02:44 -04:00  
				
					
						
							
							
								 
						
							
								5aecb96668 
								
							 
						 
						
							
							
								
								constants are back. I had broke them when switching how data casting works  
							
							
							
						 
						
							2023-08-07 12:02:44 -04:00  
				
					
						
							
							
								 
						
							
								0b8266dfd1 
								
							 
						 
						
							
							
								
								some type conversion fixes  
							
							
							
						 
						
							2023-08-07 12:02:44 -04:00  
				
					
						
							
							
								 
						
							
								02948616cd 
								
							 
						 
						
							
							
								
								some more fixes involving clauses  
							
							
							
						 
						
							2023-08-07 12:02:44 -04:00  
				
					
						
							
							
								 
						
							
								a689b8748f 
								
							 
						 
						
							
							
								
								fix: working on minor edge cases  
							
							... 
							
							
							
							fix: zero arg function dependencies should not count as hoisted
fix: tuple index was receiving the wrong type 
							
						 
						
							2023-08-07 12:02:44 -04:00  
				
					
						
							
							
								 
						
							
								4e3ced5b75 
								
							 
						 
						
							
							
								
								fix and clean up tests and handle  
							
							... 
							
							
							
							one edge case on rearrange clauses 
							
						 
						
							2023-08-07 12:02:44 -04:00  
				
					
						
							
							
								 
						
							
								018453f6b1 
								
							 
						 
						
							
							
								
								fix expect on tuple type using the wrong internal type  
							
							
							
						 
						
							2023-08-07 12:02:44 -04:00  
				
					
						
							
							
								 
						
							
								f03ed41e03 
								
							 
						 
						
							
							
								
								fix some unnecessary lambdas in assign  
							
							
							
						 
						
							2023-08-07 12:02:44 -04:00  
				
					
						
							
							
								 
						
							
								03dd13dc7d 
								
							 
						 
						
							
							
								
								fixing list condition edge cases and clean up rearrange list clauses  
							
							
							
						 
						
							2023-08-07 12:02:44 -04:00  
				
					
						
							
							
								 
						
							
								e8fa8f5423 
								
							 
						 
						
							
							
								
								fixing list clause issues  
							
							
							
						 
						
							2023-08-07 12:02:44 -04:00  
				
					
						
							
							
								 
						
							
								c6f90a999b 
								
							 
						 
						
							
							
								
								checkpoint  
							
							
							
						 
						
							2023-08-07 12:02:44 -04:00  
				
					
						
							
							
								 
						
							
								389699f485 
								
							 
						 
						
							
							
								
								fix to subject type for assignment on single clause  
							
							
							
						 
						
							2023-08-07 12:02:44 -04:00  
				
					
						
							
							
								 
						
							
								dcb3a9b45b 
								
							 
						 
						
							
							
								
								some type and expect fixes  
							
							
							
						 
						
							2023-08-07 12:02:44 -04:00  
				
					
						
							
							
								 
						
							
								3545bad3c4 
								
							 
						 
						
							
							
								
								fix typing to constr  
							
							
							
						 
						
							2023-08-07 12:02:44 -04:00  
				
					
						
							
							
								 
						
							
								52ebc9b6c1 
								
							 
						 
						
							
							
								
								some more fixes  
							
							
							
						 
						
							2023-08-07 12:02:44 -04:00  
				
					
						
							
							
								 
						
							
								58b327e5b3 
								
							 
						 
						
							
							
								
								fixing bugs and edge cases  
							
							
							
						 
						
							2023-08-07 12:02:44 -04:00  
				
					
						
							
							
								 
						
							
								2f4319f162 
								
							 
						 
						
							
							
								
								fix: tuples and list patterns had a few issues  
							
							
							
						 
						
							2023-08-07 12:02:44 -04:00  
				
					
						
							
							
								 
						
							
								960a15c4ec 
								
							 
						 
						
							
							
								
								checkpoint - fixing tests and stuff  
							
							
							
						 
						
							2023-08-07 12:02:44 -04:00  
				
					
						
							
							
								 
						
							
								72b6f0f847 
								
							 
						 
						
							
							
								
								all but six tests passing  
							
							
							
						 
						
							2023-08-07 12:02:44 -04:00  
				
					
						
							
							
								 
						
							
								6eeb282dee 
								
							 
						 
						
							
							
								
								Now code gen is finished and we just have testing  
							
							
							
						 
						
							2023-08-07 12:02:44 -04:00  
				
					
						
							
							
								 
						
							
								518bea5be4 
								
							 
						 
						
							
							
								
								feat: fixed up generate and generate test  
							
							... 
							
							
							
							last step is checking on uplc code gen 
							
						 
						
							2023-08-07 12:02:44 -04:00  
				
					
						
							
							
								 
						
							
								18ea44adb0 
								
							 
						 
						
							
							
								
								chore: rename unwrapData and wrapData  
							
							... 
							
							
							
							add validator cast function for extra validator params 
							
						 
						
							2023-08-07 12:02:44 -04:00  
				
					
						
							
							
								 
						
							
								55dd1a1a56 
								
							 
						 
						
							
							
								
								out with the old code and in with the air tree  
							
							
							
						 
						
							2023-08-07 12:02:44 -04:00  
				
					
						
							
							
								 
						
							
								02ce3761ae 
								
							 
						 
						
							
							
								
								final checkpoint  
							
							
							
						 
						
							2023-08-07 12:02:44 -04:00  
				
					
						
							
							
								 
						
							
								8641c305f4 
								
							 
						 
						
							
							
								
								feat: airtree now hoists function. Now all that is left is finishing uplc gen  
							
							
							
						 
						
							2023-08-07 12:02:44 -04:00  
				
					
						
							
							
								 
						
							
								5ad8b520fd 
								
							 
						 
						
							
							
								
								checkpoint  
							
							
							
						 
						
							2023-08-07 12:02:44 -04:00  
				
					
						
							
							
								 
						
							
								5a51764cff 
								
							 
						 
						
							
							
								
								remove some warnings  
							
							
							
						 
						
							2023-08-07 12:02:44 -04:00  
				
					
						
							
							
								 
						
							
								a099c01734 
								
							 
						 
						
							
							
								
								feat: add support for hoisting code gen functions  
							
							... 
							
							
							
							fix: code gen vars should be module functions
fix: missed a recursive call in do_find_air_tree_node under binop 
							
						 
						
							2023-08-07 12:02:44 -04:00  
				
					
						
							
							
								 
						
							
								c0f09856d3 
								
							 
						 
						
							
							
								
								feat: Here's a first, we hoisted some user functions onto the validator  
							
							
							
						 
						
							2023-08-07 12:02:44 -04:00  
				
					
						
							
							
								 
						
							
								62660e04b5 
								
							 
						 
						
							
							
								
								checkpoint;  
							
							... 
							
							
							
							Remaining work is on function hoisting. Functions have been defined and monomorphized 
							
						 
						
							2023-08-07 12:02:44 -04:00  
				
					
						
							
							
								 
						
							
								ae9de11e77 
								
							 
						 
						
							
							
								
								big checkpoint:  
							
							... 
							
							
							
							feat: add monomorphize and other useful tree function abstractions
feat: started testing function hositing result so far 
							
						 
						
							2023-08-07 12:02:44 -04:00  
				
					
						
							
							
								 
						
							
								947c118175 
								
							 
						 
						
							
							
								
								checkpoint  
							
							
							
						 
						
							2023-08-07 12:02:44 -04:00  
				
					
						
							
							
								 
						
							
								9704cafefe 
								
							 
						 
						
							
							
								
								a checkpoint for function hoisting start and type fix  
							
							
							
						 
						
							2023-08-07 12:02:44 -04:00  
				
					
						
							
							
								 
						
							
								55ae708e3e 
								
							 
						 
						
							
							
								
								checkpoint: start on function hoisting  
							
							
							
						 
						
							2023-08-07 12:02:44 -04:00  
				
					
						
							
							
								 
						
							
								2b7e7ead1c 
								
							 
						 
						
							
							
								
								feat: add support for validator arguments  
							
							... 
							
							
							
							feat: finish expect type on data constr
fix: tuple clause was exposing all items regardless of discard
fix: tuple clause was not receiving complex_clause flag
fix: condition for assert where constructor had 0 args was tripping assert
fix: had to rearrange var and discard assignment to ensure correct val is returned
fix: binop had the wrong type 
							
						 
						
							2023-08-07 12:02:44 -04:00  
				
					
						
							
							
								 
						
							
								7d4e136467 
								
							 
						 
						
							
							
								
								checkpoint  
							
							
							
						 
						
							2023-08-07 12:02:44 -04:00  
				
					
						
							
							
								 
						
							
								fd83c9a739 
								
							 
						 
						
							
							
								
								feat: fix up generic type functions to work with the new air tree functions  
							
							... 
							
							
							
							chore: remove commented code 
							
						 
						
							2023-08-07 12:02:44 -04:00  
				
					
						
							
							
								 
						
							
								b3714ca9d0 
								
							 
						 
						
							
							
								
								fix: list clause guard for final clause needs to use list accessor  
							
							
							
						 
						
							2023-08-07 12:02:44 -04:00  
				
					
						
							
							
								 
						
							
								2c61ecd4bb 
								
							 
						 
						
							
							
								
								feat: finish up nested clauses  
							
							
							
						 
						
							2023-08-07 12:02:44 -04:00  
				
					
						
							
							
								 
						
							
								a3afb62861 
								
							 
						 
						
							
							
								
								chore: fixing nested clauses to match aiken stack air  
							
							
							
						 
						
							2023-08-07 12:02:44 -04:00  
				
					
						
							
							
								 
						
							
								95af421f95 
								
							 
						 
						
							
							
								
								feat: finish tuple conditions  
							
							
							
						 
						
							2023-08-07 12:02:44 -04:00  
				
					
						
							
							
								 
						
							
								05b6b2a97d 
								
							 
						 
						
							
							
								
								chore: rename some functions  
							
							
							
						 
						
							2023-08-07 12:02:44 -04:00  
				
					
						
							
							
								 
						
							
								c025073056 
								
							 
						 
						
							
							
								
								fix: List clauses were destructuring the next element unnecessarily  
							
							... 
							
							
							
							feat: finish nested constructor clauses 
							
						 
						
							2023-08-07 12:02:44 -04:00  
				
					
						
							
							
								 
						
							
								f6e163d16d 
								
							 
						 
						
							
							
								
								feat: start on nested clauses  
							
							... 
							
							
							
							chore: remove then field from list clause guard and clause guard 
							
						 
						
							2023-08-07 12:02:44 -04:00  
				
					
						
							
							
								 
						
							
								5bcc425f0f 
								
							 
						 
						
							
							
								
								feat: changed air expressions clause guard  
							
							... 
							
							
							
							and list clause guard to air statements 
							
						 
						
							2023-08-07 12:02:44 -04:00  
				
					
						
							
							
								 
						
							
								023be88bf6 
								
							 
						 
						
							
							
								
								chore: another checkpoint  
							
							... 
							
							
							
							fix: guard clause to properly check condition 
							
						 
						
							2023-08-07 12:02:44 -04:00  
				
					
						
							
							
								 
						
							
								f94c8213b6 
								
							 
						 
						
							
							
								
								checkpoint  
							
							
							
						 
						
							2023-08-07 12:02:44 -04:00  
				
					
						
							
							
								 
						
							
								0854d71836 
								
							 
						 
						
							
							
								
								chore: another checkpoint and renamed ClauseProperties fields  
							
							
							
						 
						
							2023-08-07 12:02:44 -04:00  
				
					
						
							
							
								 
						
							
								d731757123 
								
							 
						 
						
							
							
								
								feat: start on clauses in when conditions  
							
							... 
							
							
							
							**checkpoint** 
							
						 
						
							2023-08-07 12:02:44 -04:00  
				
					
						
							
							
								 
						
							
								96959011e9 
								
							 
						 
						
							
							
								
								feat: finish up build. just have helper methods  
							
							... 
							
							
							
							feat: Create an air and AirTree iterator.
This allows us to iterate forwards or backwards over the tree as a vec.
chore: moved around some functions 
							
						 
						
							2023-08-07 12:02:44 -04:00  
				
					
						
							
							
								 
						
							
								ba3265054c 
								
							 
						 
						
							
							
								
								chore: move tree to gen_uplc2 and create a duplicate air file without scope  
							
							
							
						 
						
							2023-08-07 12:02:44 -04:00  
				
					
						
							
							
								 
						
							
								7cee9a4d15 
								
							 
						 
						
							
							
								
								chore: move assignment_air_tree and expect_type to gen_uplc  
							
							... 
							
							
							
							feat: add is_primitive check to types 
							
						 
						
							2023-08-07 12:02:44 -04:00  
				
					
						
							
							
								 
						
							
								cd726b561e 
								
							 
						 
						
							
							
								
								feat: add removal of discard lets  
							
							... 
							
							
							
							chore: Name change for AirTree sequence
feat: finish up assignment  constructor and list for airtree builder 
							
						 
						
							2023-08-07 12:02:44 -04:00  
				
					
						
							
							
								 
						
							
								59362e3d8c 
								
							 
						 
						
							
							
								
								feat: almost done assignment have tuple and constr left  
							
							... 
							
							
							
							feat: modified the AirTree structure to have statements, sequences, and expressions
feat: changed the hoist_over function to be universal 
							
						 
						
							2023-08-07 12:02:44 -04:00  
				
					
						
							
							
								 
						
							
								65bb7e48e2 
								
							 
						 
						
							
							
								
								feat: start on build assignment  
							
							... 
							
							
							
							feat: implement assignment hoisting 
							
						 
						
							2023-08-07 12:02:44 -04:00  
				
					
						
							
							
								 
						
							
								c359bd35d7 
								
							 
						 
						
							
							
								
								feat: update tree to allow for let hoisting  
							
							... 
							
							
							
							feat: start on build for when expressions
feat: add builder methods for AirTree 
							
						 
						
							2023-08-07 12:02:44 -04:00  
				
					
						
							
							
								 
						
							
								83ade9335f 
								
							 
						 
						
							
							
								
								feat: implement most of airtree build  
							
							
							
						 
						
							2023-08-07 12:02:44 -04:00  
				
					
						
							
							
								 
						
							
								5e097d42ba 
								
							 
						 
						
							
							
								
								feat: add AirTree types and builder functions  
							
							
							
						 
						
							2023-08-07 12:02:44 -04:00  
				
					
						
							
							
								 
						
							
								266b6bbb7d 
								
							 
						 
						
							
							
								
								fix(exhaustiveness): for constructor use correct name because import aliases  
							
							
							
						 
						
							2023-08-03 16:28:47 -04:00  
				
					
						
							
							
								 
						
							
								60ac8ab591 
								
							 
						 
						
							
							
								
								fix(exhaustiveness): adjust helper method to get contructors properly  
							
							
							
						 
						
							2023-08-03 16:14:42 -04:00  
				
					
						
							
							
								 
						
							
								675b737898 
								
							 
						 
						
							
							
								
								Check exhaustiveness behavior on pattern guards.  
							
							
							
						 
						
							2023-08-02 10:40:59 +02:00  
				
					
						
							
							
								 
						
							
								4f7f39292d 
								
							 
						 
						
							
							
								
								Fix subtle bug in pattern rendering  
							
							... 
							
							
							
							When rendering missing or redundant patterns, linked-list would
  wrongly suggest the last nil constructor as a pattern on non-empty
  list.
  For example, before this commit, the exhaustivness checker would yield:
  ```
  [(_, True), []]
  ```
  as a suggestion, for being the result of being a list pattern with a
  single argument being `(_, True) :: Nil`. Blindly following the
  compiler suggestion here would cause a type unification error (since
  `[]` doesn't unify with a 2-tuple).
  Indeed, we mustn't render the Nil constructor when rendering non-empty
  lists! So the correct suggestion should be:
  ```
  [(_, True)]
  ``` 
							
						 
						
							2023-08-02 10:31:35 +02:00  
				
					
						
							
							
								 
						
							
								00b255e960 
								
							 
						 
						
							
							
								
								Remove now-dead code.  
							
							
							
						 
						
							2023-08-02 09:22:21 +02:00  
				
					
						
							
							
								 
						
							
								f3cab94ae1 
								
							 
						 
						
							
							
								
								test(check): a bunch of tests for the new exhaustiveness stuff  
							
							
							
						 
						
							2023-08-01 21:13:50 -04:00  
				
					
						
							
							
								 
						
							
								75e18d485d 
								
							 
						 
						
							
							
								
								fix: redundant might be wildcard which doesn't match technically  
							
							
							
						 
						
							2023-08-01 21:13:50 -04:00  
				
					
						
							
							
								 
						
							
								a6b230aad4 
								
							 
						 
						
							
							
								
								fix: exhaustiveness on types from other modules  
							
							
							
						 
						
							2023-08-01 21:13:50 -04:00  
				
					
						
							
							
								 
						
							
								7e531d0da1 
								
							 
						 
						
							
							
								
								fix: wrong var for name in UnknownModule error  
							
							
							
						 
						
							2023-08-01 21:13:50 -04:00  
				
					
						
							
							
								 
						
							
								b6ac39f322 
								
							 
						 
						
							
							
								
								feat(exhaustiveness): show both clauses in redundant error  
							
							
							
						 
						
							2023-08-01 21:13:50 -04:00  
				
					
						
							
							
								 
						
							
								ef2fc57ca9 
								
							 
						 
						
							
							
								
								feat(exhaustiveness): check tuple patterns  
							
							
							
						 
						
							2023-08-01 21:13:50 -04:00  
				
					
						
							
							
								 
						
							
								f1100e901d 
								
							 
						 
						
							
							
								
								feat(exhaustiveness): pretty print missing patterns  
							
							
							
						 
						
							2023-08-01 21:13:50 -04:00  
				
					
						
							
							
								 
						
							
								de2791fe82 
								
							 
						 
						
							
							
								
								feat(tipo): add new error for redundant clauses  
							
							
							
						 
						
							2023-08-01 21:13:50 -04:00  
				
					
						
							
							
								 
						
							
								0061bcf78d 
								
							 
						 
						
							
							
								
								feat: add support for list patterns  
							
							
							
						 
						
							2023-08-01 21:13:50 -04:00  
				
					
						
							
							
								 
						
							
								e8a71cd63b 
								
							 
						 
						
							
							
								
								chore: rename usefulness module  
							
							
							
						 
						
							2023-08-01 21:13:50 -04:00  
				
					
						
							
							
								 
						
							
								03efb46e6f 
								
							 
						 
						
							
							
								
								feat(exhaustiveness): algorithm U borrowed from elm  
							
							
							
						 
						
							2023-08-01 21:13:50 -04:00  
				
					
						
							
							
								 
						
							
								97acd6d7bd 
								
							 
						 
						
							
							
								
								chore: Release  
							
							
							
						 
						
							2023-07-15 21:37:10 -04:00  
				
					
						
							
							
								 
						
							
								77a627817b 
								
							 
						 
						
							
							
								
								chore: prepare changelog for release  
							
							
							
						 
						
							2023-07-15 21:34:41 -04:00  
				
					
						
							
							
								 
						
							
								1b8e94fe32 
								
							 
						 
						
							
							
								
								feat: expect boolean sugar  
							
							
							
						 
						
							2023-07-15 20:50:02 -04:00  
				
					
						
							
							
								 
						
							
								db3b5c74bb 
								
							 
						 
						
							
							
								
								fix: todo and fail spans  
							
							
							
						 
						
							2023-07-15 20:08:16 -04:00  
				
					
						
							
							
								 
						
							
								69fdee9f7e 
								
							 
						 
						
							
							
								
								fix: trace expr  
							
							
							
						 
						
							2023-07-15 20:08:16 -04:00  
				
					
						
							
							
								 
						
							
								2edfd33594 
								
							 
						 
						
							
							
								
								fix: some attempted adjustments  
							
							
							
						 
						
							2023-07-15 20:08:16 -04:00  
				
					
						
							
							
								 
						
							
								252b760ca1 
								
							 
						 
						
							
							
								
								test: remove prefix on all format tests  
							
							
							
						 
						
							2023-07-14 16:56:27 -04:00  
				
					
						
							
							
								 
						
							
								eafe3cdf75 
								
							 
						 
						
							
							
								
								test: fail with expr relates to  #675  
							
							
							
						 
						
							2023-07-14 13:09:55 -04:00  
				
					
						
							
							
								 
						
							
								621017bd93 
								
							 
						 
						
							
							
								
								chore: Release  
							
							
							
						 
						
							2023-07-14 10:55:13 -04:00  
				
					
						
							
							
								 
						
							
								e7c1b28b52 
								
							 
						 
						
							
							
								
								feat: add ability to reference validators in tests  closes   #632  
							
							
							
						 
						
							2023-07-12 18:29:03 -04:00  
				
					
						
							
							
								 
						
							
								13ee62c05c 
								
							 
						 
						
							
							
								
								fix: don't break failing test defs for current users  
							
							
							
						 
						
							2023-07-12 09:16:37 -04:00  
				
					
						
							
							
								 
						
							
								03e7d6e944 
								
							 
						 
						
							
							
								
								feat: update syntax for failing test to be more consistent  
							
							
							
						 
						
							2023-07-12 09:16:37 -04:00  
				
					
						
							
							
								 
						
							
								1ab1ff9a1f 
								
							 
						 
						
							
							
								
								feat: rename error to fail  
							
							
							
						 
						
							2023-07-12 09:16:37 -04:00  
				
					
						
							
							
								 
						
							
								914b8d4e74 
								
							 
						 
						
							
							
								
								fix: infer validator args as Data if Unbound  closes   #649  
							
							
							
						 
						
							2023-07-11 13:51:17 -04:00  
				
					
						
							
							
								 
						
							
								b80c41b4b7 
								
							 
						 
						
							
							
								
								chore: cargo fmt  
							
							
							
						 
						
							2023-07-11 13:06:25 -04:00  
				
					
						
							
							
								 
						
							
								14652abd4f 
								
							 
						 
						
							
							
								
								fix: port last missing test  
							
							... 
							
							
							
							This test has been added after the first implementation, so we move it
to the new format :) 
							
						 
						
							2023-07-11 13:06:25 -04:00  
				
					
						
							
							
								 
						
							
								7f7a86765d 
								
							 
						 
						
							
							
								
								feat: bring back formatting imdepotency test  
							
							
							
						 
						
							2023-07-11 13:06:25 -04:00  
				
					
						
							
							
								 
						
							
								c27ef8ad93 
								
							 
						 
						
							
							
								
								chore: refactor formatting tests  
							
							... 
							
							
							
							This changes the tests from normal assertions into snapshot tests, as
well as standardizing test names. 
							
						 
						
							2023-07-11 13:06:25 -04:00  
				
					
						
							
							
								 
						
							
								94bf75dd1c 
								
							 
						 
						
							
							
								
								chore: delete unreferenced snapshots  
							
							
							
						 
						
							2023-07-06 21:00:13 -04:00  
				
					
						
							
							
								 
						
							
								126f2ab004 
								
							 
						 
						
							
							
								
								Implement new formatter for 'int'.  
							
							... 
							
							
							
							This is used for constants and patterns, which can carry negative
   values. 
							
						 
						
							2023-07-06 16:10:46 -04:00  
				
					
						
							
							
								 
						
							
								78d34f7f76 
								
							 
						 
						
							
							
								
								Fix parsing of negative int patterns and constants  
							
							... 
							
							
							
							This was trickier than expected as the expression parser, and in particular the bin-op parser will interpret negative patterns as a continuation of a binary operation and eventually choke on the next right-arrow symbol. This is due to how we actually completely erase newlines once we're done with the lexer. The newline separating when clause is actually semantically important. In principle, we could only parse an expression until the next newline.
  Ideally, we would keep that newline in the list of token but it's difficult to figure out which newline to keep between two right arrows since a clause guard can be written over multiple lines. Though, since we know that this is only truly a problem for negative integers, we can use the same trick as for tuples and define a new 'NewLineMinus' token. That token CANNOT be part of a binop expression. That means it's impossible to write a binary operation with a minus over multiple lines, or more specifically, with the '-' symbol on a newline. This sounds like a fair limitation. What we get in exchange is less ambiguity when parsing patterns following expressions in when clause cases.
  Another more cumbersome option could be to preserve the first newline encountered after a 'right-arrow' symbol and before any parenthesis or curly brace is found (which would otherwise signal the beginning of a new block). That requires to traverse, at least partially, the list of tokens twice. This feels unnecessary for now and until we do face a similar issue with a binary operator. 
							
						 
						
							2023-07-06 16:10:46 -04:00  
				
					
						
							
							
								 
						
							
								346df47232 
								
							 
						 
						
							
							
								
								Refactor chain parser  
							
							... 
							
							
							
							The main goal is to make the parser more reusable to be used for when-clauses, instead of the expression parser. A side goal has been to make it more readable by moving the construction of some untyped expression as method on UntypedExpr. Doing so, I got rid of the extra temporary 'ParseArg' type and re-used the generic 'CallArg' instead by simply using an Option<UntypedExpr> as value to get the same semantic as 'ParseArg' (which would distinguish between plain call args and holes). Now the chained parser is in a bit more reusable state. 
							
						 
						
							2023-07-06 16:10:46 -04:00  
				
					
						
							
							
								 
						
							
								549cf22cdd 
								
							 
						 
						
							
							
								
								Rename (Un)TypedExpr.Int -> (Un)TypedExpr.UInt  
							
							... 
							
							
							
							We do not actually every parse negative values in there, as a negative value is a combination of a 'Negate' and 'UInt' expression.
  However, for patterns and constant, it'll be simpler to parse whole Int values as there's no ambiguity with arithmetic operations
  there. To avoid confusion of having some 'Int' constructors containing only non-negative values, and some being on the whole range,
  I've renamed the constructor to 'UInt' to make this more obvious. 
							
						 
						
							2023-07-06 16:10:46 -04:00  
				
					
						
							
							
								 
						
							
								5a4a2faa4d 
								
							 
						 
						
							
							
								
								Split pattern parser into individual modules.  
							
							
							
						 
						
							2023-07-06 16:10:46 -04:00  
				
					
						
							
							
								 
						
							
								0650d6152d 
								
							 
						 
						
							
							
								
								rename test cases for when/clause to somewhat match the file hierarchy.  
							
							
							
						 
						
							2023-07-06 16:10:46 -04:00  
				
					
						
							
							
								 
						
							
								ed85cb1c00 
								
							 
						 
						
							
							
								
								Fix todo/error parsing  
							
							... 
							
							
							
							This was a bit more tricky than anticipated but played out nicely in
  the end. Now we have one holistic way of parsing todos and errors
  instead of it being duplicated between when/clause and sequence. The
  error/todo parser has been moved up to the expression part rather than
  being managed when parsing sequences. Not sure what motivated that to
  begin with.
  Fixes  #621 . 
							
						 
						
							2023-07-05 20:12:57 +02:00  
				
					
						
							
							
								 
						
							
								e331b3449b 
								
							 
						 
						
							
							
								
								chore: clippy fix  
							
							
							
						 
						
							2023-07-05 12:06:03 -04:00  
				
					
						
							
							
								 
						
							
								a306d6e9f2 
								
							 
						 
						
							
							
								
								Move chain and chained parsing into their own submodule  
							
							... 
							
							
							
							Alleviate a bit more the top-level expression parser. Note that we
probably need a bit more disciplined in what we export and at what level
because there doesn't seem to be much logic as for whether a parser is
private, exported to the crate only or to the wide open. I'd be in favor
of exporting everything by default. 
							
						 
						
							2023-07-05 15:18:07 +02:00  
				
					
						
							
							
								 
						
							
								4f6defcf3e 
								
							 
						 
						
							
							
								
								rename: 'r' → 'expression' & 'seq_r' → 'sequence'  
							
							... 
							
							
							
							Better readability. 
							
						 
						
							2023-07-05 14:42:14 +02:00  
				
					
						
							
							
								 
						
							
								66296df9c3 
								
							 
						 
						
							
							
								
								Move parsing of literals under new 'literal' parser module group  
							
							... 
							
							
							
							Also moved the logic for 'int' and 'string' there though it is trivial. Yet, for bytearray, it tidies things nicely by removing them from the 'utils' module. 
							
						 
						
							2023-07-05 14:37:29 +02:00  
				
					
						
							
							
								 
						
							
								e15cdaf248 
								
							 
						 
						
							
							
								
								Move 'utils::bytearray' to 'expr/bytearray'  
							
							
							
						 
						
							2023-07-05 14:10:47 +02:00  
				
					
						
							
							
								 
						
							
								44eb501d78 
								
							 
						 
						
							
							
								
								Favor pattern-match over if-else when parsing assignment kinds  
							
							... 
							
							
							
							Equality on a union-type is potentially dangerous as the compiler won't
complain if we add a new case that we don't cover. Reversing the
assignment by yielding a `Token` for a given `AssignmentKind`. This way
we can use a pattern-match that got us covered for future cases. 
							
						 
						
							2023-07-05 14:01:13 +02:00  
				
					
						
							
							
								 
						
							
								93e010b345 
								
							 
						 
						
							
							
								
								Replace 'public' utils with a more generic 'optional_flag'  
							
							... 
							
							
							
							The 'public' util was arguably not really adding much except a layer of indirection.
  In the end, one useful parsing behavior to abstract is the idea of 'optional flag' that we use for both 'pub' and 'opaque' keywords. 
							
						 
						
							2023-07-05 13:57:34 +02:00  
				
					
						
							
							
								 
						
							
								5e8edcb340 
								
							 
						 
						
							
							
								
								test(parser): finish moving tests to their correct modules  
							
							
							
						 
						
							2023-07-04 17:48:48 -04:00  
				
					
						
							
							
								 
						
							
								47567c5e6f 
								
							 
						 
						
							
							
								
								test(parser): some adjustments after rebase with @ktorz fix  
							
							
							
						 
						
							2023-07-04 17:19:30 -04:00  
				
					
						
							
							
								 
						
							
								b25db429be 
								
							 
						 
						
							
							
								
								test(parser): anon binop and ambiguous sequence  
							
							
							
						 
						
							2023-07-04 17:19:30 -04:00  
				
					
						
							
							
								 
						
							
								8a6c81493c 
								
							 
						 
						
							
							
								
								test(parser): record create  
							
							
							
						 
						
							2023-07-04 17:19:30 -04:00  
				
					
						
							
							
								 
						
							
								a75bcff5c8 
								
							 
						 
						
							
							
								
								test(parser): type alias, anon fn, record update and more  
							
							
							
						 
						
							2023-07-04 17:19:30 -04:00  
				
					
						
							
							
								 
						
							
								bd8c13c372 
								
							 
						 
						
							
							
								
								test(parser): move over the validator tests and some misc tests to parser  
							
							
							
						 
						
							2023-07-04 17:19:29 -04:00  
				
					
						
							
							
								 
						
							
								6b05d6a91e 
								
							 
						 
						
							
							
								
								test(parser): rename definitions to definition and more tests  
							
							
							
						 
						
							2023-07-04 17:19:29 -04:00  
				
					
						
							
							
								 
						
							
								baf807ca2d 
								
							 
						 
						
							
							
								
								test(parser): list spread  
							
							
							
						 
						
							2023-07-04 17:19:29 -04:00  
				
					
						
							
							
								 
						
							
								44d0432560 
								
							 
						 
						
							
							
								
								test(parser): int list  
							
							
							
						 
						
							2023-07-04 17:19:29 -04:00  
				
					
						
							
							
								 
						
							
								f9c099a923 
								
							 
						 
						
							
							
								
								test: add indoc to assert_expr macro  
							
							
							
						 
						
							2023-07-04 17:19:29 -04:00  
				
					
						
							
							
								 
						
							
								715752718d 
								
							 
						 
						
							
							
								
								test: assert_module  
							
							
							
						 
						
							2023-07-04 17:19:29 -04:00  
				
					
						
							
							
								 
						
							
								da0b969865 
								
							 
						 
						
							
							
								
								test: adjust snapshots  
							
							
							
						 
						
							2023-07-04 17:19:29 -04:00  
				
					
						
							
							
								 
						
							
								8a7df7f66b 
								
							 
						 
						
							
							
								
								test: add empty list test  
							
							
							
						 
						
							2023-07-04 17:19:29 -04:00  
				
					
						
							
							
								 
						
							
								291dedf4e8 
								
							 
						 
						
							
							
								
								chore: refactor all parse tests to use assert_parse!  
							
							
							
						 
						
							2023-07-04 17:19:28 -04:00  
				
					
						
							
							
								 
						
							
								f878ef7cef 
								
							 
						 
						
							
							
								
								feat: move some token processing to the lexer  
							
							
							
						 
						
							2023-07-04 17:19:28 -04:00  
				
					
						
							
							
								 
						
							
								2226747dc1 
								
							 
						 
						
							
							
								
								feat: finish splitting up parsers  
							
							
							
						 
						
							2023-07-04 17:19:28 -04:00  
				
					
						
							
							
								 
						
							
								63cdb8aa09 
								
							 
						 
						
							
							
								
								chore: add more details on snapshot tests  
							
							... 
							
							
							
							We added a macro to add more information about the code that is being
tested, so we can add lots and lots of small snapshot tests. 
							
						 
						
							2023-07-04 17:19:28 -04:00  
				
					
						
							
							
								 
						
							
								eeaa1a05d2 
								
							 
						 
						
							
							
								
								feat: add first code snapshot test with insta  
							
							
							
						 
						
							2023-07-04 17:19:28 -04:00  
				
					
						
							
							
								 
						
							
								58c854fd3f 
								
							 
						 
						
							
							
								
								feat: add insta as dependency  
							
							... 
							
							
							
							We are going to start to add "golden"/snapshot tests, so we are using
[insta](https://insta.rs ) to do so. 
							
						 
						
							2023-07-04 17:19:28 -04:00  
				
					
						
							
							
								 
						
							
								eea94fc9a4 
								
							 
						 
						
							
							
								
								feat: move anon fn, let, and expect  
							
							
							
						 
						
							2023-07-04 17:19:28 -04:00  
				
					
						
							
							
								 
						
							
								9c98fc8026 
								
							 
						 
						
							
							
								
								feat: start splitting apart expr_parser  
							
							
							
						 
						
							2023-07-04 17:19:28 -04:00  
				
					
						
							
							
								 
						
							
								e3ed5d3b00 
								
							 
						 
						
							
							
								
								feat: move expr_parser and remove module.rs to definitions  
							
							
							
						 
						
							2023-07-04 17:19:28 -04:00  
				
					
						
							
							
								 
						
							
								3339d41fdd 
								
							 
						 
						
							
							
								
								feat: finish moving definitions and start exprs  
							
							
							
						 
						
							2023-07-04 17:19:27 -04:00  
				
					
						
							
							
								 
						
							
								fc580d4fa0 
								
							 
						 
						
							
							
								
								feat(parser): move definitions to their own modules  
							
							
							
						 
						
							2023-07-04 17:19:27 -04:00  
				
					
						
							
							
								 
						
							
								49098d5a45 
								
							 
						 
						
							
							
								
								Bump miette to 5.9.0  
							
							... 
							
							
							
							No particular reason, but it's good to be up-to-date with our dependencies. 
							
						 
						
							2023-07-04 16:51:59 -04:00  
				
					
						
							
							
								 
						
							
								5a6cc855e6 
								
							 
						 
						
							
							
								
								Use byte count for token span in the lexer.  
							
							... 
							
							
							
							Somehow, miette doesn't play well with spans when using chars indices.
  So we have to count the number of bytes in strings / chars, so that
  spans align accordingly. 
							
						 
						
							2023-07-04 16:51:59 -04:00  
				
					
						
							
							
								 
						
							
								67c072a1a9 
								
							 
						 
						
							
							
								
								test: add acceptance test 86  
							
							... 
							
							
							
							fix: prevent mutual recursion for expect type code gen functions 
							
						 
						
							2023-07-04 12:24:25 -04:00  
				
					
						
							
							
								 
						
							
								d641f731b7 
								
							 
						 
						
							
							
								
								fix: needed a stricter check for expect_pattern func on discard pattern  
							
							
							
						 
						
							2023-06-28 15:54:59 -04:00  
				
					
						
							
							
								 
						
							
								90ff211205 
								
							 
						 
						
							
							
								
								chore: Release  
							
							
							
						 
						
							2023-06-23 19:41:14 -04:00  
				
					
						
							
							
								 
						
							
								d633129ddf 
								
							 
						 
						
							
							
								
								fix: clearer unused var warning  closes   #579  
							
							
							
						 
						
							2023-06-23 19:04:54 -04:00