9f96e4bc5a 
								
							 
						 
						
							
							
								
								fix first compiler pass of errors  
							
							
							
						 
						
							2024-02-07 12:36:35 -05:00  
				
					
						
							
							
								 
						
							
								a12c374258 
								
							 
						 
						
							
							
								
								Start turning AirTree statements into expressions (let)  
							
							... 
							
							
							
							Still many places to fix, WIP. 
							
						 
						
							2024-02-07 12:36:35 -05:00  
				
					
						
							
							
								 
						
							
								3c8460e6af 
								
							 
						 
						
							
							
								
								Allow annotating Data for blueprint  
							
							... 
							
							
							
							This commit allows Data to be optionally annotated with a
  phantom-type. This doesn't change anything in codegen but we can now
  leverage this information to generate better blueprint schemas. 
							
						 
						
							2024-02-07 11:48:52 -05:00  
				
					
						
							
							
								 
						
							
								20ce19dfb1 
								
							 
						 
						
							
							
								
								Fix error hint when expecting 0 generic parameters.  
							
							
							
						 
						
							2024-02-07 11:48:52 -05:00  
				
					
						
							
							
								 
						
							
								3b4c6cb2aa 
								
							 
						 
						
							
							
								
								fix: missing message error term in one place for type is void  
							
							
							
						 
						
							2024-02-07 11:48:52 -05:00  
				
					
						
							
							
								 
						
							
								e25be7643e 
								
							 
						 
						
							
							
								
								discards will now check for type too.  
							
							
							
						 
						
							2024-02-07 11:48:52 -05:00  
				
					
						
							
							
								 
						
							
								982eff449e 
								
							 
						 
						
							
							
								
								chore: Release  
							
							
							
						 
						
							2024-01-31 13:48:20 -05:00  
				
					
						
							
							
								 
						
							
								551941392e 
								
							 
						 
						
							
							
								
								fix: assert had one minor edge case due to final clauses with lists  
							
							
							
						 
						
							2024-01-31 00:05:09 -05:00  
				
					
						
							
							
								 
						
							
								444bccf19c 
								
							 
						 
						
							
							
								
								fix: change list_access_to_uplc to properly handle list discards  
							
							
							
						 
						
							2024-01-30 23:53:33 -05:00  
				
					
						
							
							
								 
						
							
								a83220c8d9 
								
							 
						 
						
							
							
								
								fix: module_name was being overrided by the moduleselect field  
							
							
							
						 
						
							2024-01-30 23:52:50 -05:00  
				
					
						
							
							
								 
						
							
								8584adc1b7 
								
							 
						 
						
							
							
								
								chore: Release  
							
							
							
						 
						
							2024-01-25 15:10:11 -05:00  
				
					
						
							
							
								 
						
							
								78d2049d7b 
								
							 
						 
						
							
							
								
								fix: Using the wrong match string for discards in FieldsExpose  
							
							... 
							
							
							
							Also need to return a lambda wrapped term from list_access_to_uplc under all conditions 
							
						 
						
							2024-01-25 14:18:36 -05:00  
				
					
						
							
							
								 
						
							
								defd36ad8c 
								
							 
						 
						
							
							
								
								chore: Release  
							
							
							
						 
						
							2024-01-25 11:07:32 -05:00  
				
					
						
							
							
								 
						
							
								36a0b317ad 
								
							 
						 
						
							
							
								
								fix condition to account for tail presence  
							
							
							
						 
						
							2024-01-24 16:29:40 -05:00  
				
					
						
							
							
								 
						
							
								51f1f2b67f 
								
							 
						 
						
							
							
								
								change redundant if branches  
							
							
							
						 
						
							2024-01-24 16:29:40 -05:00  
				
					
						
							
							
								 
						
							
								3a44c45b48 
								
							 
						 
						
							
							
								
								fix: one builtin error wasn't be caught with a messaged exception  
							
							
							
						 
						
							2024-01-24 16:29:40 -05:00  
				
					
						
							
							
								 
						
							
								eda4e259d6 
								
							 
						 
						
							
							
								
								minor fix and some refactoring on the if statements  
							
							
							
						 
						
							2024-01-24 16:29:40 -05:00  
				
					
						
							
							
								 
						
							
								82fc82ceee 
								
							 
						 
						
							
							
								
								fix: used wrong index in tupleAcessor  
							
							
							
						 
						
							2024-01-24 16:29:40 -05:00  
				
					
						
							
							
								 
						
							
								956c3d6cf0 
								
							 
						 
						
							
							
								
								feat: refactor code gen to avoid builtin errors when tracing is turned on  
							
							
							
						 
						
							2024-01-24 16:29:40 -05:00  
				
					
						
							
							
								 
						
							
								54a1b50138 
								
							 
						 
						
							
							
								
								Make behavior between curly- and paren-delimited blocks consistent.  
							
							... 
							
							
							
							Note that the formatter rewrite parens-block sequences as curly-block
  sequences anyway. Albeit weird looking syntax, they are valid
  nonetheless.
  I also clarified a bit the hints and description of the
  'illegal::return' error as it would mistakenly say 'function' instead
  of 'block'. 
							
						 
						
							2024-01-20 10:37:07 +01:00  
				
					
						
							
							
								 
						
							
								bf96c3afd2 
								
							 
						 
						
							
							
								
								Add more tests & rename 'Invalid' -> 'Unfinished'  
							
							
							
						 
						
							2024-01-20 10:26:33 +01:00  
				
					
						
							
							
								 
						
							
								cb6fd59dbd 
								
							 
						 
						
							
							
								
								Fix minor typo in error label  
							
							
							
						 
						
							2024-01-20 09:58:36 +01:00  
				
					
						
							
							
								 
						
							
								25a837ab3f 
								
							 
						 
						
							
							
								
								feat: parser and check fixes  
							
							... 
							
							
							
							- do not erase sequences if the sole expression is an assignment
