412945af3a 
								
							 
						 
						
							
							
								
								update aiken code gen test  
							
							
							
						 
						
							2024-01-04 16:03:51 -05:00  
				
					
						
							
							
								 
						
							
								aa51ce3e3e 
								
							 
						 
						
							
							
								
								feat: add code messages when using expects on constrs  
							
							
							
						 
						
							2024-01-04 16:03:51 -05:00  
				
					
						
							
							
								 
						
							
								71cfb6f6af 
								
							 
						 
						
							
							
								
								feat: Add specific messages for using expect with booleans  
							
							... 
							
							
							
							TODO: fill out the rest of the expects with messages 
							
						 
						
							2024-01-04 16:03:51 -05:00  
				
					
						
							
							
								 
						
							
								07122aaa88 
								
							 
						 
						
							
							
								
								feat: allow importing off validators in validators/tests/*  
							
							
							
						 
						
							2023-12-11 18:27:08 -05:00  
				
					
						
							
							
								 
						
							
								92488e535a 
								
							 
						 
						
							
							
								
								Fix type definitions for g1 & g2 elements.  
							
							
							
						 
						
							2023-12-08 16:58:12 +01:00  
				
					
						
							
							
								 
						
							
								825e65d7a3 
								
							 
						 
						
							
							
								
								fix: zero arg functions were being compiled without the trace messages  
							
							... 
							
							
							
							Now traces are added before evaluating 
							
						 
						
							2023-12-06 10:31:48 -05:00  
				
					
						
							
							
								 
						
							
								c50d4d1396 
								
							 
						 
						
							
							
								
								fix: forgot to handle None case for other_fun in validator  
							
							
							
						 
						
							2023-11-29 21:24:30 -05:00  
				
					
						
							
							
								 
						
							
								1503b525b2 
								
							 
						 
						
							
							
								
								feat(lsp): implement quickfix for utf8 byte array is valid hex string warning  
							
							
							
						 
						
							2023-11-28 21:02:15 -05:00  
				
					
						
							
							
								 
						
							
								1f411cde0e 
								
							 
						 
						
							
							
								
								chore: needless dbg  
							
							
							
						 
						
							2023-11-28 20:59:23 -05:00  
				
					
						
							
							
								 
						
							
								832ca81a8c 
								
							 
						 
						
							
							
								
								fix(lsp): when desugaring and/or chains we should use the whole span of the chain for the generated BinOp locations  
							
							
							
						 
						
							2023-11-28 19:19:56 -05:00  
				
					
						
							
							
								 
						
							
								7015a9badc 
								
							 
						 
						
							
							
								
								feat(lsp): hover support for the optional multi validator fn  
							
							
							
						 
						
							2023-11-28 19:18:29 -05:00  
				
					
						
							
							
								 
						
							
								2159053cb5 
								
							 
						 
						
							
							
								
								fix: using the word pattern here reads better and applies more broadly like for lists  
							
							
							
						 
						
							2023-11-28 16:15:24 -05:00  
				
					
						
							
							
								 
						
							
								a46a7e82b7 
								
							 
						 
						
							
							
								
								feat: implement hover on when clause patterns  
							
							
							
						 
						
							2023-11-28 16:13:08 -05:00  
				
					
						
							
							
								 
						
							
								f7dd2de17b 
								
							 
						 
						
							
							
								
								feat: implement hover info for tuple, list, and contructor pattern elements  
							
							
							
						 
						
							2023-11-28 16:12:37 -05:00  
				
					
						
							
							
								 
						
							
								6ce30bd949 
								
							 
						 
						
							
							
								
								fix: allow spread operator on positional constructors  closes   #677  
							
							
							
						 
						
							2023-11-27 23:11:17 -05:00  
				
					
						
							
							
								 
						
							
								2980e8e21d 
								
							 
						 
						
							
							
								
								fix: use a distinct warning for discarded let assignments to avoid confusion  closes   #763  
							
							
							
						 
						
							2023-11-27 21:23:10 -05:00  
				
					
						
							
							
								 
						
							
								4adedaac15 
								
							 
						 
						
							
							
								
								Remove unnecessary 'Rc' in function signature.  
							
							
							
						 
						
							2023-11-25 13:09:26 +01:00  
				
					
						
							
							
								 
						
							
								45177cd08b 
								
							 
						 
						
							
							
								
								fix: add missing type checks for the new bls primitives  
							
							
							
						 
						
							2023-11-23 13:00:24 -05:00  
				
					
						
							
							
								 
						
							
								63f96d13ca 
								
							 
						 
						
							
							
								
								fix: clippy warning  
							
							
							
						 
						
							2023-11-22 19:17:45 -05:00  
				
					
						
							
							
								 
						
							
								78b0789cbc 
								
							 
						 
						
							
							
								
								chore: unit test for pub in validator module warnings  closes   #681  
							
							
							
						 
						
							2023-11-22 18:02:21 -05:00  
				
					
						
							
							
								 
						
							
								abd18656e3 
								
							 
						 
						
							
							
								
								fix: unable to have newline after expect bool shortcut  
							
							
							
						 
						
							2023-11-20 11:44:16 -05:00  
				
					
						
							
							
								 
						
							
								2ed91780f4 
								
							 
						 
						
							
							
								
								fix: call arg should be top level  
							
							
							
						 
						
							2023-11-20 11:44:16 -05:00  
				
					
						
							
							
								 
						
							
								7118253401 
								
							 
						 
						
							
							
								
								fix: if branches, final_else, and anon fns should all be "top level"  
							
							
							
						 
						
							2023-11-20 11:44:16 -05:00  
				
					
						
							
							
								 
						
							
								7680d33663 
								
							 
						 
						
							
							
								
								fix: panic in formatter when substracting u8 0 - 1  
							
							
							
						 
						
							2023-11-20 11:44:16 -05:00  
				
					
						
							
							
								 
						
							
								6869f73033 
								
							 
						 
						
							
							
								
								fix: sequence formatting when not top level  
							
							
							
						 
						
							2023-11-20 11:44:16 -05:00  
				
					
						
							
							
								 
						
							
								b80db2f7f8 
								
							 
						 
						
							
							
								
								fix(bls): wrong types for equals functions  
							
							
							
						 
						
							2023-11-15 15:55:56 -05:00  
				
					
						
							
							
								 
						
							
								d53d2665b2 
								
							 
						 
						
							
							
								
								test(bls): g1 and g2 formatting  
							
							
							
						 
						
							2023-11-15 15:55:56 -05:00  
				
					
						
							
							
								 
						
							
								c910e0054e 
								
							 
						 
						
							
							
								
								test(bls): constant parsing tests  
							
							
							
						 
						
							2023-11-15 15:55:56 -05:00  
				
					
						
							
							
								 
						
							
								7073fd29b3 
								
							 
						 
						
							
							
								
								test(bls): literal parsing tests  
							
							
							
						 
						
							2023-11-15 15:55:56 -05:00  
				
					
						
							
							
								 
						
							
								8b89ba3b93 
								
							 
						 
						
							
							
								
								feat: implement bls primitives in code gen  
							
							
							
						 
						
							2023-11-15 15:55:56 -05:00  
				
					
						
							
							
								 
						
							
								d51374aac1 
								
							 
						 
						
							
							
								
								feat: add conversion to data and from data for new primitive types  
							
							
							
						 
						
							2023-11-15 15:55:56 -05:00  
				
					
						
							
							
								 
						
							
								3675762c3e 
								
							 
						 
						
							
							
								
								feat(bls): aiken level g1 and g2 literals  
							
							
							
						 
						
							2023-11-15 15:55:56 -05:00  
				
					
						
							
							
								 
						
							
								90aea6476a 
								
							 
						 
						
							
							
								
								feat: uplc g1 and g2 literal parsing  
							
							
							
						 
						
							2023-11-15 15:55:56 -05:00  
				
					
						
							
							
								 
						
							
								49ae8152f8 
								
							 
						 
						
							
							
								
								feat(bls): add new aiken level builtins  
							
							
							
						 
						
							2023-11-15 15:55:56 -05:00  
				
					
						
							
							
								 
						
							
								8a3a465237 
								
							 
						 
						
							
							
								
								feat(bls): add new types to aiken prelude  
							
							
							
						 
						
							2023-11-15 15:55:56 -05:00  
				
					
						
							
							
								 
						
							
								0d2ac952d0 
								
							 
						 
						
							
							
								
								feat: implemented the Bls381-12 builtins and types  
							
							... 
							
							
							
							also implemented Keccak256 and Blake2b_224
TODO: cost model, flat serialization, pretty
Co-authored-by: rvcas <x@rvcas.dev> 
							
						 
						
							2023-11-15 15:55:56 -05:00  
				
					
						
							
							
								 
						
							
								2f694b01cb 
								
							 
						 
						
							
							
								
								chore: use insta snapshot for blueprint validator tests  
							
							
							
						 
						
							2023-11-06 15:37:04 -05:00  
				
					
						
							
							
								 
						
							
								4eebd4628b 
								
							 
						 
						
							
							
								
								chore: fix comment  
							
							
							
						 
						
							2023-11-06 15:37:04 -05:00  
				
					
						
							
							
								 
						
							
								7427bac4a0 
								
							 
						 
						
							
							
								
								chore: remove unused code  
							
							
							
						 
						
							2023-11-06 15:37:04 -05:00  
				
					
						
							
							
								 
						
							
								598ec5eaef 
								
							 
						 
						
							
							
								
								Use a better algorithm for inlining single occurrences  
							
							
							
						 
						
							2023-11-06 15:37:04 -05:00  
				
					
						
							
							
								 
						
							
								4dd17dacf3 
								
							 
						 
						
							
							
								
								chore: rename uplc builder builtins  
							
							
							
						 
						
							2023-10-22 17:08:48 -04:00  
				
					
						
							
							
								 
						
							
								46c58dbd61 
								
							 
						 
						
							
							
								
								Implement quickfixes for redundant imports.  
							
							
							
						 
						
							2023-10-22 00:29:09 +02:00  
				
					
						
							
							
								 
						
							
								28b699c86a 
								
							 
						 
						
							
							
								
								Merge unused imported constructors and unused imported type with unused imported value  
							
							... 
							
							
							
							This was somewhat weirdly done, with a boolean 'imported' set on the
  formers; but an explicit new warning for values. I don't see the point
  of distinguishing them so I just merged them all into a single
  warning.
  I have however preserved the 'UnusedType' and 'UnusedConstructor'
  warnings since they were ALSO used for unused private constructors or
  types. 
							
						 
						
							2023-10-22 00:27:33 +02:00  
				
					
						
							
							
								 
						
							
								c0513da032 
								
							 
						 
						
							
							
								
								Add quickfix for unknown constructors.  
							
							
							
						 
						
							2023-10-21 14:24:47 +02:00  
				
					
						
							
							
								 
						
							
								f6eff7ec58 
								
							 
						 
						
							
							
								
								Fix incoherent 'UnknownVariable' being returned in type-check  
							
							... 
							
							
							
							I initially removed the 'UnkownTypeConstructor' since it wasn't used anywhere and was in fact dead-code. On second thoughts however, it is nicer to provide a slightly better error message when a constructor is missing as well as some valid suggestion. Prior to that commit, we would simply return a 'UnknownVariable' and the hint might suggest lowercase identifiers; which is wrong. 
							
						 
						
							2023-10-21 14:10:45 +02:00  
				
					
						
							
							
								 
						
							
								5986163ba7 
								
							 
						 
						
							
							
								
								Add quickfix for unknown alias & data types.  
							
							
							
						 
						
							2023-10-21 13:57:06 +02:00  
				
					
						
							
							
								 
						
							
								c550b4766d 
								
							 
						 
						
							
							
								
								Implement quickfix for 'UnknownModule'.  
							
							
							
						 
						
							2023-10-21 12:59:48 +02:00  
				
					
						
							
							
								 
						
							
								763516eb96 
								
							 
						 
						
							
							
								
								Refactor and relocate document edits function for imports.  
							
							... 
							
							
							
							It's a bit 'off-topic' to keep these in aiken-lang as those functions are really just about lsp. Plus, it removes a bit some of the boilerplate and make the entire edition more readable and re-usable. Now we can tackle other similar errors with the same quickfix. 
							
						 
						
							2023-10-21 11:31:01 +02:00  
				
					
						
							
							
								 
						
							
								699d0a537c 
								
							 
						 
						
							
							
								
								Use (untyped) AST to find the right insert location for imports.  
							
							... 
							
							
							
							This removes the need to rely on the formatter to clear things up
  after insert a new import. While this is not so useful for imports, I
  wanted to experiment with the approach for future similar edits (for
  example, when suggesting an inline rewrite). 
							
						 
						
							2023-10-21 10:43:00 +02:00  
				
					
						
							
							
								 
						
							
								66ade8e3e3 
								
							 
						 
						
							
							
								
								Implement simple code action quickfix for unknown variable.  
							
							
							
						 
						
							2023-10-20 18:01:07 +02:00  
				
					
						
							
							
								 
						
							
								c4221730bf 
								
							 
						 
						
							
							
								
								Define 'ExtraData' trait for errors  
							
							... 
							
							
							
							This should allow passing some extra information to LSP diagnostic in order to provide quickfix actions, such as auto-imports. 
							
						 
						
							2023-10-20 18:00:12 +02:00  
				
					
						
							
							
								 
						
							
								41e26b216b 
								
							 
						 
						
							
							
								
								Some LSP improvements regarding hovering  
							
							... 
							
							
							
							- Resolve module select properly
  - Add some type annotations to _some patterns_ such as assignments 
							
						 
						
							2023-10-19 20:04:10 +02:00  
				
					
						
							
							
								 
						
							
								e5801f9c19 
								
							 
						 
						
							
							
								
								feat: support doc comments for functions args and validator params  
							
							... 
							
							
							
							- Add support to the formatter for these doc comments
- Add a new field to `Arg` `doc: Option<String>`
- Don't attach docs immediately after typechecking a module
  - instead we should do it on demand in docs, build, and lsp
  - the check command doesn't need to have any docs attached
  - doing it more lazily defers the computation until later making
    typechecking feedback a bit faster
- Add support for function arg and validator param docs in
  `attach_module_docs` methods
- Update some snapshots
- Add put_doc to Arg
closes  #685  
							
						 
						
							2023-10-16 13:38:23 -04:00  
				
					
						
							
							
								 
						
							
								10b9dc2042 
								
							 
						 
						
							
							
								
								chore: remove unused constants  
							
							
							
						 
						
							2023-10-13 16:56:03 -04:00  
				
					
						
							
							
								 
						
							
								e8bcbecf31 
								
							 
						 
						
							
							
								
								chore: avoid cloning name  
							
							
							
						 
						
							2023-10-12 17:50:44 -04:00  
				
					
						
							
							
								 
						
							
								55f89a7ff4 
								
							 
						 
						
							
							
								
								fix: incorrect 'unused::constructor'  
							
							... 
							
							
							
							`ExprTyper` was not incrementing the usage of a constructor
when infering `RecordAccess`.
closes  #554  
							
						 
						
							2023-10-12 17:44:57 -04:00  
				
					
						
							
							
								 
						
							
								52dfc13f8f 
								
							 
						 
						
							
							
								
								chore: explain a weird if condition  
							
							
							
						 
						
							2023-10-12 17:24:11 -04:00  
				
					
						
							
							
								 
						
							
								c764a6f99c 
								
							 
						 
						
							
							
								
								fix: reset option should not reset special functions in only a multivalidator  
							
							
							
						 
						
							2023-10-07 19:42:24 -04:00  
				
					
						
							
							
								 
						
							
								4649a5a9d2 
								
							 
						 
						
							
							
								
								fix: don't reset the used special functions  
							
							
							
						 
						
							2023-10-07 19:42:24 -04:00  
				
					
						
							
							
								 
						
							
								8964675670 
								
							 
						 
						
							
							
								
								feat: Add tracing for common multivalidator issues  
							
							
							
						 
						
							2023-10-07 19:42:24 -04:00  
				
					
						
							
							
								 
						
							
								7a6ddc45a0 
								
							 
						 
						
							
							
								
								feat: Rework codegen traces to prevent repeated messages from taking up uplc script space  
							
							
							
						 
						
							2023-10-07 19:42:24 -04:00  
				
					
						
							
							
								 
						
							
								44021cde19 
								
							 
						 
						
							
							
								
								Detect when fields_expose is unnecessary in clause_pattern  
							
							
							
						 
						
							2023-10-07 19:42:24 -04:00  
				
					
						
							
							
								 
						
							
								8a1c824dd7 
								
							 
						 
						
							
							
								
								chore: add specific error for when the validator returns false  
							
							
							
						 
						
							2023-10-04 11:08:22 -04:00  
				
					
						
							
							
								 
						
							
								135dbd8335 
								
							 
						 
						
							
							
								
								feat: handle pipe fn infer TODOs  
							
							... 
							
							
							
							This improves error messages for `a |> b(x)`.
We need to do a special check when looping over the args
and unifying. This information is within a function that does not belong
to pipe typer so I used a closure to forward along a way to add
metadata to the error when the first argument in the loop has a
unification error. Simply adding the metadata at the pipe typer
level is not good enough because then we may annotate regular
unification errors from the args. 
							
						 
						
							2023-10-03 01:17:15 -04:00  
				
					
						
							
							
								 
						
							
								add513790d 
								
							 
						 
						
							
							
								
								hotfix: cyclic functions hoisted as a dependency used the wrong key to modify its own cyclic_calls  
							
							
							
						 
						
							2023-09-29 22:01:43 -04:00  
				
					
						
							
							
								 
						
							
								47596f0324 
								
							 
						 
						
							
							
								
								feat: Remove tuple_index and record_access in favor of faster more direct functions for  
							
							... 
							
							
							
							accessing an item in a tuple or a field in a record 
							
						 
						
							2023-09-28 01:05:05 -04:00  
				
					
						
							
							
								 
						
							
								1bcc9e8524 
								
							 
						 
						
							
							
								
								fix: expect on tuples from data now checks for no more items after the last  
							
							
							
						 
						
							2023-09-26 12:49:50 -04:00  
				
					
						
							
							
								 
						
							
								1ca3499128 
								
							 
						 
						
							
							
								
								chore: rename type  
							
							
							
						 
						
							2023-09-25 21:16:19 -04:00  
				
					
						
							
							
								 
						
							
								534eb62a07 
								
							 
						 
						
							
							
								
								fix: There was a stack overflow due to passing unbound types to a function  
							
							
							
						 
						
							2023-09-25 21:16:19 -04:00  
				
					
						
							
							
								 
						
							
								1cab479b81 
								
							 
						 
						
							
							
								
								fix: dependency hoisting for cyclic functions  
							
							... 
							
							
							
							Add more tests 
							
						 
						
							2023-09-25 21:16:19 -04:00  
				
					
						
							
							
								 
						
							
								2f80d07132 
								
							 
						 
						
							
							
								
								fix: minor stuff including fixing the var name used in modify_cyclic_calls  
							
							... 
							
							
							
							and carefully controling the functions we add to sorted dependencies 
							
						 
						
							2023-09-25 21:16:19 -04:00  
				
					
						
							
							
								 
						
							
								f4310bcf33 
								
							 
						 
						
							
							
								
								feat: finished up mutual recursion  
							
							... 
							
							
							
							Now we "handle" vars that call the cyclic function.
That includes vars in the cyclic function as well as in other functions
"handle" meaning we modify the var to be a call that takes in more arguments. 
							
						 
						
							2023-09-25 21:16:19 -04:00  
				
					
						
							
							
								 
						
							
								ae3053522e 
								
							 
						 
						
							
							
								
								feat: Update cyclic functions to be aware of being in a cycle.  
							
							... 
							
							
							
							Finish the creation of cyclic functions
The last part is to update vars that call into a function in the cycle 
							
						 
						
							2023-09-25 21:16:19 -04:00  
				
					
						
							
							
								 
						
							
								794fc93084 
								
							 
						 
						
							
							
								
								remove unused structs  
							
							
							
						 
						
							2023-09-25 21:16:19 -04:00  
				
					
						
							
							
								 
						
							
								0b38855ce4 
								
							 
						 
						
							
							
								
								add new enum for hoistablefunctions  
							
							
							
						 
						
							2023-09-25 21:16:19 -04:00  
				
					
						
							
							
								 
						
							
								ced818c455 
								
							 
						 
						
							
							
								
								checkpoint commit  
							
							
							
						 
						
							2023-09-25 21:16:19 -04:00  
				
					
						
							
							
								 
						
							
								0fb9837ddf 
								
							 
						 
						
							
							
								
								chore: change UserFunction to HoistableFunction to prepare for mututal recursion  
							
							
							
						 
						
							2023-09-25 21:16:19 -04:00  
				
					
						
							
							
								 
						
							
								74b8ab62b2 
								
							 
						 
						
							
							
								
								chore: add comments  
							
							
							
						 
						
							2023-09-25 21:16:19 -04:00  
				
					
						
							
							
								 
						
							
								a4aa51ed2d 
								
							 
						 
						
							
							
								
								WIP: first part of mutual recursion is done.  
							
							... 
							
							
							
							This involves creating the function definition and detecting cycles.
The remaining part is to "fix" the call sites
of the mutually recursive functions 
							
						 
						
							2023-09-25 21:16:19 -04:00  
				
					
						
							
							
								 
						
							
								f379039efc 
								
							 
						 
						
							
							
								
								Fix record shorthand causing parsing ambiguity in if/else expressions.  
							
							... 
							
							
							
							Fixes  #735 . 
						
							2023-09-15 09:41:00 +02:00  
				
					
						
							
							
								 
						
							
								d808197507 
								
							 
						 
						
							
							
								
								chore: clippy fix  
							
							
							
						 
						
							2023-09-13 18:17:59 -04:00  
				
					
						
							
							
								 
						
							
								9a4f181a0f 
								
							 
						 
						
							
							
								
								chore: clippy fix  
							
							
							
						 
						
							2023-09-13 17:19:31 -04:00  
				
					
						
							
							
								 
						
							
								a45001376d 
								
							 
						 
						
							
							
								
								fix: is_record was used incorrectly in code gen,  
							
							... 
							
							
							
							the real solution was to look up the datatype and check constructors length 
							
						 
						
							2023-09-13 00:33:02 -04:00  
				
					
						
							
							
								 
						
							
								d042d55d42 
								
							 
						 
						
							
							
								
								fix clippy warnings in code gen  
							
							
							
						 
						
							2023-09-12 21:25:05 -04:00  
				
					
						
							
							
								 
						
							
								8ba5946c32 
								
							 
						 
						
							
							
								
								Preserve escape sequence after formatting  
							
							... 
							
							
							
							Bumped into this randomly. We do correctly parse escape sequence, but
  the format would simply but the unescaped string back on save. Now it
  properly re-escapes strings before flushing them back. I also removed
  the escape sequence for 'backspace' and 'new page' form feed as I
  don't see any use case for those in an Aiken program really... 
							
						 
						
							2023-09-08 12:12:15 +02:00  
				
					
						
							
							
								 
						
							
								6b70292dfb 
								
							 
						 
						
							
							
								
								chore: cargo fmt  
							
							
							
						 
						
							2023-09-06 21:10:50 -04:00  
				
					
						
							
							
								 
						
							
								dca09811c1 
								
							 
						 
						
							
							
								
								fix: empty records crashing code gen  closes   #728  
							
							
							
						 
						
							2023-08-31 17:39:38 -04:00  
				
					
						
							
							
								 
						
							
								51c44c6a30 
								
							 
						 
						
							
							
								
								fix: add an assert for better error messages when doing empty types  
							
							
							
						 
						
							2023-08-30 13:50:37 -04:00  
				
					
						
							
							
								 
						
							
								baa6917af5 
								
							 
						 
						
							
							
								
								Fix: Change type map length assert to check for greater than equals instead of equals to argument length  
							
							
							
						 
						
							2023-08-29 21:59:15 -04:00  
				
					
						
							
							
								 
						
							
								d4b9f22ac3 
								
							 
						 
						
							
							
								
								rm unnecessary mut  
							
							
							
						 
						
							2023-08-26 16:30:44 +00:00  
				
					
						
							
							
								 
						
							
								084b900b2a 
								
							 
						 
						
							
							
								
								change: traverse_with_tree now has a boolean to determine when with is called  
							
							... 
							
							
							
							fix: Opaque types are now properly handled in code gen (i.e. code gen functions, in datums/redeemers, in from data casts)
chore: add specific nested opaque type tests to code gen 
							
						 
						
							2023-08-19 20:07:37 -04:00  
				
					
						
							
							
								 
						
							
								f5a49c4df4 
								
							 
						 
						
							
							
								
								fix: aliased import of single type throws compiler error  closes   #707  
							
							
							
						 
						
							2023-08-16 23:15:51 -04:00  
				
					
						
							
							
								 
						
							
								a45e04fd9b 
								
							 
						 
						
							
							
								
								fix: using the wrong var for pattern matching  
							
							
							
						 
						
							2023-08-16 21:59:25 -04:00  
				
					
						
							
							
								 
						
							
								2456801b17 
								
							 
						 
						
							
							
								
								fix list clauses with guards and add more tests  
							
							
							
						 
						
							2023-08-16 21:59:25 -04:00  
				
					
						
							
							
								 
						
							
								0ff64e3bac 
								
							 
						 
						
							
							
								
								test: check and format tests for logical op chain  
							
							
							
						 
						
							2023-08-15 09:58:35 -04:00  
				
					
						
							
							
								 
						
							
								e14d51600f 
								
							 
						 
						
							
							
								
								feat(format): logical op chain  
							
							
							
						 
						
							2023-08-15 09:58:35 -04:00  
				
					
						
							
							
								 
						
							
								2c2f3c90fb 
								
							 
						 
						
							
							
								
								feat: new snapshots  
							
							
							
						 
						
							2023-08-15 09:58:35 -04:00  
				
					
						
							
							
								 
						
							
								05eb281f40 
								
							 
						 
						
							
							
								
								chore: can safely remove this at this point  
							
							
							
						 
						
							2023-08-15 09:58:35 -04:00  
				
					
						
							
							
								 
						
							
								e4ef386c44 
								
							 
						 
						
							
							
								
								feat(tipo): inference for and/or chains  
							
							
							
						 
						
							2023-08-15 09:58:35 -04:00  
				
					
						
							
							
								 
						
							
								ab3a418b9c 
								
							 
						 
						
							
							
								
								feat(parser): add support for and/or chaining  
							
							
							
						 
						
							2023-08-15 09:58:35 -04:00  
				
					
						
							
							
								 
						
							
								2f7784f31e 
								
							 
						 
						
							
							
								
								chore: update changelog  
							
							... 
							
							
							
							expecting a type on List<Data> from data now only checks that type is a list and not each element 
							
						 
						
							2023-08-10 23:01:46 -04:00  
				
					
						
							
							
								 
						
							
								eda388fb29 
								
							 
						 
						
							
							
								
								test(aiken-lang): add a new test for list edge case in when clause patterns  
							
							
							
						 
						
							2023-08-08 20:47:35 -04:00  
				
					
						
							
							
								 
						
							
								252f68de17 
								
							 
						 
						
							
							
								
								fix clippy  
							
							
							
						 
						
							2023-08-07 19:08:18 -04:00  
				
					
						
							
							
								 
						
							
								f464eb3702 
								
							 
						 
						
							
							
								
								Cargo fmt + clippy, with latest rust  
							
							
							
						 
						
							2023-08-07 19:00:39 -04:00  
				
					
						
							
							
								 
						
							
								0d99afe5e2 
								
							 
						 
						
							
							
								
								Cargo fmt  
							
							
							
						 
						
							2023-08-07 19:00:39 -04:00  
				
					
						
							
							
								 
						
							
								90c7753201 
								
							 
						 
						
							
							
								
								update tests for new recursion optmization  
							
							
							
						 
						
							2023-08-07 19:00:39 -04:00  
				
					
						
							
							
								 
						
							
								65984ed15b 
								
							 
						 
						
							
							
								
								fix: move where we call the with in traverse_tree_with  
							
							
							
						 
						
							2023-08-07 19:00:39 -04:00  
				
					
						
							
							
								 
						
							
								dba0e11ba7 
								
							 
						 
						
							
							
								
								Add other shadowing cases  
							
							
							
						 
						
							2023-08-07 19:00:39 -04:00  
				
					
						
							
							
								 
						
							
								fc948f0029 
								
							 
						 
						
							
							
								
								Add the same optimization to dependent functions  
							
							... 
							
							
							
							I originally didn't add this because I thought this was mutually
recursive functions, which I couldn't picture how that would work;
I refactored all this logic into modify_self_calls, which maybe needs a
better name now.
Perf gain on some stdlib tests (line concat tests) is 93%!! 
							
						 
						
							2023-08-07 19:00:39 -04:00  
				
					
						
							
							
								 
						
							
								c45caaefc8 
								
							 
						 
						
							
							
								
								Rudimentary implementation  
							
							... 
							
							
							
							Adds an identify_recursive_static_params; doesn't handle all shadowing cases yet 
							
						 
						
							2023-08-07 19:00:39 -04:00  
				
					
						
							
							
								 
						
							
								09f889b121 
								
							 
						 
						
							
							
								
								Add codegen for recursive statics case  
							
							... 
							
							
							
							We also flip the recursive_statics fields to recursive_nonstatics; This makes the codegen a little easier.  It also has a hacky way to hard code in some recursive statics for testing 
							
						 
						
							2023-08-07 19:00:39 -04:00  
				
					
						
							
							
								 
						
							
								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  
				
					
						
							
							
								 
						
							
								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  
				
					
						
							
							
								 
						
							
								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  
				
					
						
							
							
								 
						
							
								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  
				
					
						
							
							
								 
						
							
								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  
				
					
						
							
							
								 
						
							
								d633129ddf 
								
							 
						 
						
							
							
								
								fix: clearer unused var warning  closes   #579  
							
							
							
						 
						
							2023-06-23 19:04:54 -04:00  
				
					
						
							
							
								 
						
							
								8b3504e9a1 
								
							 
						 
						
							
							
								
								fix: `expect _ = ...` not including the cast from data logic if the type is data and right hand has a type annotation  
							
							
							
						 
						
							2023-06-23 18:39:12 -04:00  
				
					
						
							
							
								 
						
							
								226556bdd6 
								
							 
						 
						
							
							
								
								fix: builtins using the incorrect data to type conversion when used as a function param.  
							
							
							
						 
						
							2023-06-23 14:31:19 -04:00  
				
					
						
							
							
								 
						
							
								db369da96e 
								
							 
						 
						
							
							
								
								feat: Make traces produced by expect dependent on  
							
							... 
							
							
							
							the value of the tracing flag. 
							
						 
						
							2023-06-23 14:03:23 -04:00  
				
					
						
							
							
								 
						
							
								dbfa08a5a7 
								
							 
						 
						
							
							
								
								fix: issue with tuple clause  
							
							... 
							
							
							
							It was not consuming the next case if there was no condition being checked in the clause.
Now it properly always consumes the next clause unless last clause. 
							
						 
						
							2023-06-23 12:36:15 -04:00  
				
					
						
							
							
								 
						
							
								626033ff9b 
								
							 
						 
						
							
							
								
								fix: attempt to convert from opaque before doing monomorphization  
							
							
							
						 
						
							2023-06-22 18:20:31 -04:00  
				
					
						
							
							
								 
						
							
								24f5c4de6b 
								
							 
						 
						
							
							
								
								fix: the final clause of a when expecting another clause afterwards in nested list cases.  
							
							... 
							
							
							
							fix: all elements were being destructured in tuple clauses even if not used 
							
						 
						
							2023-06-19 21:43:38 -04:00  
				
					
						
							
							
								 
						
							
								4252ee6373 
								
							 
						 
						
							
							
								
								Implement formatter for anon binop.  
							
							
							
						 
						
							2023-06-17 08:44:59 +02:00  
				
					
						
							
							
								 
						
							
								91f03abb7b 
								
							 
						 
						
							
							
								
								Support all binary operator in the anonymous binop parser.  
							
							
							
						 
						
							2023-06-17 08:44:45 +02:00  
				
					
						
							
							
								 
						
							
								d0b4c1c3b5 
								
							 
						 
						
							
							
								
								Add remaining boolean comparison operator to anon binop parser.  
							
							... 
							
							
							
							Nothing to see here as they all have the same signature. Implementing
  arithmetic bin-operators and boolean logic operators will require some
  more logic. 
							
						 
						
							2023-06-17 07:57:37 +02:00  
				
					
						
							
							
								 
						
							
								ec94230294 
								
							 
						 
						
							
							
								
								Extend parser to accept anonymous binop as expressions.  
							
							... 
							
							
							
							This is simply a syntactic sugar which desugarize to a function call with two arguments mapped to the specified binary operator.
  Only works for '>' at this stage as a PoC, extending to all binop in the next commit. 
							
						 
						
							2023-06-17 07:36:11 +02:00  
				
					
						
							
							
								 
						
							
								ba911d48ea 
								
							 
						 
						
							
							
								
								Refactor 'is_capture' field on function expressions.  
							
							... 
							
							
							
							Refactored into an enum to make it easier to extend with a new variant to support binary operators. 
							
						 
						
							2023-06-17 07:26:46 +02:00  
				
					
						
							
							
								 
						
							
								c3bb7b0f75 
								
							 
						 
						
							
							
								
								fix: tail list being expected on when it should be empty  
							
							
							
						 
						
							2023-06-13 12:03:38 -04:00  
				
					
						
							
							
								 
						
							
								af36b5ac77 
								
							 
						 
						
							
							
								
								fixes:  
							
							... 
							
							
							
							fix: Issue where using var pattern in a when was passing the constr index instead of the constr
fix: Issue where expecting on a list had unexpected behaviors based on list length 
							
						 
						
							2023-06-13 12:03:38 -04:00  
				
					
						
							
							
								 
						
							
								aeaec6bcd8 
								
							 
						 
						
							
							
								
								fix: record format when module select  
							
							... 
							
							
							
							- instead of checking the container we need to check
  the FieldAccess label.
closes  #601  
							
						 
						
							2023-06-13 00:18:32 -04:00  
				
					
						
							
							
								 
						
							
								6bd8e94e17 
								
							 
						 
						
							
							
								
								Preserve numeric underscore and hexadecimal notation through formatting.  
							
							
							
						 
						
							2023-06-08 16:37:20 +02:00  
				
					
						
							
							
								 
						
							
								0b7682306f 
								
							 
						 
						
							
							
								
								Refactor formatter to use new 'self.int' helper function.  
							
							
							
						 
						
							2023-06-08 15:34:28 +02:00  
				
					
						
							
							
								 
						
							
								79a2174f0a 
								
							 
						 
						
							
							
								
								Extend parser to support int as hexadecimal and numeric underscore.  
							
							... 
							
							
							
							We only allow numeric underscore for decimal numbers as I am not sure how we can define it for non-decimal numbers? 
							
						 
						
							2023-06-08 15:33:50 +02:00  
				
					
						
							
							
								 
						
							
								0ea11a4d13 
								
							 
						 
						
							
							
								
								Introduce new test cases for hexadecimal and underscore parsing.  
							
							
							
						 
						
							2023-06-08 13:26:22 +02:00  
				
					
						
							
							
								 
						
							
								3fc9c8e0db 
								
							 
						 
						
							
							
								
								chore: re-add empty line handling by @KtorZ  
							
							... 
							
							
							
							Co-authored-by: KtorZ 
							
						 
						
							2023-06-07 17:21:04 -04:00  
				
					
						
							
							
								 
						
							
								1747090931 
								
							 
						 
						
							
							
								
								fix: fmt crashing with comment at end of file  
							
							... 
							
							
							
							closes  #568  
						
							2023-06-07 15:59:54 -04:00  
				
					
						
							
							
								 
						
							
								0afc3aba13 
								
							 
						 
						
							
							
								
								Fix operator precedences, in particular |>  
							
							... 
							
							
							
							Fixes  #571 . 
						
							2023-06-06 17:17:47 +02:00  
				
					
						
							
							
								 
						
							
								5faa925aea 
								
							 
						 
						
							
							
								
								fix: error when using nested boolean checks in when conditions  
							
							
							
						 
						
							2023-06-06 03:04:12 -04:00  
				
					
						
							
							
								 
						
							
								bfd2a50a6b 
								
							 
						 
						
							
							
								
								fix: zero arg functions were grabbing extra dependencies they didn't need to  
							
							... 
							
							
							
							fix: Had the wrong conversion for constant maps to plutus data. Fixed to check for right conversion 
							
						 
						
							2023-06-04 15:23:36 -04:00  
				
					
						
							
							
								 
						
							
								cf6d04e95b 
								
							 
						 
						
							
							
								
								chore: some clippy warnings  
							
							
							
						 
						
							2023-06-02 19:47:52 -04:00  
				
					
						
							
							
								 
						
							
								cdf8bd6548 
								
							 
						 
						
							
							
								
								fix: list items in when were not being added to scope  
							
							... 
							
							
							
							fix: tuple clause must preserve previous clause properties state 
							
						 
						
							2023-06-02 18:38:21 -04:00  
				
					
						
							
							
								 
						
							
								8f0cf289b4 
								
							 
						 
						
							
							
								
								fixes:  
							
							... 
							
							
							
							fix: rearrange clauses and fill in gaps now handles nested patterns in a uniform way
fix: discards in records was being sorted incorrectly leading to type issues
chore: remove some filter maps in cases where None is impossible anyway
chore: some refactoring on a couple functions to clean up 
							
						 
						
							2023-06-02 18:38:21 -04:00  
				
					
						
							
							
								 
						
							
								e5d9398625 
								
							 
						 
						
							
							
								
								fix: add module name to type mismatch error  
							
							... 
							
							
							
							* if expected and given are equal then we show
  the module
* we could do it in all cases it looks kinda nice
* format is `Type - ModuleName` 
							
						 
						
							2023-06-01 20:00:36 -04:00  
				
					
						
							
							
								 
						
							
								6955f79035 
								
							 
						 
						
							
							
								
								chore: update changelog  
							
							... 
							
							
							
							fix: Minor improvement to record update to use empty list instead of the null list from a record fields list. 
							
						 
						
							2023-06-01 12:22:42 -04:00  
				
					
						
							
							
								 
						
							
								c710d488d6 
								
							 
						 
						
							
							
								
								fix: need to sort record update args so they match indices order  
							
							
							
						 
						
							2023-05-30 20:23:12 -04:00  
				
					
						
							
							
								 
						
							
								52a51acc69 
								
							 
						 
						
							
							
								
								fix: fix record update so it actually works  
							
							... 
							
							
							
							Created multiple tests of varying record updates 
							
						 
						
							2023-05-30 20:23:12 -04:00  
				
					
						
							
							
								 
						
							
								a65821d5ab 
								
							 
						 
						
							
							
								
								fix: constrs that contain fields now work when passed as an arg to a function.  
							
							... 
							
							
							
							Convert acceptance test 22
Create test for passing constr as a function 
							
						 
						
							2023-05-30 17:28:52 -04:00  
				
					
						
							
							
								 
						
							
								26a607eb00 
								
							 
						 
						
							
							
								
								fix: bad parsing of comments at end of file  closes   #551  
							
							
							
						 
						
							2023-05-30 11:07:39 -04:00  
				
					
						
							
							
								 
						
							
								2860bac4c6 
								
							 
						 
						
							
							
								
								fix: bad parsing for module select type annotations  closes   #550  
							
							
							
						 
						
							2023-05-30 10:39:49 -04:00  
				
					
						
							
							
								 
						
							
								7b3e1c6952 
								
							 
						 
						
							
							
								
								feat: adjust failing test syntax  
							
							... 
							
							
							
							* also add a formatter test 
							
						 
						
							2023-05-25 18:21:12 -04:00  
				
					
						
							
							
								 
						
							
								a44b5e1a77 
								
							 
						 
						
							
							
								
								test: adjust formatter tests after latest tweaks  
							
							
							
						 
						
							2023-05-25 17:37:53 -04:00  
				
					
						
							
							
								 
						
							
								151db8d4ae 
								
							 
						 
						
							
							
								
								fix: formatter weirdness relates to  #542  
							
							
							
						 
						
							2023-05-25 17:19:02 -04:00  
				
					
						
							
							
								 
						
							
								a124a16a61 
								
							 
						 
						
							
							
								
								feat(tests): implement a way to express that tests can fail  
							
							
							
						 
						
							2023-05-25 16:54:53 -04:00  
				
					
						
							
							
								 
						
							
								173154e406 
								
							 
						 
						
							
							
								
								fix: (code gen): expect type now properly tracks constructor dependency.  
							
							... 
							
							
							
							This was specific to code gen generated functions. 
							
						 
						
							2023-05-17 17:56:01 -04:00  
				
					
						
							
							
								 
						
							
								4838ebd39e 
								
							 
						 
						
							
							
								
								feat: record modules are no longer unimplemented for no fields  
							
							... 
							
							
							
							refactor: remove some clones and use a ref instead
test: add acceptance test 81 
							
						 
						
							2023-05-14 18:30:51 -04:00  
				
					
						
							
							
								 
						
							
								3356e2ecd0 
								
							 
						 
						
							
							
								
								fix: nested constrs with a single index was ignoring fields  
							
							
							
						 
						
							2023-05-14 17:33:01 -04:00  
				
					
						
							
							
								 
						
							
								4b8fd1769a 
								
							 
						 
						
							
							
								
								chore: change pattern todos to have a better error message  
							
							
							
						 
						
							2023-05-08 16:27:43 -04:00  
				
					
						
							
							
								 
						
							
								49898f7420 
								
							 
						 
						
							
							
								
								fix: to_data_builtin to operate on arg not func result  
							
							
							
						 
						
							2023-05-08 16:15:09 -04:00  
				
					
						
							
							
								 
						
							
								b36cf1c029 
								
							 
						 
						
							
							
								
								chore: refactor default functions in uplc_code_gen.  
							
							... 
							
							
							
							feat: Add an identity optimization to remove functions that return the argument only. 
							
						 
						
							2023-05-08 16:15:09 -04:00  
				
					
						
							
							
								 
						
							
								d2dbae1cbf 
								
							 
						 
						
							
							
								
								fix:  
							
							... 
							
							
							
							Negative numbers now show up as a constant instead of 0 - that number
Expect on constructors without field maps no longer panics
Expect on constructors with discard as assigned field names now no longer throws free unique 
							
						 
						
							2023-04-30 14:44:54 -04:00  
				
					
						
							
							
								 
						
							
								7201163b77 
								
							 
						 
						
							
							
								
								fix: better function hoisting for code gen functions  
							
							... 
							
							
							
							mainly code gen function dependencies won't be hoisted to the top. 
							
						 
						
							2023-04-28 17:05:46 -04:00  
				
					
						
							
							
								 
						
							
								baa2cef6c4 
								
							 
						 
						
							
							
								
								feat(playground): impl clone for some errors  
							
							
							
						 
						
							2023-04-24 17:13:20 -04:00  
				
					
						
							
							
								 
						
							
								ff87a4c60f 
								
							 
						 
						
							
							
								
								fix: "when bool is" was not properly assigning term to body when not a complex clause  
							
							... 
							
							
							
							Add some end to end tests to test uplc 
							
						 
						
							2023-04-23 12:51:23 -04:00  
				
					
						
							
							
								 
						
							
								9bb1a88f23 
								
							 
						 
						
							
							
								
								fix: expect [] on a non-empty list now fails.  
							
							
							
						 
						
							2023-04-21 17:39:21 -04:00  
				
					
						
							
							
								 
						
							
								c9a762a13c 
								
							 
						 
						
							
							
								
								fix: we weren't including the name unused var warning  
							
							
							
						 
						
							2023-04-20 16:53:56 -04:00  
				
					
						
							
							
								 
						
							
								c2ee631d07 
								
							 
						 
						
							
							
								
								feat: new setup for the gen_uplc testing  
							
							... 
							
							
							
							* new test only module aiken_project::tests
* move TestProject to tests/mod.rs
* new tests go in gen_uplc.rs 
							
						 
						
							2023-04-19 16:08:55 -04:00  
				
					
						
							
							
								 
						
							
								e4276d7f5a 
								
							 
						 
						
							
							
								
								move uplc tests to new location  
							
							
							
						 
						
							2023-04-19 16:08:55 -04:00  
				
					
						
							
							
								 
						
							
								23a7e7e680 
								
							 
						 
						
							
							
								
								chore: convert acceptance test 5  
							
							... 
							
							
							
							Also constructors with no fields are now converted to a constant data term. 
							
						 
						
							2023-04-19 16:08:55 -04:00  
				
					
						
							
							
								 
						
							
								7dd13f8d73 
								
							 
						 
						
							
							
								
								feat: add end to end tests to replace acceptance tests with strict uplc comparison.  
							
							... 
							
							
							
							Add acceptance tests 1,2, 6 as end to end tests 
							
						 
						
							2023-04-19 16:08:55 -04:00  
				
					
						
							
							
								 
						
							
								3b351d36fb 
								
							 
						 
						
							
							
								
								fix(aiken-lang): assignment as last expr in when and if  
							
							
							
						 
						
							2023-04-16 19:55:47 -04:00  
				
					
						
							
							
								 
						
							
								98c61ca151 
								
							 
						 
						
							
							
								
								feat(aiken-lang): anonymous functions  
							
							... 
							
							
							
							@MartinSchere noticed a weird error
where an unknown variable wasn't being reported
the type checker was incorrectly scoping
arguments for anonymous function definitions.
Luckily his compilation failed due to a FreeUnique
error during code gen which is good. But this may
have been the source of other mysterious FreeUnique
errors.
I also noticed that anonymous function allowed
arguments with the same name to be defined.
`fn(arg, arg)`
This now returns an error. 
							
						 
						
							2023-04-16 16:38:43 -04:00  
				
					
						
							
							
								 
						
							
								70f12d3fc5 
								
							 
						 
						
							
							
								
								chore: new branch with some things from the bumpalo branch  
							
							
							
						 
						
							2023-04-13 01:28:27 -04:00  
				
					
						
							
							
								 
						
							
								fc1b8738df 
								
							 
						 
						
							
							
								
								fix: fixed how the ir was generating for expect Void, expect Bool, let Void  
							
							... 
							
							
							
							add some acceptance tests for the various scenarios 
							
						 
						
							2023-04-12 22:37:33 -04:00  
				
					
						
							
							
								 
						
							
								1e35281650 
								
							 
						 
						
							
							
								
								clause guard with discard is now handled  
							
							
							
						 
						
							2023-04-12 08:26:03 +02:00  
				
					
						
							
							
								 
						
							
								e69a70f49c 
								
							 
						 
						
							
							
								
								remove final wrapper and replace with equivalent air elements  
							
							
							
						 
						
							2023-04-09 17:43:56 -04:00  
				
					
						
							
							
								 
						
							
								9e95e24624 
								
							 
						 
						
							
							
								
								now tests are passing  
							
							
							
						 
						
							2023-04-09 17:43:56 -04:00  
				
					
						
							
							
								 
						
							
								efb901f3b4 
								
							 
						 
						
							
							
								
								fix: issue with modifying a functions dependencies and adding a function that depended on it causing infinite loops  
							
							
							
						 
						
							2023-04-09 17:43:56 -04:00  
				
					
						
							
							
								 
						
							
								a17ebf301f 
								
							 
						 
						
							
							
								
								fix: now we monomorphize __expect_type functions  
							
							
							
						 
						
							2023-04-09 17:43:56 -04:00  
				
					
						
							
							
								 
						
							
								9d9f8a914a 
								
							 
						 
						
							
							
								
								fix generics causing a free unique due to ordering in expect_type  
							
							
							
						 
						
							2023-04-09 17:43:56 -04:00  
				
					
						
							
							
								 
						
							
								581c86ed83 
								
							 
						 
						
							
							
								
								chore: commented code removal  
							
							
							
						 
						
							2023-04-09 17:43:56 -04:00  
				
					
						
							
							
								 
						
							
								8d81345fb1 
								
							 
						 
						
							
							
								
								fix: diff_defined_types was not being filled if constructor had 0 args  
							
							
							
						 
						
							2023-04-09 17:43:56 -04:00  
				
					
						
							
							
								 
						
							
								f8483da4e0 
								
							 
						 
						
							
							
								
								Code gen now handles expecting on validator args in the air stack.  
							
							... 
							
							
							
							Thus allowing us to use code gen created functions to expect on data types including recursive ones.
Some minor tweaks to the air.
Added a uplc optimization for later. 
							
						 
						
							2023-04-09 17:43:56 -04:00  
				
					
						
							
							
								 
						
							
								4e4eed13e1 
								
							 
						 
						
							
							
								
								refactor define_ir_recurse to use let else  
							
							
							
						 
						
							2023-04-09 17:43:56 -04:00  
				
					
						
							
							
								 
						
							
								4ff0504d58 
								
							 
						 
						
							
							
								
								feat: change define_ir_processor to handle code_gen_functions  
							
							... 
							
							
							
							Also flattened out that function by using let else 
							
						 
						
							2023-04-09 17:43:56 -04:00  
				
					
						
							
							
								 
						
							
								bc7b07c1d9 
								
							 
						 
						
							
							
								
								fix: expect_type now works on recursice constructors and validator args are now handled by air  
							
							
							
						 
						
							2023-04-09 17:43:56 -04:00  
				
					
						
							
							
								 
						
							
								6c932bb562 
								
							 
						 
						
							
							
								
								expect on map and list now use a function that gets instantiated as air in code gen functions  
							
							
							
						 
						
							2023-04-09 17:43:56 -04:00  
				
					
						
							
							
								 
						
							
								abd97f0ade 
								
							 
						 
						
							
							
								
								changed assert_on_list from being defined at uplc level to being defined at air level to enable proper hoisting  
							
							
							
						 
						
							2023-04-09 17:43:56 -04:00  
				
					
						
							
							
								 
						
							
								f4ba6b8985 
								
							 
						 
						
							
							
								
								fix:  unused validator args had an incorrect if check  
							
							
							
						 
						
							2023-04-09 17:43:56 -04:00  
				
					
						
							
							
								 
						
							
								3f45b524b8 
								
							 
						 
						
							
							
								
								feat: unused validator args are not expect checked  
							
							
							
						 
						
							2023-04-09 17:43:56 -04:00  
				
					
						
							
							
								 
						
							
								8c8312a412 
								
							 
						 
						
							
							
								
								fix: expect true was always expecting false  
							
							
							
						 
						
							2023-04-09 17:43:56 -04:00  
				
					
						
							
							
								 
						
							
								ddf0fbfa0a 
								
							 
						 
						
							
							
								
								fix: expect void now checks for unit instead of expecting data  
							
							... 
							
							
							
							Args in validator are now fully expected on.
Add new air FieldsEmpty to make checking for empty constructors easier 
							
						 
						
							2023-04-09 17:43:56 -04:00  
				
					
						
							
							
								 
						
							
								d620f6367c 
								
							 
						 
						
							
							
								
								Bootstrap schema validation for simple constants.  
							
							
							
						 
						
							2023-04-08 08:57:03 +02:00  
				
					
						
							
							
								 
						
							
								1444c9328d 
								
							 
						 
						
							
							
								
								fix some typos  
							
							
							
						 
						
							2023-04-07 16:51:18 -04:00  
				
					
						
							
							
								 
						
							
								d8cbcde61d 
								
							 
						 
						
							
							
								
								feat(validators): unused param warning  
							
							... 
							
							
							
							Params being unused were being incorrectly reported.
This was because params need to be initialized
at a scope above both the validator functions. This
manifested when using a multi-validator where one of
the params was not used in both validators.
The easy fix was to add a field called
`is_validator_param` to `ArgName`. Then
when infering a function we don't initialize args
that are validator params. We now handle this
in a scope that is created before in the match branch for
validator in the `infer_definition` function. In there
we call `.in_new_scope` and initialize params for usage
detection. 
							
						 
						
							2023-03-30 21:15:27 -04:00  
				
					
						
							
							
								 
						
							
								8fad5b77c6 
								
							 
						 
						
							
							
								
								chore: add some unit tests to stack  
							
							
							
						 
						
							2023-03-30 11:32:18 -04:00  
				
					
						
							
							
								 
						
							
								6a4f62d074 
								
							 
						 
						
							
							
								
								Allow newlines in when clause sequences.  
							
							
							
						 
						
							2023-03-30 13:49:00 +02:00  
				
					
						
							
							
								 
						
							
								5d4c95d538 
								
							 
						 
						
							
							
								
								Supports commenting validator inner functions.  
							
							
							
						 
						
							2023-03-30 13:37:09 +02:00  
				
					
						
							
							
								 
						
							
								814157dd7b 
								
							 
						 
						
							
							
								
								Fix formatter inconsistency with record spread patterns.  
							
							
							
						 
						
							2023-03-30 13:02:20 +02:00  
				
					
						
							
							
								 
						
							
								17431daaa4 
								
							 
						 
						
							
							
								
								Correctly nest multiline pipeline expressions.  
							
							
							
						 
						
							2023-03-30 12:48:15 +02:00  
				
					
						
							
							
								 
						
							
								cc18e7cff2 
								
							 
						 
						
							
							
								
								Fix formatting of function expressions with traces  
							
							... 
							
							
							
							Fixes  #471  
						
							2023-03-30 09:21:46 +02:00  
				
					
						
							
							
								 
						
							
								aa29636d50 
								
							 
						 
						
							
							
								
								fix: scope issue with  ir_stack being incremented wrongly with assignment  
							
							... 
							
							
							
							Also fixed  scope of constructor tag and void in whens 
							
						 
						
							2023-03-28 21:15:22 -04:00  
				
					
						
							
							
								 
						
							
								80f2fd746d 
								
							 
						 
						
							
							
								
								test(gen_uplc::scope): more replace unit tests  
							
							... 
							
							
							
							Co-authored-by: Kasey White <kwhitemsg@gmail.com> 
							
						 
						
							2023-03-27 20:00:32 -04:00  
				
					
						
							
							
								 
						
							
								e5980c5a96 
								
							 
						 
						
							
							
								
								feat(gen_uplc::scope): use some assumptions to simplify replace  
							
							
							
						 
						
							2023-03-27 20:00:32 -04:00  
				
					
						
							
							
								 
						
							
								c8ac9aa165 
								
							 
						 
						
							
							
								
								test: add replace same value unit test  
							
							
							
						 
						
							2023-03-27 20:00:32 -04:00  
				
					
						
							
							
								 
						
							
								5453572fc0 
								
							 
						 
						
							
							
								
								test(gen_uplc::scope): common ancestor method  
							
							... 
							
							
							
							Co-authored-by: Kasey White <kwhitemsg@gmail.com> 
							
						 
						
							2023-03-27 20:00:32 -04:00  
				
					
						
							
							
								 
						
							
								822bb4242a 
								
							 
						 
						
							
							
								
								fix: function hoisting errors --  
							
							... 
							
							
							
							One involving zero args being hoisted instead of compiled and replaced.
Second involving not updating a function's dependeny function scope. Which then hoisted to a lower scope and caused free unique 
							
						 
						
							2023-03-27 20:00:32 -04:00  
				
					
						
							
							
								 
						
							
								96b7fb1c50 
								
							 
						 
						
							
							
								
								chore: make clippy happy  
							
							
							
						 
						
							2023-03-27 20:00:32 -04:00  
				
					
						
							
							
								 
						
							
								b5ed958f62 
								
							 
						 
						
							
							
								
								chore: remove unused variable  
							
							
							
						 
						
							2023-03-27 20:00:32 -04:00  
				
					
						
							
							
								 
						
							
								b2dcb112c9 
								
							 
						 
						
							
							
								
								fix last 2 acceptance tests  
							
							
							
						 
						
							2023-03-27 20:00:32 -04:00  
				
					
						
							
							
								 
						
							
								51a6589aac 
								
							 
						 
						
							
							
								
								2 acceptance tests left to fix  
							
							
							
						 
						
							2023-03-27 20:00:32 -04:00