1
1
mirror of https://github.com/anoma/juvix.git synced 2024-12-03 09:41:10 +03:00
juvix/tests/positive
Łukasz Czajka 3030196fdd Non-recursive definitions (#3138)
* Closes #2968 
* Implements detection of function-like definitions, which either:
  - have some arguments on the left of `:`, or
  - have at least one clause.
* Only function-like definitions are recursive.
* Non-recursive definitions are not mutually recursive either, and can
be used only after their definition. This necessitates rearranging some
definitions in existing Juvix code.
* Changes the scoping of identifiers in record updates. Now field names
on the right side don't refer to the old values of the record fields but
to identifiers in scope defined outside the record update. To refer to
old values, one needs to explicitly use record projections, e.g.
```
r@Rec{x := Rec.x r}
```
2024-11-04 18:18:39 +01:00
..
265 Update standard library coding style according to the guidelines (#3092) 2024-10-14 15:56:54 +02:00
272 Add PackageDescription.Basic module Package variant (#2509) 2023-11-13 17:36:18 +00:00
BuiltinsMultiImport Add PackageDescription.Basic module Package variant (#2509) 2023-11-13 17:36:18 +00:00
BuiltinsMultiOpenImport Add PackageDescription.Basic module Package variant (#2509) 2023-11-13 17:36:18 +00:00
ConfluentScoping Properly handle confluent imports (#2915) 2024-07-23 19:56:30 +02:00
Dependencies Include the juvix version in the build directory path (#3069) 2024-09-30 08:57:47 +01:00
FancyPaths Migrate old named application syntax (#2876) 2024-07-12 18:31:09 +02:00
ImportAsOpen Add PackageDescription.Basic module Package variant (#2509) 2023-11-13 17:36:18 +00:00
ImportNestedLocalModule Migrate old named application syntax (#2876) 2024-07-12 18:31:09 +02:00
Imports Add PackageDescription.Basic module Package variant (#2509) 2023-11-13 17:36:18 +00:00
ImportShadow Optional braces in case syntax (#2778) 2024-05-22 18:14:03 +01:00
InstanceImport Don't put a space after the lambda keyword (#3121) 2024-10-23 16:02:56 +02:00
Internal Non-recursive definitions (#3138) 2024-11-04 18:18:39 +01:00
Isabelle Allow trailing semicolons everywhere (#3123) 2024-10-29 18:25:06 +01:00
issue1333 Add PackageDescription.Basic module Package variant (#2509) 2023-11-13 17:36:18 +00:00
issue1466 Add PackageDescription.Basic module Package variant (#2509) 2023-11-13 17:36:18 +00:00
issue1693 Update standard library coding style according to the guidelines (#3092) 2024-10-14 15:56:54 +02:00
issue1731 Update standard library coding style according to the guidelines (#3092) 2024-10-14 15:56:54 +02:00
issue1879 Add PackageDescription.Basic module Package variant (#2509) 2023-11-13 17:36:18 +00:00
issue2163 Add PackageDescription.Basic module Package variant (#2509) 2023-11-13 17:36:18 +00:00
issue2248 Add PackageDescription.Basic module Package variant (#2509) 2023-11-13 17:36:18 +00:00
issue2296 Add PackageDescription.Basic module Package variant (#2509) 2023-11-13 17:36:18 +00:00
issue2373 Add PackageDescription.Basic module Package variant (#2509) 2023-11-13 17:36:18 +00:00
issue2737 Fix location of scoped modulePathName (#3011) 2024-09-09 15:50:29 +02:00
issue2929 Fix scanning of names with import prefix (#2929) 2024-07-31 10:02:38 +02:00
issue3048 Set line width to 80 (#3124) 2024-10-25 15:11:19 +02:00
issue3068 Ignore files that start with a . (#3072) 2024-09-30 12:17:18 +02:00
Markdown Fix the location in the parser for .juvix.md (#3020) 2024-09-11 14:07:16 +02:00
MarkdownImport Update standard library coding style according to the guidelines (#3092) 2024-10-14 15:56:54 +02:00
NoDependencies Migrate old named application syntax (#2876) 2024-07-12 18:31:09 +02:00
package Allow trailing semicolons everywhere (#3123) 2024-10-29 18:25:06 +01:00
PackageLoader Migrate old named application syntax (#2876) 2024-07-12 18:31:09 +02:00
PackageLoaderV2 Migrate old named application syntax (#2876) 2024-07-12 18:31:09 +02:00
PublicImports Generalize import syntax (#2819) 2024-06-21 15:02:30 +02:00
QualifiedConstructor Add PackageDescription.Basic module Package variant (#2509) 2023-11-13 17:36:18 +00:00
QualifiedImports Add PackageDescription.Basic module Package variant (#2509) 2023-11-13 17:36:18 +00:00
QualifiedSymbol Add PackageDescription.Basic module Package variant (#2509) 2023-11-13 17:36:18 +00:00
QualifiedSymbol2 Add PackageDescription.Basic module Package variant (#2509) 2023-11-13 17:36:18 +00:00
Reachability Add PackageDescription.Basic module Package variant (#2509) 2023-11-13 17:36:18 +00:00
StdlibImport Add PackageDescription.Basic module Package variant (#2509) 2023-11-13 17:36:18 +00:00
StdlibList Set line width to 80 (#3124) 2024-10-25 15:11:19 +02:00
Termination Non-recursive definitions (#3138) 2024-11-04 18:18:39 +01:00
UsingHiding Add PackageDescription.Basic module Package variant (#2509) 2023-11-13 17:36:18 +00:00
VisibilityPrecendence Migrate old named application syntax (#2876) 2024-07-12 18:31:09 +02:00
Adt.juvix Improve formatting of single-constructor types and records (#2342) 2023-09-07 16:20:14 +02:00
Alias.juvix Optional braces in case syntax (#2778) 2024-05-22 18:14:03 +01:00
AliasRecordConstructor.juvix Optional braces in case syntax (#2778) 2024-05-22 18:14:03 +01:00
Ape.juvix Set line width to 80 (#3124) 2024-10-25 15:11:19 +02:00
Axiom.juvix Fix: format juvix files in test/positive (#1978) 2023-04-12 10:07:01 +02:00
Builtins.juvix Format juvix files using new function syntax (#2245) 2023-07-11 17:22:07 +02:00
BuiltinsBool.juvix Merge if -> ite renaming from stdlib (#2869) 2024-07-02 10:03:06 +02:00
ConstructorWildcard.juvix Improve formatting of function definition arguments (#2551) 2023-12-07 11:26:48 +01:00
Format.juvix Allow trailing semicolons everywhere (#3123) 2024-10-29 18:25:06 +01:00
FormatPragma.juvix Remove old function syntax (#2305) 2023-08-24 16:24:47 +02:00
HoleTypeParameter.juvix Fix for crash with wildcard used in type definition (#2405) 2023-10-02 18:58:21 +02:00
IdInType.juvix Fix formatting for all Juvix files in tests folder (#2404) 2023-10-31 18:36:34 +01:00
Inductive.juvix Improve formatting of single-constructor types and records (#2342) 2023-09-07 16:20:14 +02:00
InductivePipes.juvix Improve formatting of single-constructor types and records (#2342) 2023-09-07 16:20:14 +02:00
InstanceAxiom.juvix Fix instance axiom bug (#2439) 2023-10-10 15:55:17 +02:00
issue2994.juvix Fix typechecking of default arguments in signatures with trait arguments (#2998) 2024-09-05 19:43:04 +02:00
issue2999.juvix Allow trailing semicolons everywhere (#3123) 2024-10-29 18:25:06 +01:00
issue3064.juvix Fix termination crash due to empty permutation (#3081) 2024-10-02 18:59:30 +02:00
Iterators.juvix Formatter: add braces when the iterator body is not enclosed (#3122) 2024-10-25 11:42:01 +02:00
Judoc.juvix Make juvix format line width 100 with ribbon width 100 (#2883) 2024-07-10 18:21:09 +01:00
LambdaCalculus.juvix Fix formatting for all Juvix files in tests folder (#2404) 2023-10-31 18:36:34 +01:00
LetOpen.juvix Allow open statements in let expressions (#2395) 2023-10-02 23:13:45 +02:00
LetShadow.juvix Optional braces in case syntax (#2778) 2024-05-22 18:14:03 +01:00
Literals.juvix Migrate old named application syntax (#2876) 2024-07-12 18:31:09 +02:00
LocalModWithAxiom.juvix Fix #2495 (#2496) 2023-11-03 21:23:57 +01:00
LocalModWithAxiom.juvix.formatted Fix #2495 (#2496) 2023-11-03 21:23:57 +01:00
LocalSynonym.juvix Fix formatting for all Juvix files in tests folder (#2404) 2023-10-31 18:36:34 +01:00
MultiParams.juvix Migrate old named application syntax (#2876) 2024-07-12 18:31:09 +02:00
MutualLet.juvix Remove old function syntax (#2305) 2023-08-24 16:24:47 +02:00
MutualType.juvix Fix remove unexpected whitespaces introduced by formatting (#2489) 2023-11-03 12:51:45 +01:00
NamedArguments.juvix Migrate old named application syntax (#2876) 2024-07-12 18:31:09 +02:00
Namespaces.juvix Separate modules namespace (#2257) 2023-07-26 09:59:50 +02:00
NestedPatterns.juvix Optional braces in case syntax (#2778) 2024-05-22 18:14:03 +01:00
OmitType.juvix Remove old function syntax (#2305) 2023-08-24 16:24:47 +02:00
Operators.juvix New fixity/iterator syntax (#2332) 2023-09-14 10:57:38 +02:00
Package.juvix Add PackageDescription.Basic module Package variant (#2509) 2023-11-13 17:36:18 +00:00
Parsing.juvix Format juvix files using new function syntax (#2245) 2023-07-11 17:22:07 +02:00
Polymorphism.juvix Fix formatting for all Juvix files in tests folder (#2404) 2023-10-31 18:36:34 +01:00
PolymorphismHoles.juvix Fix formatting for all Juvix files in tests folder (#2404) 2023-10-31 18:36:34 +01:00
Pragmas.juvix Format juvix files using new function syntax (#2245) 2023-07-11 17:22:07 +02:00
Projections.juvix Migrate old named application syntax (#2876) 2024-07-12 18:31:09 +02:00
Puns.juvix Allow trailing semicolons everywhere (#3123) 2024-10-29 18:25:06 +01:00
RecordIterator.juvix Allow trailing semicolons everywhere (#3123) 2024-10-29 18:25:06 +01:00
RecordPattern.juvix Fix generation of wildcards in RecordPattern (#2802) 2024-06-04 18:28:25 +02:00
Records2.juvix Non-recursive definitions (#3138) 2024-11-04 18:18:39 +01:00
Records.juvix Migrate old named application syntax (#2876) 2024-07-12 18:31:09 +02:00
ShadowPublicOpen.juvix Fix: format juvix files in test/positive (#1978) 2023-04-12 10:07:01 +02:00
SignatureWithBody.juvix Don't put a space after the lambda keyword (#3121) 2024-10-23 16:02:56 +02:00
Symbols.juvix User-friendly operator declaration syntax (#2270) 2023-08-09 18:15:51 +02:00
Syntax.juvix Make juvix format line width 100 with ribbon width 100 (#2883) 2024-07-10 18:21:09 +01:00
Traits2.juvix Update juvix-stdlib to remove non-ASCII indentifiers (#2857) 2024-06-26 10:23:35 +02:00
Traits.juvix Migrate old named application syntax (#2876) 2024-07-12 18:31:09 +02:00
TypeAlias.juvix Fix formatting for all Juvix files in tests folder (#2404) 2023-10-31 18:36:34 +01:00
WildcardArguments.juvix Allow wildcard arguments in new function definition syntax (#2295) 2023-08-16 17:51:09 +02:00