- emit parse error if an assignment is assigned to an assignment
- do not allow assignments in logical op chains 
							
						 
						
							2024-01-19 14:32:21 -05:00  
				
					
						
							
							
								 
						
							
								2b4137dc24 
								
							 
						 
						
							
							
								
								Revert "minor refactor"  
							
							... 
							
							
							
							This reverts commit 21f0b3a6220fdafb8f6aad6855de89d8cdde0e1b.
  Rationale:
  The absence of clause guard was here done *on purpose*. Indeed,
  introducing a clause guard here forces either duplication or the use
  of a wildcard which is not "future proof".
  Should we make a change to that one day (e.g. add a new variant to
  TraceLevel), we won't get any compiler warning and we'll very likely
  forget to update that particular section of the code.
  So as much as possible, enforce complete pattern-match on variants
  make for code that is easier to maintain in the long-run. 
							
						 
						
							2024-01-19 14:31:09 +01:00  
				
					
						
							
							
								 
						
							
								af90b38bf8 
								
							 
						 
						
							
							
								
								minor refactor  
							
							
							
						 
						
							2024-01-19 14:31:04 +01:00  
				
					
						
							
							
								 
						
							
								6fa272bd34 
								
							 
						 
						
							
							
								
								Remove compiler-generated helper 'global' traces in compact mode.  
							
							... 
							
							
							
							Since there's no line number to show here, we don't have much choice. And the alternative of showing shorter traces as code is just ugly as hell. 
							
						 
						
							2024-01-19 14:30:44 +01:00  
				
					
						
							
							
								 
						
							
								59c784778e 
								
							 
						 
						
							
							
								
								Convert span's start to line number + col  
							
							... 
							
							
							
							This requires to make line numbers a first-class citizen in the module
  hierarchy but it is fortunately not _too involved_. 
							
						 
						
							2024-01-19 14:30:15 +01:00  
				
					
						
							
							
								 
						
							
								e67d5863a1 
								
							 
						 
						
							
							
								
								Introduce 'compact' trace level verbosity  
							
							... 
							
							
							
							For now, it only shows the span start. We'll change that in the next commit to show a line number and a column. 
							
						 
						
							2024-01-19 14:30:15 +01:00  
				
					
						
							
							
								 
						
							
								627c6b576e 
								
							 
						 
						
							
							
								
								Move line_numbers under 'aiken-lang'  
							
							... 
							
							
							
							And add some unit tests to ensure things are working properly. 
							
						 
						
							2024-01-19 14:30:15 +01:00  
				
					
						
							
							
								 
						
							
								f79b37d551 
								
							 
						 
						
							
							
								
								Replace 'bool' with 'TraceLevel' in codegen  
							
							... 
							
							
							
							Co-authored-by: KtorZ <matthias.benkort@gmail.com> 
							
						 
						
							2024-01-19 14:30:15 +01:00  
				
					
						
							
							
								 
						
							
								d27ea98a8f 
								
							 
						 
						
							
							
								
								Rework tracing arguments to --keep-traces & --trace-level  
							
							... 
							
							
							
							This allows for a more fine-grained control over how the traces are showed. Now users can instrument the compiler to preserve only their user-defined traces, or the only the compiler, or all, or none. We also want to add another trace level on top of that: 'compact' to only show line numbers; which will work for both user-defined and/or compiler-generated traces. 
							
						 
						
							2024-01-19 14:30:15 +01:00  
				
					
						
							
							
								 
						
							
								d26524048e 
								
							 
						 
						
							
							
								
								fix: headlist builtin on assoc lists  
							
							... 
							
							
							
							implement chooseunit for 0 args 
							
						 
						
							2024-01-13 19:29:34 -05:00  
				
					
						
							
							
								 
						
							
								c7af27a6ba 
								
							 
						 
						
							
							
								
								fix: generic edge case with tuples that allowed 2 tuples and 3 tuples to use the same monomorphized function.  
							
							... 
							
							
							
							Also massively reduced the space taken up by generics in scripts when using generics with list and tuples 
							
						 
						
							2024-01-13 17:46:32 -05:00  
				
					
						
							
							
								 
						
							
								4a8fecb70a 
								
							 
						 
						
							
							
								
								fix: satisfy clippy's demands  
							
							
							
						 
						
							2024-01-11 14:53:02 -05:00  
				
					
						
							
							
								 
						
							
								8b62873ef5 
								
							 
						 
						
							
							
								
								fix(format): post trace sequences getting wrapped in curlies  closes   #781  
							
							
							
						 
						
							2024-01-09 22:39:55 -05:00  
				
					
						
							
							
								 
						
							
								ff462fa8ea 
								
							 
						 
						
							
							
								
								don't need clippy macro anymore :)  
							
							
							
						 
						
							2024-01-08 18:08:50 -05:00  
				
					
						
							
							
								 
						
							
								f722af1149 
								
							 
						 
						
							
							
								
								fix: accidentally put quotes around tail_name  
							
							
							
						 
						
							2024-01-08 18:08:50 -05:00  
				
					
						
							
							
								 
						
							
								2216f387c3 
								
							 
						 
						
							
							
								
								refactor: change codegen uplc to have more type safety  
							
							... 
							
							
							
							Also refactor list_access_to_uplc 
							
						 
						
							2024-01-08 18:08:50 -05:00  
				
					
						
							
							
								 
						
							
								30a6b77116 
								
							 
						 
						
							
							
								
								Get rid of 'VoidMsg' in favor of an 'Option'.  
							
							
							
						 
						
							2024-01-04 16:03:51 -05:00  
				
					
						
							
							
								 
						
							
								c50a9cb5bd 
								
							 
						 
						
							
							
								
								refactor: convert msgs to use AirMsg type instead of AirTree  
							
							
							
						 
						
							2024-01-04 16:03:51 -05:00  
				
					
						
							
							
								 
						
							
								394cac86b8 
								
							 
						 
						
							
							
								
								feat: expect on a type now can take in a msg when in trace mode  
							
							
							
						 
						
							2024-01-04 16:03:51 -05:00  
				
					
						
							
							
								 
						
							
								4fc65cc600 
								
							 
						 
						
							
							
								
								feat: change expect from data on constrs to take in a message term  
							
							
							
						 
						
							2024-01-04 16:03:51 -05:00  
				
					
						
							
							
								 
						
							
								c7a1ff0959 
								
							 
						 
						
							
							
								
								refactor how tracing is popped off to be in one location in uplc_gen  
							
							
							
						 
						
							2024-01-04 16:03:51 -05:00  
				
					
						
							
							
								 
						
							
								355e38d6e2 
								
							 
						 
						
							
							
								
								feat: expects now print the line of code that failed  
							
							
							
						 
						
							2024-01-04 16:03:51 -05:00  
				
					
						
							
							
								 
						
							
								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  
				
					
						
							
							
								 
						
							
								2647e4aae6 
								
							 
						 
						
							
							
								
								chore: Release  
							
							
							
						 
						
							2023-12-04 22:14:03 -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  
				
					
						
							
							
								 
						
							
								49bd4ba33d 
								
							 
						 
						
							
							
								
								chore: Release  
							
							
							
						 
						
							2023-10-25 19:00:03 -04: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  
				
					
						
							
							
								 
						
							
								fb6cbbec8b 
								
							 
						 
						
							
							
								
								chore: Release  
							
							
							
						 
						
							2023-09-29 22:08:09 -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  
				
					
						
							
							
								 
						
							
								82ceb5b696 
								
							 
						 
						
							
							
								
								chore: Release  
							
							
							
						 
						
							2023-09-29 19:39:28 -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  
				
					
						
							
							
								 
						
							
								ee4001d2c8 
								
							 
						 
						
							
							
								
								chore: Release  
							
							
							
						 
						
							2023-09-20 18:03:46 +02: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  
				
					
						
							
							
								 
						
							
								b075d85b40 
								
							 
						 
						
							
							
								
								chore: Release  
							
							
							
						 
						
							2023-08-24 15:05:12 -06:00  
				
					
						
							
							
								 
						
							
								a7062ccb88 
								
							 
						 
						
							
							
								
								chore: fix versions  
							
							
							
						 
						
							2023-08-24 15:04:19 -06:00  
				
					
						
							
							
								 
						
							
								747e057d05 
								
							 
						 
						
							
							
								
								fix: tags  
							
							
							
						 
						
							2023-08-24 15:00:09 -06:00  
				
					
						
							
							
								 
						
							
								2f0211a7b1 
								
							 
						 
						
							
							
								
								Bump all version manually because cargo workspaces didn't work.  
							
							
							
						 
						
							2023-08-22 13:27:10 +02:00  
				
					
						
							
							
								 
						
							
								89c55a23fa 
								
							 
						 
						
							
							
								
								chore: Release  
							
							
							
						 
						
							2023-08-19 20:17:00 -04: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  
				
					
						
							
							
								 
						
							
								690e41261e 
								
							 
						 
						
							
							
								
								chore: Release  
							
							
							
						 
						
							2023-08-16 23:30:21 -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  
				
					
						
							
							
								 
						
							
								97acd6d7bd 
								
							 
						 
						
							
							
								
								chore: Release  
							
							
							
						 
						
							2023-07-15 21:37:10 -04:00  
				
					
						
							
							
								 
						
							
								77a627817b 
								
							 
						 
						
							
							
								
								chore: prepare changelog for release  
							
							
							
						 
						
							2023-07-15 21:34:41 -04:00  
				
					
						
							
							
								 
						
							
								1b8e94fe32 
								
							 
						 
						
							
							
								
								feat: expect boolean sugar  
							
							
							
						 
						
							2023-07-15 20:50:02 -04:00  
				
					
						
							
							
								 
						
							
								db3b5c74bb 
								
							 
						 
						
							
							
								
								fix: todo and fail spans  
							
							
							
						 
						
							2023-07-15 20:08:16 -04:00  
				
					
						
							
							
								 
						
							
								69fdee9f7e 
								
							 
						 
						
							
							
								
								fix: trace expr  
							
							
							
						 
						
							2023-07-15 20:08:16 -04:00  
				
					
						
							
							
								 
						
							
								2edfd33594 
								
							 
						 
						
							
							
								
								fix: some attempted adjustments  
							
							
							
						 
						
							2023-07-15 20:08:16 -04:00  
				
					
						
							
							
								 
						
							
								252b760ca1 
								
							 
						 
						
							
							
								
								test: remove prefix on all format tests  
							
							
							
						 
						
							2023-07-14 16:56:27 -04:00  
				
					
						
							
							
								 
						
							
								eafe3cdf75 
								
							 
						 
						
							
							
								
								test: fail with expr relates to  #675  
							
							
							
						 
						
							2023-07-14 13:09:55 -04:00  
				
					
						
							
							
								 
						
							
								621017bd93 
								
							 
						 
						
							
							
								
								chore: Release  
							
							
							
						 
						
							2023-07-14 10:55:13 -04:00  
				
					
						
							
							
								 
						
							
								e7c1b28b52 
								
							 
						 
						
							
							
								
								feat: add ability to reference validators in tests  closes   #632  
							
							
							
						 
						
							2023-07-12 18:29:03 -04:00  
				
					
						
							
							
								 
						
							
								13ee62c05c 
								
							 
						 
						
							
							
								
								fix: don't break failing test defs for current users  
							
							
							
						 
						
							2023-07-12 09:16:37 -04:00  
				
					
						
							
							
								 
						
							
								03e7d6e944 
								
							 
						 
						
							
							
								
								feat: update syntax for failing test to be more consistent  
							
							
							
						 
						
							2023-07-12 09:16:37 -04:00  
				
					
						
							
							
								 
						
							
								1ab1ff9a1f 
								
							 
						 
						
							
							
								
								feat: rename error to fail  
							
							
							
						 
						
							2023-07-12 09:16:37 -04:00  
				
					
						
							
							
								 
						
							
								914b8d4e74 
								
							 
						 
						
							
							
								
								fix: infer validator args as Data if Unbound  closes   #649  
							
							
							
						 
						
							2023-07-11 13:51:17 -04:00  
				
					
						
							
							
								 
						
							
								b80c41b4b7 
								
							 
						 
						
							
							
								
								chore: cargo fmt  
							
							
							
						 
						
							2023-07-11 13:06:25 -04:00  
				
					
						
							
							
								 
						
							
								14652abd4f 
								
							 
						 
						
							
							
								
								fix: port last missing test  
							
							... 
							
							
							
							This test has been added after the first implementation, so we move it
