Restore typechecking version of CGI example

This commit is contained in:
Denis Merigoux 2021-09-28 12:01:08 +02:00
parent caf42f3445
commit b72d8e09ee
No known key found for this signature in database
GPG Key ID: EE99DCFA365C3EE3
4 changed files with 40 additions and 54 deletions

View File

@ -350,7 +350,7 @@ let process_name_item (ctxt : context) (item : Ast.code_item Pos.marked) : conte
Errors.raise_multispanned_error
(Format.asprintf "%s name \"%s\" already defined" msg
(Utils.Cli.print_with_style [ ANSITerminal.yellow ] "%s" name))
[ (Some "first definition", Pos.get_position use); (Some "second definition", pos) ]
[ (Some "First definition:", Pos.get_position use); (Some "Second definition:", pos) ]
in
match Pos.unmark item with
| ScopeDecl decl -> (

View File

@ -40,26 +40,16 @@ nature, déterminés conformément aux dispositions des articles 14 à 155,
total dont sont retranchées les charges énumérées à l'article 156.
```catala
déclaration structure RevenuNetGlobal:
donnée revenus_fonciers contenu argent
donnée bénéfices_industriels_commerciaux contenu argent
donnée rémunérations_dirigeants contenu argent
donnée bénéfices_agricoles contenu argent
donnée traitements_salaires contenu argent
donnée bénéfices_non_commerciaux contenu argent
donnée revenus_capitaux_mobiliers contenu argent
donnée plus_values contenu argent
donnée total contenu argent
déclaration champ d'application CalculImpotSurLeRevenu :
contexte revenu_net_global contenu RevenuNetGlobal
champ d'application CalculImpotSurLeRevenu:
définition revenu_net_global.total égal à
revenu_net_global.revenus_fonciers + revenu_net_global.bénéfices_industriels_commerciaux
+ revenu_net_global.rémunérations_dirigeants + revenu_net_global.bénéfices_agricoles
+ revenu_net_global.traitements_salaires + revenu_net_global.bénéfices_non_commerciaux
+ revenu_net_global.revenus_capitaux_mobiliers + revenu_net_global.plus_values
champ d'application CalculImpôtSurLeRevenu:
définition revenu_net_global égal à
détail_revenu_net_global.revenus_fonciers +€
détail_revenu_net_global.bénéfices_industriels_commerciaux +€
détail_revenu_net_global.rémunérations_dirigeants +€
détail_revenu_net_global.bénéfices_agricoles +€
détail_revenu_net_global.traitements_salaires +€
détail_revenu_net_global.bénéfices_non_commerciaux +€
détail_revenu_net_global.revenus_capitaux_mobiliers +€
détail_revenu_net_global.plus_values
```
####### 0I : Définition du revenu net global
@ -71,28 +61,13 @@ Les personnes qui ont en France leur domicile fiscal sont passibles de l'impôt
Celles dont le domicile fiscal est situé hors de France sont passibles de cet impôt en raison de leurs seuls revenus de source française.
```catala
déclaration énumération DomicileFiscal:
-- France
-- HorsDeFrance
déclaration structure MontantsSourcesRevenus:
donnée source_française contenu argent
donnée source_étrangère contenu argent
déclaration structure Personne:
donnée domicile_fiscal contenu DomicileFiscal
donnée revenus contenu argent
donnée montants_sources_revenus contenu MontantsSourcesRevenus
déclaration champ d'application CalculImpotSurLeRevenu :
contexte personne contenu Personne
champ d'application CalculImpotSurLeRevenu:
définition personne.revenus égal à
si personne.domicileFiscal = France alors
montants_sources_revenus.source_française +€ montants_sources_revenus.source_étrangère
sinon
montants_sources_revenus.source_française
champ d'application CalculImpôtSurLeRevenu:
définition revenus égal à
si domicile_fiscal = France alors
montants_sources_revenus.source_française +€
montants_sources_revenus.source_étrangère
sinon
montants_sources_revenus.source_française
```
######## Article 4 B
@ -124,10 +99,10 @@ ou sont chargés de mission dans un pays étranger et qui ne sont pas soumis dan
sur l'ensemble de leurs revenus.
```catala
champ d'application CalculImpotSurLeRevenu:
définition personne.domicile_fiscal égal à
champ d'application CalculImpôtSurLeRevenu:
définition domicile_fiscal égal à
si
personne.foyer_lieu_sejour_principal_france
alors France
personne.foyer_lieu_sejour_principal_france
alors France
sinon HorsDeFrance
```

View File

@ -11,17 +11,28 @@ déclaration structure MontantsSourcesRevenus:
donnée source_étrangère contenu argent
déclaration structure Personne:
donnée domicile_fiscal contenu DomicileFiscal
donnée revenus contenu argent
donnée montants_sources_revenus contenu MontantsSourcesRevenus
donnée foyer_lieu_sejour_principal_france contenu booléen
donnée foyer_lieu_sejour_principal_france contenu booléen
déclaration structure ActivitéProfessionnelle:
donnée exercée_en_france contenu booléen
donnée est_accessoire contenu booléen
déclaration structure DétailRevenuNetGlobal:
donnée revenus_fonciers contenu argent
donnée bénéfices_industriels_commerciaux contenu argent
donnée rémunérations_dirigeants contenu argent
donnée bénéfices_agricoles contenu argent
donnée traitements_salaires contenu argent
donnée bénéfices_non_commerciaux contenu argent
donnée revenus_capitaux_mobiliers contenu argent
donnée plus_values contenu argent
déclaration champ d'application CalculImpotSurLeRevenu :
déclaration champ d'application CalculImpôtSurLeRevenu :
contexte personne contenu Personne
contexte détail_revenu_net_global contenu DétailRevenuNetGlobal
contexte revenu_net_global contenu argent
contexte revenus contenu argent
contexte montants_sources_revenus contenu MontantsSourcesRevenus
contexte domicile_fiscal contenu DomicileFiscal
```
> Fin métadonnées

View File

@ -1,13 +1,13 @@
[ERROR] struct name "S" already defined
[ERROR]
[ERROR] first definition
[ERROR] First definition:
[ERROR] --> test_struct/bad/bug_107.catala_en
[ERROR] |
[ERROR] 4 | declaration structure S:
[ERROR] | ^
[ERROR] + https://github.com/CatalaLang/catala/issues/107
[ERROR]
[ERROR] second definition
[ERROR] Second definition:
[ERROR] --> test_struct/bad/bug_107.catala_en
[ERROR] |
[ERROR] 8 | declaration structure S: