1
1
mirror of https://github.com/anoma/juvix.git synced 2024-11-30 14:13:27 +03:00
juvix/tests/negative
Ł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
..
230 Merge if -> ite renaming from stdlib (#2869) 2024-07-02 10:03:06 +02:00
258 Add PackageDescription.Basic module Package variant (#2509) 2023-11-13 17:36:18 +00:00
265 Add PackageDescription.Basic module Package variant (#2509) 2023-11-13 17:36:18 +00:00
BindGroupConflict Add PackageDescription.Basic module Package variant (#2509) 2023-11-13 17:36:18 +00:00
Dependencies Add PackageDescription.Basic module Package variant (#2509) 2023-11-13 17:36:18 +00:00
ImportCycle Add PackageDescription.Basic module Package variant (#2509) 2023-11-13 17:36:18 +00:00
Internal Fix named application bug (#3075) 2024-10-03 16:26:59 +01:00
issue1337 Optional braces in case syntax (#2778) 2024-05-22 18:14:03 +01:00
issue1344 Add PackageDescription.Basic module Package variant (#2509) 2023-11-13 17:36:18 +00:00
issue1700 Add PackageDescription.Basic module Package variant (#2509) 2023-11-13 17:36:18 +00:00
issue2771 Migrate old named application syntax (#2876) 2024-07-12 18:31:09 +02:00
Markdown Support extract-module-statements attribute in juvix code blocks (#2734) 2024-04-18 17:01:59 +01:00
NoDependencies Migrate old named application syntax (#2876) 2024-07-12 18:31:09 +02:00
Package Migrate old named application syntax (#2876) 2024-07-12 18:31:09 +02:00
StdlibConflict Add PackageDescription.Basic module Package variant (#2509) 2023-11-13 17:36:18 +00: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
AliasCycle.juvix Aliasing (#2301) 2023-08-25 15:28:58 +02:00
AmbiguousConstructor.juvix Remove old function syntax (#2305) 2023-08-24 16:24:47 +02:00
AmbiguousExport.juvix Change syntax for ind. data types and forbid the empty data type (#1684) 2023-01-03 13:49:04 +01:00
AmbiguousModule.juvix Rename MiniJuvix to Juvix (#259) 2022-07-08 13:59:45 +02:00
AmbiguousSymbol.juvix Change syntax for ind. data types and forbid the empty data type (#1684) 2023-01-03 13:49:04 +01:00
AppLeftImplicit.juvix Non-recursive definitions (#3138) 2024-11-04 18:18:39 +01:00
AsPatternAlias.juvix Remove old function syntax (#2305) 2023-08-24 16:24:47 +02:00
ConstructorExpectedLeftApplication.juvix Fix #2495 (#2496) 2023-11-03 21:23:57 +01:00
DanglingJudoc.juvix Add dangling judoc error (#2099) 2023-05-16 15:39:43 +02:00
DuplicateArgument.juvix Migrate old named application syntax (#2876) 2024-07-12 18:31:09 +02:00
DuplicateInductiveParameterName.juvix Named arguments (#2250) 2023-07-18 10:32:34 +01:00
DuplicateOperator.juvix New fixity/iterator syntax (#2332) 2023-09-14 10:57:38 +02:00
ErrorOnLocalInstances.juvix Error on local instances (#2376) 2023-09-21 10:34:28 +01:00
ImplicitPatternLeftApplication.juvix Fix #2495 (#2496) 2023-11-03 21:23:57 +01:00
IncomparablePrecedences.juvix New fixity/iterator syntax (#2332) 2023-09-14 10:57:38 +02:00
InfixError.juvix New fixity/iterator syntax (#2332) 2023-09-14 10:57:38 +02:00
InfixErrorP.juvix New fixity/iterator syntax (#2332) 2023-09-14 10:57:38 +02:00
InvalidDefault.juvix Add default arguments (#2408) 2023-10-10 23:28:06 +02:00
InvalidRangeNumber.juvix New fixity/iterator syntax (#2332) 2023-09-14 10:57:38 +02:00
Iterators1.juvix New fixity/iterator syntax (#2332) 2023-09-14 10:57:38 +02:00
Iterators2.juvix New fixity/iterator syntax (#2332) 2023-09-14 10:57:38 +02:00
Iterators3.juvix Remove old function syntax (#2305) 2023-08-24 16:24:47 +02:00
Iterators4.juvix New fixity/iterator syntax (#2332) 2023-09-14 10:57:38 +02:00
Iterators5.juvix Remove old function syntax (#2305) 2023-08-24 16:24:47 +02:00
LetOpen.juvix Allow open statements in let expressions (#2395) 2023-10-02 23:13:45 +02:00
MissingArgument.juvix Migrate old named application syntax (#2876) 2024-07-12 18:31:09 +02:00
MissingFields.juvix Record creation syntax with function definitions (#2369) 2023-09-28 17:07:38 +02:00
ModuleNotInScope.juvix Rename MiniJuvix to Juvix (#259) 2022-07-08 13:59:45 +02:00
MultipleDeclarations.juvix Rename MiniJuvix to Juvix (#259) 2022-07-08 13:59:45 +02:00
MultipleExportConflict.juvix Rename MiniJuvix to Juvix (#259) 2022-07-08 13:59:45 +02:00
NamedApplicationMissingAt.juvix Improve parsing error for missing @ in named application (#3012) 2024-09-20 18:00:38 +01:00
NestedAsPatterns.juvix Remove old function syntax (#2305) 2023-08-24 16:24:47 +02:00
NestedPatternBraces.juvix Traits (#2320) 2023-09-08 12:16:43 +02:00
NoNamedArguments.juvix Migrate old named application syntax (#2876) 2024-07-12 18:31:09 +02:00
NotARecord.juvix Remove old function syntax (#2305) 2023-08-24 16:24:47 +02:00
NotInScope.juvix Rename MiniJuvix to Juvix (#259) 2022-07-08 13:59:45 +02:00
Package.juvix Add PackageDescription.Basic module Package variant (#2509) 2023-11-13 17:36:18 +00:00
PragmasDuplicateKeys.juvix Error on duplicate keys in YAML (#2290) 2023-08-11 09:22:22 +01:00
PragmasFormat.juvix Remove old function syntax (#2305) 2023-08-24 16:24:47 +02:00
PragmasYAML.juvix Import tree (#2751) 2024-05-14 10:53:33 +02:00
PrecedenceInconsistency.juvix Fix precedence inconsistency bug (#2470) 2023-10-25 16:13:27 +02:00
QualSymNotInScope.juvix Rename MiniJuvix to Juvix (#259) 2022-07-08 13:59:45 +02:00
RepeatedFieldPattern.juvix Fix formatting for all Juvix files in tests folder (#2404) 2023-10-31 18:36:34 +01:00
RepeatedNameSignature.juvix Named arguments (#2250) 2023-07-18 10:32:34 +01:00
Tab.juvix Disallow tab characters as spaces (#1523) 2022-09-07 13:59:41 +02:00
UnexpectedArgument.juvix Migrate old named application syntax (#2876) 2024-07-12 18:31:09 +02:00
UnexpectedArgumentNew.juvix Named arguments syntax with function definitions (#2494) 2023-11-07 12:02:22 +01:00
UnexpectedArgumentWildcard.juvix Migrate old named application syntax (#2876) 2024-07-12 18:31:09 +02:00
UnexpectedFieldUpdate.juvix Remove old function syntax (#2305) 2023-08-24 16:24:47 +02:00
UnusedOperatorDef.juvix New fixity/iterator syntax (#2332) 2023-09-14 10:57:38 +02:00
WrongModuleName.juvix Rename MiniJuvix to Juvix (#259) 2022-07-08 13:59:45 +02:00