to the new format :) 
							
						 
						
							2023-07-11 13:06:25 -04:00  
				
					
						
							
							
								 
						
							
								7f7a86765d 
								
							 
						 
						
							
							
								
								feat: bring back formatting imdepotency test  
							
							
							
						 
						
							2023-07-11 13:06:25 -04:00  
				
					
						
							
							
								 
						
							
								c27ef8ad93 
								
							 
						 
						
							
							
								
								chore: refactor formatting tests  
							
							... 
							
							
							
							This changes the tests from normal assertions into snapshot tests, as
well as standardizing test names. 
							
						 
						
							2023-07-11 13:06:25 -04:00  
				
					
						
							
							
								 
						
							
								94bf75dd1c 
								
							 
						 
						
							
							
								
								chore: delete unreferenced snapshots  
							
							
							
						 
						
							2023-07-06 21:00:13 -04:00  
				
					
						
							
							
								 
						
							
								126f2ab004 
								
							 
						 
						
							
							
								
								Implement new formatter for 'int'.  
							
							... 
							
							
							
							This is used for constants and patterns, which can carry negative
   values. 
							
						 
						
							2023-07-06 16:10:46 -04:00  
				
					
						
							
							
								 
						
							
								78d34f7f76 
								
							 
						 
						
							
							
								
								Fix parsing of negative int patterns and constants  
							
							... 
							
							
							
							This was trickier than expected as the expression parser, and in particular the bin-op parser will interpret negative patterns as a continuation of a binary operation and eventually choke on the next right-arrow symbol. This is due to how we actually completely erase newlines once we're done with the lexer. The newline separating when clause is actually semantically important. In principle, we could only parse an expression until the next newline.
  Ideally, we would keep that newline in the list of token but it's difficult to figure out which newline to keep between two right arrows since a clause guard can be written over multiple lines. Though, since we know that this is only truly a problem for negative integers, we can use the same trick as for tuples and define a new 'NewLineMinus' token. That token CANNOT be part of a binop expression. That means it's impossible to write a binary operation with a minus over multiple lines, or more specifically, with the '-' symbol on a newline. This sounds like a fair limitation. What we get in exchange is less ambiguity when parsing patterns following expressions in when clause cases.
  Another more cumbersome option could be to preserve the first newline encountered after a 'right-arrow' symbol and before any parenthesis or curly brace is found (which would otherwise signal the beginning of a new block). That requires to traverse, at least partially, the list of tokens twice. This feels unnecessary for now and until we do face a similar issue with a binary operator. 
							
						 
						
							2023-07-06 16:10:46 -04:00  
				
					
						
							
							
								 
						
							
								346df47232 
								
							 
						 
						
							
							
								
								Refactor chain parser  
							
							... 
							
							
							
							The main goal is to make the parser more reusable to be used for when-clauses, instead of the expression parser. A side goal has been to make it more readable by moving the construction of some untyped expression as method on UntypedExpr. Doing so, I got rid of the extra temporary 'ParseArg' type and re-used the generic 'CallArg' instead by simply using an Option<UntypedExpr> as value to get the same semantic as 'ParseArg' (which would distinguish between plain call args and holes). Now the chained parser is in a bit more reusable state. 
							
						 
						
							2023-07-06 16:10:46 -04:00  
				
					
						
							
							
								 
						
							
								549cf22cdd 
								
							 
						 
						
							
							
								
								Rename (Un)TypedExpr.Int -> (Un)TypedExpr.UInt  
							
							... 
							
							
							
							We do not actually every parse negative values in there, as a negative value is a combination of a 'Negate' and 'UInt' expression.
  However, for patterns and constant, it'll be simpler to parse whole Int values as there's no ambiguity with arithmetic operations
  there. To avoid confusion of having some 'Int' constructors containing only non-negative values, and some being on the whole range,
  I've renamed the constructor to 'UInt' to make this more obvious. 
							
						 
						
							2023-07-06 16:10:46 -04:00  
				
					
						
							
							
								 
						
							
								5a4a2faa4d 
								
							 
						 
						
							
							
								
								Split pattern parser into individual modules.  
							
							
							
						 
						
							2023-07-06 16:10:46 -04:00  
				
					
						
							
							
								 
						
							
								0650d6152d 
								
							 
						 
						
							
							
								
								rename test cases for when/clause to somewhat match the file hierarchy.  
							
							
							
						 
						
							2023-07-06 16:10:46 -04:00  
				
					
						
							
							
								 
						
							
								ed85cb1c00 
								
							 
						 
						
							
							
								
								Fix todo/error parsing  
							
							... 
							
							
							
							This was a bit more tricky than anticipated but played out nicely in
  the end. Now we have one holistic way of parsing todos and errors
  instead of it being duplicated between when/clause and sequence. The
  error/todo parser has been moved up to the expression part rather than
  being managed when parsing sequences. Not sure what motivated that to
  begin with.
  Fixes  #621 . 
							
						 
						
							2023-07-05 20:12:57 +02:00  
				
					
						
							
							
								 
						
							
								e331b3449b 
								
							 
						 
						
							
							
								
								chore: clippy fix  
							
							
							
						 
						
							2023-07-05 12:06:03 -04:00  
				
					
						
							
							
								 
						
							
								a306d6e9f2 
								
							 
						 
						
							
							
								
								Move chain and chained parsing into their own submodule  
							
							... 
							
							
							
							Alleviate a bit more the top-level expression parser. Note that we
probably need a bit more disciplined in what we export and at what level
because there doesn't seem to be much logic as for whether a parser is
private, exported to the crate only or to the wide open. I'd be in favor
of exporting everything by default. 
							
						 
						
							2023-07-05 15:18:07 +02:00  
				
					
						
							
							
								 
						
							
								4f6defcf3e 
								
							 
						 
						
							
							
								
								rename: 'r' → 'expression' & 'seq_r' → 'sequence'  
							
							... 
							
							
							
							Better readability. 
							
						 
						
							2023-07-05 14:42:14 +02:00  
				
					
						
							
							
								 
						
							
								66296df9c3 
								
							 
						 
						
							
							
								
								Move parsing of literals under new 'literal' parser module group  
							
							... 
							
							
							
							Also moved the logic for 'int' and 'string' there though it is trivial. Yet, for bytearray, it tidies things nicely by removing them from the 'utils' module. 
							
						 
						
							2023-07-05 14:37:29 +02:00  
				
					
						
							
							
								 
						
							
								e15cdaf248 
								
							 
						 
						
							
							
								
								Move 'utils::bytearray' to 'expr/bytearray'  
							
							
							
						 
						
							2023-07-05 14:10:47 +02:00  
				
					
						
							
							
								 
						
							
								44eb501d78 
								
							 
						 
						
							
							
								
								Favor pattern-match over if-else when parsing assignment kinds  
							
							... 
							
							
							
							Equality on a union-type is potentially dangerous as the compiler won't
complain if we add a new case that we don't cover. Reversing the
assignment by yielding a `Token` for a given `AssignmentKind`. This way
we can use a pattern-match that got us covered for future cases. 
							
						 
						
							2023-07-05 14:01:13 +02:00  
				
					
						
							
							
								 
						
							
								93e010b345 
								
							 
						 
						
							
							
								
								Replace 'public' utils with a more generic 'optional_flag'  
							
							... 
							
							
							
							The 'public' util was arguably not really adding much except a layer of indirection.
  In the end, one useful parsing behavior to abstract is the idea of 'optional flag' that we use for both 'pub' and 'opaque' keywords. 
							
						 
						
							2023-07-05 13:57:34 +02:00  
				
					
						
							
							
								 
						
							
								5e8edcb340 
								
							 
						 
						
							
							
								
								test(parser): finish moving tests to their correct modules  
							
							
							
						 
						
							2023-07-04 17:48:48 -04:00  
				
					
						
							
							
								 
						
							
								47567c5e6f 
								
							 
						 
						
							
							
								
								test(parser): some adjustments after rebase with @ktorz fix  
							
							
							
						 
						
							2023-07-04 17:19:30 -04:00  
				
					
						
							
							
								 
						
							
								b25db429be 
								
							 
						 
						
							
							
								
								test(parser): anon binop and ambiguous sequence  
							
							
							
						 
						
							2023-07-04 17:19:30 -04:00  
				
					
						
							
							
								 
						
							
								8a6c81493c 
								
							 
						 
						
							
							
								
								test(parser): record create  
							
							
							
						 
						
							2023-07-04 17:19:30 -04:00  
				
					
						
							
							
								 
						
							
								a75bcff5c8 
								
							 
						 
						
							
							
								
								test(parser): type alias, anon fn, record update and more  
							
							
							
						 
						
							2023-07-04 17:19:30 -04:00  
				
					
						
							
							
								 
						
							
								bd8c13c372 
								
							 
						 
						
							
							
								
								test(parser): move over the validator tests and some misc tests to parser  
							
							
							
						 
						
							2023-07-04 17:19:29 -04:00  
				
					
						
							
							
								 
						
							
								6b05d6a91e 
								
							 
						 
						
							
							
								
								test(parser): rename definitions to definition and more tests  
							
							
							
						 
						
							2023-07-04 17:19:29 -04:00  
				
					
						
							
							
								 
						
							
								baf807ca2d 
								
							 
						 
						
							
							
								
								test(parser): list spread  
							
							
							
						 
						
							2023-07-04 17:19:29 -04:00  
				
					
						
							
							
								 
						
							
								44d0432560 
								
							 
						 
						
							
							
								
								test(parser): int list  
							
							
							
						 
						
							2023-07-04 17:19:29 -04:00  
				
					
						
							
							
								 
						
							
								f9c099a923 
								
							 
						 
						
							
							
								
								test: add indoc to assert_expr macro  
							
							
							
						 
						
							2023-07-04 17:19:29 -04:00  
				
					
						
							
							
								 
						
							
								715752718d 
								
							 
						 
						
							
							
								
								test: assert_module  
							
							
							
						 
						
							2023-07-04 17:19:29 -04:00  
				
					
						
							
							
								 
						
							
								da0b969865 
								
							 
						 
						
							
							
								
								test: adjust snapshots  
							
							
							
						 
						
							2023-07-04 17:19:29 -04:00  
				
					
						
							
							
								 
						
							
								8a7df7f66b 
								
							 
						 
						
							
							
								
								test: add empty list test  
							
							
							
						 
						
							2023-07-04 17:19:29 -04:00  
				
					
						
							
							
								 
						
							
								291dedf4e8 
								
							 
						 
						
							
							
								
								chore: refactor all parse tests to use assert_parse!  
							
							
							
						 
						
							2023-07-04 17:19:28 -04:00  
				
					
						
							
							
								 
						
							
								f878ef7cef 
								
							 
						 
						
							
							
								
								feat: move some token processing to the lexer  
							
							
							
						 
						
							2023-07-04 17:19:28 -04:00  
				
					
						
							
							
								 
						
							
								2226747dc1 
								
							 
						 
						
							
							
								
								feat: finish splitting up parsers  
							
							
							
						 
						
							2023-07-04 17:19:28 -04:00  
				
					
						
							
							
								 
						
							
								63cdb8aa09 
								
							 
						 
						
							
							
								
								chore: add more details on snapshot tests  
							
							... 
							
							
							
							We added a macro to add more information about the code that is being
tested, so we can add lots and lots of small snapshot tests. 
							
						 
						
							2023-07-04 17:19:28 -04:00  
				
					
						
							
							
								 
						
							
								eeaa1a05d2 
								
							 
						 
						
							
							
								
								feat: add first code snapshot test with insta  
							
							
							
						 
						
							2023-07-04 17:19:28 -04:00  
				
					
						
							
							
								 
						
							
								58c854fd3f 
								
							 
						 
						
							
							
								
								feat: add insta as dependency  
							
							... 
							
							
							
							We are going to start to add "golden"/snapshot tests, so we are using
[insta](https://insta.rs ) to do so. 
							
						 
						
							2023-07-04 17:19:28 -04:00  
				
					
						
							
							
								 
						
							
								eea94fc9a4 
								
							 
						 
						
							
							
								
								feat: move anon fn, let, and expect  
							
							
							
						 
						
							2023-07-04 17:19:28 -04:00  
				
					
						
							
							
								 
						
							
								9c98fc8026 
								
							 
						 
						
							
							
								
								feat: start splitting apart expr_parser  
							
							
							
						 
						
							2023-07-04 17:19:28 -04:00  
				
					
						
							
							
								 
						
							
								e3ed5d3b00 
								
							 
						 
						
							
							
								
								feat: move expr_parser and remove module.rs to definitions  
							
							
							
						 
						
							2023-07-04 17:19:28 -04:00  
				
					
						
							
							
								 
						
							
								3339d41fdd 
								
							 
						 
						
							
							
								
								feat: finish moving definitions and start exprs  
							
							
							
						 
						
							2023-07-04 17:19:27 -04:00  
				
					
						
							
							
								 
						
							
								fc580d4fa0 
								
							 
						 
						
							
							
								
								feat(parser): move definitions to their own modules  
							
							
							
						 
						
							2023-07-04 17:19:27 -04:00  
				
					
						
							
							
								 
						
							
								49098d5a45 
								
							 
						 
						
							
							
								
								Bump miette to 5.9.0  
							
							... 
							
							
							
							No particular reason, but it's good to be up-to-date with our dependencies. 
							
						 
						
							2023-07-04 16:51:59 -04:00  
				
					
						
							
							
								 
						
							
								5a6cc855e6 
								
							 
						 
						
							
							
								
								Use byte count for token span in the lexer.  
							
							... 
							
							
							
							Somehow, miette doesn't play well with spans when using chars indices.
  So we have to count the number of bytes in strings / chars, so that
  spans align accordingly. 
							
						 
						
							2023-07-04 16:51:59 -04:00  
				
					
						
							
							
								 
						
							
								67c072a1a9 
								
							 
						 
						
							
							
								
								test: add acceptance test 86  
							
							... 
							
							
							
							fix: prevent mutual recursion for expect type code gen functions 
							
						 
						
							2023-07-04 12:24:25 -04:00  
				
					
						
							
							
								 
						
							
								d641f731b7 
								
							 
						 
						
							
							
								
								fix: needed a stricter check for expect_pattern func on discard pattern  
							
							
							
						 
						
							2023-06-28 15:54:59 -04:00  
				
					
						
							
							
								 
						
							
								90ff211205 
								
							 
						 
						
							
							
								
								chore: Release  
							
							
							
						 
						
							2023-06-23 19:41:14 -04:00  
				
					
						
							
							
								 
						
							
								d633129ddf 
								
							 
						 
						
							
							
								
								fix: clearer unused var warning  closes   #579  
							
							
							
						 
						
							2023-06-23 19:04:54 -04:00  
				
					
						
							
							
								 
						
							
								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  
				
					
						
							
							
								 
						
							
								85d82e5aec 
								
							 
						 
						
							
							
								
								chore: Release  
							
							
							
						 
						
							2023-06-13 21:24:41 -04:00  
				
					
						
							
							
								 
						
							
								379c2fe2bf 
								
							 
						 
						
							
							
								
								chore: Release  
							
							
							
						 
						
							2023-06-13 20:32:22 -04: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  
				
					
						
							
							
								 
						
							
								c5af6e0be3 
								
							 
						 
						
							
							
								
								chore: Release  
							
							
							
						 
						
							2023-06-08 19:34:51 -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  
				
					
						
							
							
								 
						
							
								cb9a140601 
								
							 
						 
						
							
							
								
								chore: Release  
							
							
							
						 
						
							2023-06-02 00:34:07 -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