mirror of
https://github.com/CatalaLang/catala.git
synced 2024-11-08 07:51:43 +03:00
Overseas housing benefits : last fixes and tests (#446)
This commit is contained in:
commit
c5124f50c4
@ -970,7 +970,7 @@ let driver
|
||||
Cli.error_print "The command \"%s\" is unknown to clerk." command;
|
||||
return_err
|
||||
with Errors.StructuredError (msg, pos) ->
|
||||
Cli.error_print "%s" (Errors.print_structured_error msg pos);
|
||||
Errors.print_structured_error msg pos;
|
||||
return_err
|
||||
|
||||
let main () = exit (Cmdliner.Cmd.eval' (Cmdliner.Cmd.v info (clerk_t driver)))
|
||||
|
@ -13,6 +13,7 @@ depends: [
|
||||
"re" {>= "1.9.0"}
|
||||
"cohttp-lwt-unix" {>= "5.0.0"}
|
||||
"cohttp" {>= "5.0.0"}
|
||||
"lwt_ssl" {>= "1.2.0"}
|
||||
"tls" {>= "0.15.3"}
|
||||
"catala" {= version}
|
||||
"odoc" {with-doc}
|
||||
|
@ -98,6 +98,10 @@ let disable_counterexamples = ref false
|
||||
let avoid_exceptions_flag = ref false
|
||||
let check_invariants_flag = ref false
|
||||
|
||||
type message_format_enum = Human | GNU
|
||||
|
||||
let message_format_flag = ref Human
|
||||
|
||||
open Cmdliner
|
||||
|
||||
let file =
|
||||
@ -122,6 +126,19 @@ let color =
|
||||
"Allow output of colored and styled text. If set to $(i,auto), \
|
||||
enabled when the standard output is to a terminal.")
|
||||
|
||||
let message_format_opt = Arg.enum ["human", Human; "gnu", GNU]
|
||||
|
||||
let message_format =
|
||||
Arg.(
|
||||
value
|
||||
& opt message_format_opt Human
|
||||
& info ["message_format"]
|
||||
~doc:
|
||||
"Selects the format of error and warning messages emitted by the \
|
||||
compiler. If set to $(i,human), the messages will be nicely \
|
||||
displayed and meant to be read by a human. If set to $(i, gnu), the \
|
||||
messages will be rendered according to the GNU coding standards.")
|
||||
|
||||
let unstyled =
|
||||
Arg.(
|
||||
value
|
||||
@ -263,6 +280,7 @@ let output =
|
||||
type options = {
|
||||
debug : bool;
|
||||
color : when_enum;
|
||||
message_format : message_format_enum;
|
||||
wrap_weaved_output : bool;
|
||||
avoid_exceptions : bool;
|
||||
backend : string;
|
||||
@ -285,6 +303,7 @@ let options =
|
||||
let make
|
||||
debug
|
||||
color
|
||||
message_format
|
||||
unstyled
|
||||
wrap_weaved_output
|
||||
avoid_exceptions
|
||||
@ -305,6 +324,7 @@ let options =
|
||||
{
|
||||
debug;
|
||||
color = (if unstyled then Never else color);
|
||||
message_format;
|
||||
wrap_weaved_output;
|
||||
avoid_exceptions;
|
||||
backend;
|
||||
@ -327,6 +347,7 @@ let options =
|
||||
const make
|
||||
$ debug
|
||||
$ color
|
||||
$ message_format
|
||||
$ unstyled
|
||||
$ wrap_weaved_output
|
||||
$ avoid_exceptions
|
||||
@ -362,7 +383,8 @@ let set_option_globals options : unit =
|
||||
optimize_flag := options.optimize;
|
||||
check_invariants_flag := options.check_invariants;
|
||||
disable_counterexamples := options.disable_counterexamples;
|
||||
avoid_exceptions_flag := options.avoid_exceptions
|
||||
avoid_exceptions_flag := options.avoid_exceptions;
|
||||
message_format_flag := options.message_format
|
||||
|
||||
let version = "0.8.0"
|
||||
|
||||
|
@ -77,6 +77,12 @@ val disable_counterexamples : bool ref
|
||||
val avoid_exceptions_flag : bool ref
|
||||
(** Avoids using [try ... with] exceptions when compiling the default calculus. *)
|
||||
|
||||
type message_format_enum =
|
||||
| Human
|
||||
| GNU (** Format of error and warning messages output by the compiler. *)
|
||||
|
||||
val message_format_flag : message_format_enum ref
|
||||
|
||||
(** {2 CLI terms} *)
|
||||
|
||||
val file : string Cmdliner.Term.t
|
||||
@ -99,6 +105,7 @@ type when_enum = Auto | Always | Never
|
||||
type options = {
|
||||
debug : bool;
|
||||
color : when_enum;
|
||||
message_format : message_format_enum;
|
||||
wrap_weaved_output : bool;
|
||||
avoid_exceptions : bool;
|
||||
backend : string;
|
||||
|
@ -23,17 +23,58 @@ exception StructuredError of (string * (string option * Pos.t) list)
|
||||
secondary positions related to the error, each carrying an optional
|
||||
secondary message to describe what is pointed by the position. *)
|
||||
|
||||
let print_structured_error (msg : string) (pos : (string option * Pos.t) list) :
|
||||
string =
|
||||
Printf.sprintf "%s%s%s" msg
|
||||
(if pos = [] then "" else "\n\n")
|
||||
(String.concat "\n\n"
|
||||
(List.map
|
||||
(fun (msg, pos) ->
|
||||
Printf.sprintf "%s%s"
|
||||
(match msg with None -> "" | Some msg -> msg ^ "\n")
|
||||
(Pos.retrieve_loc_text pos))
|
||||
pos))
|
||||
let print_structured_error
|
||||
?(is_warning : bool = false)
|
||||
(msg : string)
|
||||
(pos : (string option * Pos.t) list) : unit =
|
||||
match !Cli.message_format_flag with
|
||||
| Cli.Human ->
|
||||
(if is_warning then Cli.warning_print else Cli.error_print)
|
||||
"%s%s%s" msg
|
||||
(if pos = [] then "" else "\n\n")
|
||||
(String.concat "\n\n"
|
||||
(List.map
|
||||
(fun (msg, pos) ->
|
||||
Printf.sprintf "%s%s"
|
||||
(match msg with None -> "" | Some msg -> msg ^ "\n")
|
||||
(Pos.retrieve_loc_text pos))
|
||||
pos))
|
||||
| Cli.GNU ->
|
||||
let remove_new_lines s =
|
||||
Re.replace ~all:true
|
||||
(Re.compile (Re.seq [Re.char '\n'; Re.rep Re.blank]))
|
||||
~f:(fun _ -> " ")
|
||||
s
|
||||
in
|
||||
let severity =
|
||||
Format.asprintf "%a"
|
||||
(if is_warning then Cli.warning_marker else Cli.error_marker)
|
||||
()
|
||||
in
|
||||
(* The top message doesn't come with a position, which is not something the
|
||||
GNU standard allows. So we look the position list and put the top message
|
||||
everywhere there is not a more precise message. If we can'r find a
|
||||
position without a more precise message, we just take the first position
|
||||
in the list to pair with the message. *)
|
||||
(if is_warning then Format.printf else Format.eprintf)
|
||||
"%s%s\n"
|
||||
(if pos != [] && List.for_all (fun (msg', _) -> Option.is_some msg') pos
|
||||
then
|
||||
Format.asprintf "%a: %s %s\n"
|
||||
(Cli.format_with_style [ANSITerminal.blue])
|
||||
(Pos.to_string_short (snd (List.hd pos)))
|
||||
severity (remove_new_lines msg)
|
||||
else "")
|
||||
(String.concat "\n"
|
||||
(List.map
|
||||
(fun (msg', pos) ->
|
||||
Format.asprintf "%a: %s %s"
|
||||
(Cli.format_with_style [ANSITerminal.blue])
|
||||
(Pos.to_string_short pos) severity
|
||||
(match msg' with
|
||||
| None -> remove_new_lines msg
|
||||
| Some msg' -> remove_new_lines msg'))
|
||||
pos))
|
||||
|
||||
(** {1 Error exception and printing} *)
|
||||
|
||||
@ -61,7 +102,7 @@ let assert_internal_error condition fmt =
|
||||
|
||||
let format_multispanned_warning (pos : (string option * Pos.t) list) format =
|
||||
Format.kasprintf
|
||||
(fun msg -> Cli.warning_print "%s" (print_structured_error msg pos))
|
||||
(fun msg -> print_structured_error ~is_warning:true msg pos)
|
||||
format
|
||||
|
||||
let format_spanned_warning ?(span_msg : string option) (span : Pos.t) format =
|
||||
|
@ -23,7 +23,9 @@ exception StructuredError of (string * (string option * Pos.t) list)
|
||||
secondary positions related to the error, each carrying an optional
|
||||
secondary message to describe what is pointed by the position. *)
|
||||
|
||||
val print_structured_error : string -> (string option * Pos.t) list -> string
|
||||
val print_structured_error :
|
||||
?is_warning:bool -> string -> (string option * Pos.t) list -> unit
|
||||
(** Emits error or warning if [is_warning] is set to [true]. *)
|
||||
|
||||
(** {1 Error exception and printing} *)
|
||||
|
||||
|
@ -96,15 +96,10 @@ let to_string (pos : t) : string =
|
||||
|
||||
let to_string_short (pos : t) : string =
|
||||
let s, e = pos.code_pos in
|
||||
if e.Lexing.pos_lnum = s.Lexing.pos_lnum then
|
||||
Printf.sprintf "%s:%d.%d-%d:" s.Lexing.pos_fname s.Lexing.pos_lnum
|
||||
(s.Lexing.pos_cnum - s.Lexing.pos_bol)
|
||||
(e.Lexing.pos_cnum - e.Lexing.pos_bol)
|
||||
else
|
||||
Printf.sprintf "%s:%d.%d-%d.%d:" s.Lexing.pos_fname s.Lexing.pos_lnum
|
||||
(s.Lexing.pos_cnum - s.Lexing.pos_bol)
|
||||
e.Lexing.pos_lnum
|
||||
(e.Lexing.pos_cnum - e.Lexing.pos_bol)
|
||||
Printf.sprintf "%s:%d.%d-%d.%d" s.Lexing.pos_fname s.Lexing.pos_lnum
|
||||
(s.Lexing.pos_cnum - s.Lexing.pos_bol + 1)
|
||||
e.Lexing.pos_lnum
|
||||
(e.Lexing.pos_cnum - e.Lexing.pos_bol + 1)
|
||||
|
||||
let indent_number (s : string) : int =
|
||||
try
|
||||
@ -223,7 +218,7 @@ let retrieve_loc_text (pos : t) : string =
|
||||
(match oc with None -> () | Some oc -> close_in oc);
|
||||
let buf = Buffer.create 73 in
|
||||
Buffer.add_string buf
|
||||
(Cli.with_style blue_style "┌─⯈ %s" (to_string_short pos));
|
||||
(Cli.with_style blue_style "┌─⯈ %s:" (to_string_short pos));
|
||||
Buffer.add_char buf '\n';
|
||||
(* should be outside of [Cli.with_style] *)
|
||||
Buffer.add_string buf
|
||||
|
@ -47,7 +47,11 @@ val to_string : t -> string
|
||||
val to_string_short : t -> string
|
||||
(** Formats a position like this:
|
||||
|
||||
{v <file>;<start_line>:<start_col>--<end_line>:<end_col> v} *)
|
||||
{v <file>;<start_line>:<start_col>--<end_line>:<end_col> v}
|
||||
|
||||
This function is compliant with the
|
||||
{{:https://www.gnu.org/prep/standards/standards.html#Errors} GNU coding
|
||||
standards}. *)
|
||||
|
||||
val retrieve_loc_text : t -> string
|
||||
(** Open the file corresponding to the position and retrieves the text concerned
|
||||
|
@ -22,6 +22,7 @@ let _ =
|
||||
language = Some (Js.to_string language);
|
||||
max_prec_digits = None;
|
||||
closure_conversion = false;
|
||||
message_format = Human;
|
||||
trace;
|
||||
disable_warnings = true;
|
||||
disable_counterexamples = false;
|
||||
|
@ -71,6 +71,8 @@ module ScopeDef = struct
|
||||
module Set = Set.Make (Base)
|
||||
end
|
||||
|
||||
module AssertionName = Uid.Gen ()
|
||||
|
||||
(** {1 AST} *)
|
||||
|
||||
type location = desugared glocation
|
||||
@ -117,28 +119,46 @@ module Rule = struct
|
||||
let compare r1 r2 =
|
||||
match r1.rule_parameter, r2.rule_parameter with
|
||||
| None, None -> (
|
||||
let j1 = Expr.unbox r1.rule_just in
|
||||
let j2 = Expr.unbox r2.rule_just in
|
||||
match Expr.compare j1 j2 with
|
||||
let j1, j1m = r1.rule_just in
|
||||
let j2, j2m = r2.rule_just in
|
||||
match
|
||||
Bindlib.unbox
|
||||
(Bindlib.box_apply2
|
||||
(fun j1 j2 -> Expr.compare (j1, j1m) (j2, j2m))
|
||||
j1 j2)
|
||||
with
|
||||
| 0 ->
|
||||
let c1 = Expr.unbox r1.rule_cons in
|
||||
let c2 = Expr.unbox r2.rule_cons in
|
||||
Expr.compare c1 c2
|
||||
let c1, c1m = r1.rule_cons in
|
||||
let c2, c2m = r2.rule_cons in
|
||||
Bindlib.unbox
|
||||
(Bindlib.box_apply2
|
||||
(fun c1 c2 -> Expr.compare (c1, c1m) (c2, c2m))
|
||||
c1 c2)
|
||||
| n -> n)
|
||||
| Some (l1, _), Some (l2, _) ->
|
||||
ListLabels.compare l1 l2 ~cmp:(fun ((v1, _), t1) ((v2, _), t2) ->
|
||||
match Type.compare t1 t2 with
|
||||
| 0 -> (
|
||||
let open Bindlib in
|
||||
let b1 = unbox (bind_var v1 (Expr.Box.lift r1.rule_just)) in
|
||||
let b2 = unbox (bind_var v2 (Expr.Box.lift r2.rule_just)) in
|
||||
let _, j1, j2 = unbind2 b1 b2 in
|
||||
match Expr.compare j1 j2 with
|
||||
let b1 = bind_var v1 (Expr.Box.lift r1.rule_just) in
|
||||
let b2 = bind_var v2 (Expr.Box.lift r2.rule_just) in
|
||||
match
|
||||
Bindlib.unbox
|
||||
(Bindlib.box_apply2
|
||||
(fun b1 b2 ->
|
||||
let _, j1, j2 = unbind2 b1 b2 in
|
||||
Expr.compare j1 j2)
|
||||
b1 b2)
|
||||
with
|
||||
| 0 ->
|
||||
let b1 = unbox (bind_var v1 (Expr.Box.lift r1.rule_cons)) in
|
||||
let b2 = unbox (bind_var v2 (Expr.Box.lift r2.rule_cons)) in
|
||||
let _, c1, c2 = unbind2 b1 b2 in
|
||||
Expr.compare c1 c2
|
||||
let b1 = bind_var v1 (Expr.Box.lift r1.rule_cons) in
|
||||
let b2 = bind_var v2 (Expr.Box.lift r2.rule_cons) in
|
||||
Bindlib.unbox
|
||||
(Bindlib.box_apply2
|
||||
(fun b1 b2 ->
|
||||
let _, c1, c2 = unbind2 b1 b2 in
|
||||
Expr.compare c1 c2)
|
||||
b1 b2)
|
||||
| n -> n)
|
||||
| n -> n)
|
||||
| None, Some _ -> -1
|
||||
@ -201,7 +221,7 @@ type scope = {
|
||||
scope_sub_scopes : ScopeName.t SubScopeName.Map.t;
|
||||
scope_uid : ScopeName.t;
|
||||
scope_defs : scope_def ScopeDef.Map.t;
|
||||
scope_assertions : assertion list;
|
||||
scope_assertions : assertion AssertionName.Map.t;
|
||||
scope_options : catala_option Marked.pos list;
|
||||
scope_meta_assertions : meta_assertion list;
|
||||
}
|
||||
@ -271,9 +291,9 @@ let fold_exprs ~(f : 'a -> expr -> 'a) ~(init : 'a) (p : program) : 'a =
|
||||
scope.scope_defs acc
|
||||
in
|
||||
let acc =
|
||||
List.fold_left
|
||||
(fun acc assertion -> f acc (Expr.unbox assertion))
|
||||
acc scope.scope_assertions
|
||||
AssertionName.Map.fold
|
||||
(fun _ assertion acc -> f acc (Expr.unbox assertion))
|
||||
scope.scope_assertions acc
|
||||
in
|
||||
acc)
|
||||
p.program_scopes init
|
||||
|
@ -35,6 +35,8 @@ module ScopeDef : sig
|
||||
module Set : Set.S with type elt = t
|
||||
end
|
||||
|
||||
module AssertionName : Uid.Id with type info = Uid.MarkedString.info
|
||||
|
||||
(** {1 AST} *)
|
||||
|
||||
(** {2 Expressions} *)
|
||||
@ -119,7 +121,7 @@ type scope = {
|
||||
scope_sub_scopes : ScopeName.t SubScopeName.Map.t;
|
||||
scope_uid : ScopeName.t;
|
||||
scope_defs : scope_def ScopeDef.Map.t;
|
||||
scope_assertions : assertion list;
|
||||
scope_assertions : assertion AssertionName.Map.t;
|
||||
scope_options : catala_option Marked.pos list;
|
||||
scope_meta_assertions : meta_assertion list;
|
||||
}
|
||||
|
@ -33,13 +33,17 @@ open Shared_ast
|
||||
|
||||
Indeed, during interpretation, subscopes are executed atomically. *)
|
||||
module Vertex = struct
|
||||
type t = Var of ScopeVar.t * StateName.t option | SubScope of SubScopeName.t
|
||||
type t =
|
||||
| Var of ScopeVar.t * StateName.t option
|
||||
| SubScope of SubScopeName.t
|
||||
| Assertion of Ast.AssertionName.t
|
||||
|
||||
let hash x =
|
||||
match x with
|
||||
| Var (x, None) -> ScopeVar.hash x
|
||||
| Var (x, Some sx) -> Int.logxor (ScopeVar.hash x) (StateName.hash sx)
|
||||
| SubScope x -> SubScopeName.hash x
|
||||
| Assertion a -> Ast.AssertionName.hash a
|
||||
|
||||
let compare x y =
|
||||
match x, y with
|
||||
@ -48,8 +52,11 @@ module Vertex = struct
|
||||
| 0 -> Option.compare StateName.compare xst yst
|
||||
| n -> n)
|
||||
| SubScope x, SubScope y -> SubScopeName.compare x y
|
||||
| Assertion a, Assertion b -> Ast.AssertionName.compare a b
|
||||
| Var _, _ -> -1
|
||||
| _, Var _ -> 1
|
||||
| SubScope _, Assertion _ -> -1
|
||||
| Assertion _, SubScope _ -> 1
|
||||
| SubScope _, _ -> .
|
||||
| _, SubScope _ -> .
|
||||
|
||||
@ -58,7 +65,8 @@ module Vertex = struct
|
||||
| Var (x, sx), Var (y, sy) ->
|
||||
ScopeVar.equal x y && Option.equal StateName.equal sx sy
|
||||
| SubScope x, SubScope y -> SubScopeName.equal x y
|
||||
| (Var _ | SubScope _), _ -> false
|
||||
| Assertion a, Assertion b -> Ast.AssertionName.equal a b
|
||||
| (Var _ | SubScope _ | Assertion _), _ -> false
|
||||
|
||||
let format_t (fmt : Format.formatter) (x : t) : unit =
|
||||
match x with
|
||||
@ -66,11 +74,13 @@ module Vertex = struct
|
||||
| Var (v, Some sv) ->
|
||||
Format.fprintf fmt "%a@%a" ScopeVar.format_t v StateName.format_t sv
|
||||
| SubScope v -> SubScopeName.format_t fmt v
|
||||
| Assertion a -> Ast.AssertionName.format_t fmt a
|
||||
|
||||
let info = function
|
||||
| Var (v, None) -> ScopeVar.get_info v
|
||||
| Var (_, Some sv) -> StateName.get_info sv
|
||||
| SubScope v -> SubScopeName.get_info v
|
||||
| Assertion a -> Ast.AssertionName.get_info a
|
||||
end
|
||||
|
||||
(** On the edges, the label is the position of the expression responsible for
|
||||
@ -172,6 +182,12 @@ let build_scope_dependencies (scope : Ast.scope) : ScopeDependencies.t =
|
||||
ScopeDependencies.add_vertex g (Vertex.SubScope v))
|
||||
scope.scope_sub_scopes g
|
||||
in
|
||||
let g =
|
||||
Ast.AssertionName.Map.fold
|
||||
(fun a _ g -> ScopeDependencies.add_vertex g (Vertex.Assertion a))
|
||||
scope.scope_assertions g
|
||||
in
|
||||
(* then add the edges *)
|
||||
let g =
|
||||
Ast.ScopeDef.Map.fold
|
||||
(fun def_key scope_def g ->
|
||||
@ -237,6 +253,33 @@ let build_scope_dependencies (scope : Ast.scope) : ScopeDependencies.t =
|
||||
fv g)
|
||||
scope.scope_defs g
|
||||
in
|
||||
let g =
|
||||
Ast.AssertionName.Map.fold
|
||||
(fun a_name a g ->
|
||||
let used_vars = Ast.locations_used (Expr.unbox a) in
|
||||
Ast.LocationSet.fold
|
||||
(fun used_var g ->
|
||||
let edge_from =
|
||||
match Marked.unmark used_var with
|
||||
| DesugaredScopeVar (v, s) ->
|
||||
Some (Vertex.Var (Marked.unmark v, s))
|
||||
| SubScopeVar (_, subscope_name, _) ->
|
||||
Some (Vertex.SubScope (Marked.unmark subscope_name))
|
||||
| ToplevelVar _ -> None
|
||||
(* we don't add this dependency because toplevel definitions are
|
||||
outside the scope *)
|
||||
in
|
||||
match edge_from with
|
||||
| None -> g
|
||||
| Some edge_from ->
|
||||
let edge =
|
||||
ScopeDependencies.E.create edge_from (Expr.pos a)
|
||||
(Vertex.Assertion a_name)
|
||||
in
|
||||
ScopeDependencies.add_edge_e g edge)
|
||||
used_vars g)
|
||||
scope.scope_assertions g
|
||||
in
|
||||
g
|
||||
|
||||
(** {1 Exceptions dependency graph} *)
|
||||
|
@ -37,6 +37,7 @@ module Vertex : sig
|
||||
type t =
|
||||
| Var of Shared_ast.ScopeVar.t * Shared_ast.StateName.t option
|
||||
| SubScope of Shared_ast.SubScopeName.t
|
||||
| Assertion of Ast.AssertionName.t
|
||||
|
||||
val format_t : Format.formatter -> t -> unit
|
||||
val info : t -> Uid.MarkedString.info
|
||||
|
@ -56,7 +56,9 @@ let scope ctx env scope =
|
||||
{ def with scope_def_rules })
|
||||
scope.scope_defs
|
||||
in
|
||||
let scope_assertions = List.map (expr ctx env) scope.scope_assertions in
|
||||
let scope_assertions =
|
||||
AssertionName.Map.map (expr ctx env) scope.scope_assertions
|
||||
in
|
||||
{ scope with scope_defs; scope_assertions }
|
||||
|
||||
let program prg =
|
||||
|
@ -1114,7 +1114,7 @@ let process_assert
|
||||
cond ),
|
||||
Marked.get_mark cond ))
|
||||
in
|
||||
let ass =
|
||||
let assertion =
|
||||
match precond with
|
||||
| Some precond ->
|
||||
Expr.eifthenelse precond ass
|
||||
@ -1122,8 +1122,17 @@ let process_assert
|
||||
(Marked.get_mark precond)
|
||||
| None -> ass
|
||||
in
|
||||
(* The assertion name is not very relevant and should not be used in error
|
||||
messages, it is only a reference to designate the assertion instead of its
|
||||
expression. *)
|
||||
let assertion_name = Ast.AssertionName.fresh ("assert", Expr.pos assertion) in
|
||||
let new_scope =
|
||||
{ scope with scope_assertions = ass :: scope.scope_assertions }
|
||||
{
|
||||
scope with
|
||||
scope_assertions =
|
||||
Ast.AssertionName.Map.add assertion_name assertion
|
||||
scope.scope_assertions;
|
||||
}
|
||||
in
|
||||
{
|
||||
prgm with
|
||||
@ -1410,7 +1419,7 @@ let translate_program
|
||||
Ast.scope_vars;
|
||||
scope_sub_scopes;
|
||||
scope_defs = init_scope_defs ctxt s_context.var_idmap;
|
||||
scope_assertions = [];
|
||||
scope_assertions = Ast.AssertionName.Map.empty;
|
||||
scope_meta_assertions = [];
|
||||
scope_options = [];
|
||||
scope_uid = s_uid;
|
||||
|
@ -44,6 +44,62 @@ let detect_empty_definitions (p : program) : unit =
|
||||
scope.scope_defs)
|
||||
p.program_scopes
|
||||
|
||||
(* To detect rules that have the same justification and conclusion, we create a
|
||||
set data structure with an appropriate comparison function *)
|
||||
module RuleExpressionsMap = Map.Make (struct
|
||||
type t = rule
|
||||
|
||||
let compare x y =
|
||||
let xj, xj_mark = x.rule_just in
|
||||
let yj, yj_mark = y.rule_just in
|
||||
let just =
|
||||
Bindlib.unbox
|
||||
(Bindlib.box_apply2
|
||||
(fun xj yj -> Expr.compare (xj, xj_mark) (yj, yj_mark))
|
||||
xj yj)
|
||||
in
|
||||
if just = 0 then
|
||||
let xc, xc_mark = x.rule_cons in
|
||||
let yc, yc_mark = y.rule_cons in
|
||||
Bindlib.unbox
|
||||
(Bindlib.box_apply2
|
||||
(fun xc yc -> Expr.compare (xc, xc_mark) (yc, yc_mark))
|
||||
xc yc)
|
||||
else just
|
||||
end)
|
||||
|
||||
let detect_identical_rules (p : program) : unit =
|
||||
ScopeName.Map.iter
|
||||
(fun _ scope ->
|
||||
ScopeDef.Map.iter
|
||||
(fun _ scope_def ->
|
||||
let rules_seen =
|
||||
RuleName.Map.fold
|
||||
(fun _ rule rules_seen ->
|
||||
RuleExpressionsMap.update rule
|
||||
(fun l ->
|
||||
let x =
|
||||
( None,
|
||||
Pos.overwrite_law_info
|
||||
(snd (RuleName.get_info rule.rule_id))
|
||||
(Pos.get_law_info (Expr.pos rule.rule_just)) )
|
||||
in
|
||||
match l with None -> Some [x] | Some l -> Some (x :: l))
|
||||
rules_seen)
|
||||
scope_def.scope_def_rules RuleExpressionsMap.empty
|
||||
in
|
||||
RuleExpressionsMap.iter
|
||||
(fun _ pos ->
|
||||
if List.length pos > 1 then
|
||||
Errors.format_multispanned_warning pos
|
||||
"These %s have identical justifications and consequences; is \
|
||||
it a mistake?"
|
||||
(if scope_def.scope_def_is_condition then "rules"
|
||||
else "definitions"))
|
||||
rules_seen)
|
||||
scope.scope_defs)
|
||||
p.program_scopes
|
||||
|
||||
let detect_unused_scope_vars (p : program) : unit =
|
||||
let used_scope_vars =
|
||||
Ast.fold_exprs
|
||||
@ -78,6 +134,9 @@ let detect_unused_scope_vars (p : program) : unit =
|
||||
p.program_scopes
|
||||
|
||||
let detect_unused_struct_fields (p : program) : unit =
|
||||
(* TODO: this analysis should be finer grained: a false negative is if the
|
||||
field is used to define itself, for passing data around but that never gets
|
||||
really used or defined. *)
|
||||
let struct_fields_used =
|
||||
Ast.fold_exprs
|
||||
~f:(fun struct_fields_used e ->
|
||||
@ -200,4 +259,5 @@ let lint_program (p : program) : unit =
|
||||
detect_empty_definitions p;
|
||||
detect_unused_scope_vars p;
|
||||
detect_unused_struct_fields p;
|
||||
detect_unused_enum_constructors p
|
||||
detect_unused_enum_constructors p;
|
||||
detect_identical_rules p
|
||||
|
@ -366,9 +366,29 @@ let process_data_decl
|
||||
in
|
||||
let states_idmap, states_list =
|
||||
List.fold_right
|
||||
(fun state_id (states_idmap, states_list) ->
|
||||
(fun state_id
|
||||
((states_idmap : StateName.t IdentName.Map.t), states_list) ->
|
||||
let state_id_name = Marked.unmark state_id in
|
||||
if IdentName.Map.mem state_id_name states_idmap then
|
||||
Errors.raise_multispanned_error
|
||||
[
|
||||
( Some
|
||||
(Format.asprintf "First instance of state %a:"
|
||||
(Cli.format_with_style [ANSITerminal.yellow])
|
||||
("\"" ^ state_id_name ^ "\"")),
|
||||
Marked.get_mark state_id );
|
||||
( Some
|
||||
(Format.asprintf "Second instance of state %a:"
|
||||
(Cli.format_with_style [ANSITerminal.yellow])
|
||||
("\"" ^ state_id_name ^ "\"")),
|
||||
Marked.get_mark
|
||||
(IdentName.Map.find state_id_name states_idmap
|
||||
|> StateName.get_info) );
|
||||
]
|
||||
"There are two states with the same name for the same variable: \
|
||||
this is ambiguous. Please change the name of either states.";
|
||||
let state_uid = StateName.fresh state_id in
|
||||
( IdentName.Map.add (Marked.unmark state_id) state_uid states_idmap,
|
||||
( IdentName.Map.add state_id_name state_uid states_idmap,
|
||||
state_uid :: states_list ))
|
||||
decl.scope_decl_context_item_states (IdentName.Map.empty, [])
|
||||
in
|
||||
|
@ -50,7 +50,7 @@ let format_exception_tree (fmt : Format.formatter) (t : exception_tree) =
|
||||
print_node (pref' ^ " ") t'
|
||||
| _ ->
|
||||
pp_print_string fmt (blue "──");
|
||||
print_sons pref' "┬──" sons
|
||||
print_sons pref' "─┬──" sons
|
||||
and print_sons pref start = function
|
||||
| [] -> assert false
|
||||
| [s] ->
|
||||
@ -63,7 +63,7 @@ let format_exception_tree (fmt : Format.formatter) (t : exception_tree) =
|
||||
pp_print_string fmt (blue (pref ^ " │"));
|
||||
pp_force_newline fmt ();
|
||||
pp_print_string fmt (blue pref);
|
||||
print_sons pref "├──" sons
|
||||
print_sons pref " ├──" sons
|
||||
in
|
||||
print_node "" t
|
||||
|
||||
|
@ -569,7 +569,7 @@ let driver source_file (options : Cli.options) : int =
|
||||
with
|
||||
| Errors.StructuredError (msg, pos) ->
|
||||
let bt = Printexc.get_raw_backtrace () in
|
||||
Cli.error_print "%s" (Errors.print_structured_error msg pos);
|
||||
Errors.print_structured_error msg pos;
|
||||
if Printexc.backtrace_status () then Printexc.print_raw_backtrace stderr bt;
|
||||
-1
|
||||
| Sys_error msg ->
|
||||
|
@ -289,6 +289,8 @@ let rule_to_exception_graph (scope : Desugared.Ast.scope) = function
|
||||
new_exc_graph exc_graphs)
|
||||
Desugared.Ast.ScopeDef.Map.empty
|
||||
(List.map snd (Desugared.Ast.ScopeDef.Map.bindings sub_scope_vars_redefs))
|
||||
| Assertion _ ->
|
||||
Desugared.Ast.ScopeDef.Map.empty (* no exceptions for assertions *)
|
||||
|
||||
let scope_to_exception_graphs (scope : Desugared.Ast.scope) :
|
||||
Desugared.Dependency.ExceptionsDependencies.t Desugared.Ast.ScopeDef.Map.t =
|
||||
@ -697,6 +699,14 @@ let translate_rule
|
||||
{ pos = Marked.get_mark (SubScopeName.get_info sub_scope_index) }
|
||||
);
|
||||
]
|
||||
| Assertion a_name ->
|
||||
let assertion_expr =
|
||||
Desugared.Ast.AssertionName.Map.find a_name scope.scope_assertions
|
||||
in
|
||||
(* we unbox here because assertions do not have free variables (at this
|
||||
point Bindlib variables are only for fuhnction parameters)*)
|
||||
let assertion_expr = translate_expr ctx (Expr.unbox assertion_expr) in
|
||||
[Ast.Assertion (Expr.unbox assertion_expr)]
|
||||
|
||||
(** Translates a scope *)
|
||||
let translate_scope
|
||||
@ -719,17 +729,6 @@ let translate_scope
|
||||
scope_decl_rules @ new_rules)
|
||||
[] scope_ordering
|
||||
in
|
||||
(* Then, after having computed all the scopes variables, we add the
|
||||
assertions. TODO: the assertions should be interleaved with the
|
||||
definitions! *)
|
||||
let scope_decl_rules =
|
||||
scope_decl_rules
|
||||
@ List.map
|
||||
(fun e ->
|
||||
let scope_e = translate_expr ctx (Expr.unbox e) in
|
||||
Ast.Assertion (Expr.unbox scope_e))
|
||||
scope.Desugared.Ast.scope_assertions
|
||||
in
|
||||
let scope_sig =
|
||||
ScopeVar.Map.fold
|
||||
(fun var (states : Desugared.Ast.var_or_states) acc ->
|
||||
|
@ -57,16 +57,15 @@ let print_log entry infos pos e =
|
||||
formatted in one pass, without going through intermediate "%s" *)
|
||||
Cli.log_format "%*s%a %a: %s" (!log_indent * 2) "" Print.log_entry entry
|
||||
Print.uid_list infos
|
||||
(match Marked.unmark e with
|
||||
| EAbs _ -> Cli.with_style [ANSITerminal.green] "<function>"
|
||||
| _ ->
|
||||
let expr_str = Format.asprintf "%a" (Print.expr ()) e in
|
||||
let expr_str =
|
||||
Re.Pcre.substitute ~rex:(Re.Pcre.regexp "\n\\s*")
|
||||
~subst:(fun _ -> " ")
|
||||
expr_str
|
||||
in
|
||||
Cli.with_style [ANSITerminal.green] "%s" expr_str)
|
||||
(let expr_str =
|
||||
Format.asprintf "%a" (Print.expr ~hide_function_body:true ()) e
|
||||
in
|
||||
let expr_str =
|
||||
Re.Pcre.substitute ~rex:(Re.Pcre.regexp "\n\\s*")
|
||||
~subst:(fun _ -> " ")
|
||||
expr_str
|
||||
in
|
||||
Cli.with_style [ANSITerminal.green] "%s" expr_str)
|
||||
| PosRecordIfTrueBool -> (
|
||||
match pos <> Pos.no_pos, Marked.unmark e with
|
||||
| true, ELit (LBool true) ->
|
||||
|
@ -223,8 +223,6 @@ let rec optimize_expr :
|
||||
} ),
|
||||
_ ) ) ->
|
||||
EEmptyError
|
||||
| [], just ->
|
||||
EIfThenElse { cond = just; etrue = cons; efalse = EEmptyError, mark }
|
||||
| excepts, just -> EDefault { excepts; just; cons })
|
||||
| EIfThenElse
|
||||
{
|
||||
|
@ -431,14 +431,17 @@ end
|
||||
|
||||
let rec expr_aux :
|
||||
type a.
|
||||
hide_function_body:bool ->
|
||||
debug:bool ->
|
||||
Bindlib.ctxt ->
|
||||
ANSITerminal.style list ->
|
||||
Format.formatter ->
|
||||
(a, 't) gexpr ->
|
||||
unit =
|
||||
fun ~debug bnd_ctx colors fmt e ->
|
||||
let exprb bnd_ctx colors e = expr_aux ~debug bnd_ctx colors e in
|
||||
fun ~hide_function_body ~debug bnd_ctx colors fmt e ->
|
||||
let exprb bnd_ctx colors e =
|
||||
expr_aux ~hide_function_body ~debug bnd_ctx colors e
|
||||
in
|
||||
let exprc colors e = exprb bnd_ctx colors e in
|
||||
let expr e = exprc colors e in
|
||||
let var = if debug then var_debug else var in
|
||||
@ -448,7 +451,7 @@ let rec expr_aux :
|
||||
| e -> e
|
||||
in
|
||||
let e = skip_log e in
|
||||
let paren ~rhs expr fmt e1 =
|
||||
let paren ~rhs ?(colors = colors) expr fmt e1 =
|
||||
if Precedence.needs_parens ~rhs ~context:e (skip_log e1) then (
|
||||
Format.pp_open_hvbox fmt 1;
|
||||
Cli.format_with_style [List.hd colors] fmt "(";
|
||||
@ -457,7 +460,10 @@ let rec expr_aux :
|
||||
Cli.format_with_style [List.hd colors] fmt ")")
|
||||
else expr colors fmt e1
|
||||
in
|
||||
let lhs ex = paren ~rhs:false ex in
|
||||
let default_punct color fmt s =
|
||||
Format.pp_print_as fmt 1 (Cli.with_style [color] "%s" s)
|
||||
in
|
||||
let lhs ?(colors = colors) ex = paren ~colors ~rhs:false ex in
|
||||
let rhs ex = paren ~rhs:true ex in
|
||||
match Marked.unmark e with
|
||||
| EVar v -> var fmt v
|
||||
@ -501,20 +507,22 @@ let rec expr_aux :
|
||||
pr bnd_ctx colors fmt e;
|
||||
Format.pp_close_box fmt ()
|
||||
| EAbs { binder; tys } ->
|
||||
let xs, body, bnd_ctx = Bindlib.unmbind_in bnd_ctx binder in
|
||||
let expr = exprb bnd_ctx in
|
||||
let xs_tau = List.mapi (fun i tau -> xs.(i), tau) tys in
|
||||
Format.fprintf fmt "@[<hv 0>%a @[<hv 2>%a@]@ @]%a@ %a" punctuation "λ"
|
||||
(Format.pp_print_list ~pp_sep:Format.pp_print_space (fun fmt (x, tau) ->
|
||||
punctuation fmt "(";
|
||||
Format.pp_open_hvbox fmt 2;
|
||||
var fmt x;
|
||||
punctuation fmt ":";
|
||||
Format.pp_print_space fmt ();
|
||||
typ None fmt tau;
|
||||
Format.pp_close_box fmt ();
|
||||
punctuation fmt ")"))
|
||||
xs_tau punctuation "→" (rhs expr) body
|
||||
if hide_function_body then Format.fprintf fmt "%a" op_style "<function>"
|
||||
else
|
||||
let xs, body, bnd_ctx = Bindlib.unmbind_in bnd_ctx binder in
|
||||
let expr = exprb bnd_ctx in
|
||||
let xs_tau = List.mapi (fun i tau -> xs.(i), tau) tys in
|
||||
Format.fprintf fmt "@[<hv 0>%a @[<hv 2>%a@]@ @]%a@ %a" punctuation "λ"
|
||||
(Format.pp_print_list ~pp_sep:Format.pp_print_space (fun fmt (x, tau) ->
|
||||
punctuation fmt "(";
|
||||
Format.pp_open_hvbox fmt 2;
|
||||
var fmt x;
|
||||
punctuation fmt ":";
|
||||
Format.pp_print_space fmt ();
|
||||
typ None fmt tau;
|
||||
Format.pp_close_box fmt ();
|
||||
punctuation fmt ")"))
|
||||
xs_tau punctuation "→" (rhs expr) body
|
||||
| EApp { f = EOp { op = (Map | Filter) as op; _ }, _; args = [arg1; arg2] } ->
|
||||
Format.fprintf fmt "@[<hv 2>%a %a@ %a@]" (operator ~debug) op (lhs exprc)
|
||||
arg1 (rhs exprc) arg2
|
||||
@ -561,15 +569,36 @@ let rec expr_aux :
|
||||
| EOp { op; _ } -> operator ~debug fmt op
|
||||
| EDefault { excepts; just; cons } ->
|
||||
if List.length excepts = 0 then
|
||||
Format.fprintf fmt "@[<hv 1>%a%a@ %a %a%a@]" punctuation "⟨" expr just
|
||||
punctuation "⊢" expr cons punctuation "⟩"
|
||||
Format.fprintf fmt "@[<hv 1>%a%a@ %a %a%a@]"
|
||||
(default_punct (List.hd colors))
|
||||
"⟨"
|
||||
(exprc (List.tl colors))
|
||||
just
|
||||
(default_punct (List.hd colors))
|
||||
"⊢"
|
||||
(exprc (List.tl colors))
|
||||
cons
|
||||
(default_punct (List.hd colors))
|
||||
"⟩"
|
||||
else
|
||||
Format.fprintf fmt
|
||||
"@[<hv 0>@[<hov 2>%a %a@]@ @[<hov 2>%a %a@ %a %a@] %a@]" punctuation "⟨"
|
||||
"@[<hv 0>@[<hov 2>%a %a@]@ @[<hov 2>%a %a@ %a %a@] %a@]"
|
||||
(default_punct (List.hd colors))
|
||||
"⟨"
|
||||
(Format.pp_print_list
|
||||
~pp_sep:(fun fmt () -> Format.fprintf fmt "%a@ " punctuation ",")
|
||||
(lhs exprc))
|
||||
excepts punctuation "|" expr just punctuation "⊢" expr cons punctuation
|
||||
~pp_sep:(fun fmt () ->
|
||||
Format.fprintf fmt "%a@ " (default_punct (List.hd colors)) ",")
|
||||
(lhs ~colors:(List.tl colors) exprc))
|
||||
excepts
|
||||
(default_punct (List.hd colors))
|
||||
"|"
|
||||
(exprc (List.tl colors))
|
||||
just
|
||||
(default_punct (List.hd colors))
|
||||
"⊢"
|
||||
(exprc (List.tl colors))
|
||||
cons
|
||||
(default_punct (List.hd colors))
|
||||
"⟩"
|
||||
| EEmptyError -> lit_style fmt "∅"
|
||||
| EErrorOnEmpty e' ->
|
||||
@ -655,8 +684,8 @@ let rec colors =
|
||||
let typ_debug = typ None
|
||||
let typ ctx = typ (Some ctx)
|
||||
|
||||
let expr ?(debug = !Cli.debug_flag) () ppf e =
|
||||
expr_aux ~debug Bindlib.empty_ctxt colors ppf e
|
||||
let expr ?(hide_function_body = false) ?(debug = !Cli.debug_flag) () ppf e =
|
||||
expr_aux ~hide_function_body ~debug Bindlib.empty_ctxt colors ppf e
|
||||
|
||||
let scope_let_kind ?debug:(_debug = true) _ctx fmt k =
|
||||
match k with
|
||||
|
@ -52,8 +52,14 @@ val var : Format.formatter -> 'e Var.t -> unit
|
||||
val var_debug : Format.formatter -> 'e Var.t -> unit
|
||||
|
||||
val expr :
|
||||
?debug:bool -> unit -> Format.formatter -> ('a, 'm mark) gexpr -> unit
|
||||
(** Same as [expr], but with a debug flag that defaults to [!Cli.debug_flag] *)
|
||||
?hide_function_body:bool ->
|
||||
?debug:bool ->
|
||||
unit ->
|
||||
Format.formatter ->
|
||||
('a, 'm mark) gexpr ->
|
||||
unit
|
||||
(** Same as [expr], but with a debug flag that defaults to [!Cli.debug_flag]. If
|
||||
[~hide_function_body:true], prints "<function>" for [EAbs] nodes *)
|
||||
|
||||
(** {1 Debugging versions that don't require a context} *)
|
||||
|
||||
|
@ -33,14 +33,14 @@ Message: expected either 'condition', or 'content' followed by the expected vari
|
||||
Autosuggestion: did you mean "content", or maybe "condition"?
|
||||
|
||||
Error token:
|
||||
┌─⯈ examples/NSW_community_gaming/tests/test_nsw_social_housie.catala_en:11.20-25:
|
||||
┌─⯈ examples/NSW_community_gaming/tests/test_nsw_social_housie.catala_en:11.21-11.26:
|
||||
└──┐
|
||||
11 │ context my_gaming scope GamingAuthorized
|
||||
│ ‾‾‾‾‾
|
||||
|
||||
|
||||
Last good token:
|
||||
┌─⯈ examples/NSW_community_gaming/tests/test_nsw_social_housie.catala_en:11.10-19:
|
||||
┌─⯈ examples/NSW_community_gaming/tests/test_nsw_social_housie.catala_en:11.11-11.20:
|
||||
└──┐
|
||||
11 │ context my_gaming scope GamingAuthorized
|
||||
│ ‾‾‾‾‾‾‾‾‾
|
||||
@ -77,14 +77,14 @@ Message: expected either 'condition', or 'content' followed by the expected vari
|
||||
Autosuggestion: did you mean "content", or maybe "condition"?
|
||||
|
||||
Error token:
|
||||
┌─⯈ examples/NSW_community_gaming/tests/test_nsw_social_housie.catala_en:11.20-25:
|
||||
┌─⯈ examples/NSW_community_gaming/tests/test_nsw_social_housie.catala_en:11.21-11.26:
|
||||
└──┐
|
||||
11 │ context my_gaming scope GamingAuthorized
|
||||
│ ‾‾‾‾‾
|
||||
|
||||
|
||||
Last good token:
|
||||
┌─⯈ examples/NSW_community_gaming/tests/test_nsw_social_housie.catala_en:11.10-19:
|
||||
┌─⯈ examples/NSW_community_gaming/tests/test_nsw_social_housie.catala_en:11.11-11.20:
|
||||
└──┐
|
||||
11 │ context my_gaming scope GamingAuthorized
|
||||
│ ‾‾‾‾‾‾‾‾‾
|
||||
@ -121,14 +121,14 @@ Message: expected either 'condition', or 'content' followed by the expected vari
|
||||
Autosuggestion: did you mean "content", or maybe "condition"?
|
||||
|
||||
Error token:
|
||||
┌─⯈ examples/NSW_community_gaming/tests/test_nsw_social_housie.catala_en:11.20-25:
|
||||
┌─⯈ examples/NSW_community_gaming/tests/test_nsw_social_housie.catala_en:11.21-11.26:
|
||||
└──┐
|
||||
11 │ context my_gaming scope GamingAuthorized
|
||||
│ ‾‾‾‾‾
|
||||
|
||||
|
||||
Last good token:
|
||||
┌─⯈ examples/NSW_community_gaming/tests/test_nsw_social_housie.catala_en:11.10-19:
|
||||
┌─⯈ examples/NSW_community_gaming/tests/test_nsw_social_housie.catala_en:11.11-11.20:
|
||||
└──┐
|
||||
11 │ context my_gaming scope GamingAuthorized
|
||||
│ ‾‾‾‾‾‾‾‾‾
|
||||
@ -167,14 +167,14 @@ Message: expected either 'condition', or 'content' followed by the expected vari
|
||||
Autosuggestion: did you mean "content", or maybe "condition"?
|
||||
|
||||
Error token:
|
||||
┌─⯈ examples/NSW_community_gaming/tests/test_nsw_social_housie.catala_en:11.20-25:
|
||||
┌─⯈ examples/NSW_community_gaming/tests/test_nsw_social_housie.catala_en:11.21-11.26:
|
||||
└──┐
|
||||
11 │ context my_gaming scope GamingAuthorized
|
||||
│ ‾‾‾‾‾
|
||||
|
||||
|
||||
Last good token:
|
||||
┌─⯈ examples/NSW_community_gaming/tests/test_nsw_social_housie.catala_en:11.10-19:
|
||||
┌─⯈ examples/NSW_community_gaming/tests/test_nsw_social_housie.catala_en:11.11-11.20:
|
||||
└──┐
|
||||
11 │ context my_gaming scope GamingAuthorized
|
||||
│ ‾‾‾‾‾‾‾‾‾
|
||||
|
@ -89,11 +89,30 @@ champ d'application CalculAidePersonnaliséeLogementLocatif
|
||||
-- n'importe quel: faux) et
|
||||
nombre_personnes_à_charge >= 6
|
||||
conséquence égal à 5,0
|
||||
# TODO juridique: demander à DGALN/DHUP si cette limitation à 6 personnes à
|
||||
# charge s'applique également aux exceptions à l'article 7 que sont les
|
||||
# articles 8 et 16 de l'arrêté pour les chambres et la colocation.
|
||||
# Ici nous avons choisi de faire appliquer la limitation à tous les cas
|
||||
# y compris les chambres et la colocation.
|
||||
# Cette limitation à 6 personnes à charge s'applique également aux exceptions à
|
||||
# l'article 7 que sont les articles 8 et 16 de l'arrêté pour les chambres et la
|
||||
# colocation. Cependant le barème chambre ne dépend pas du nombre de personnes à
|
||||
# charge donc rien à faire. Par contre dans l'article 16 il faut bien appliquer
|
||||
# la limitation, ce qui est fait de la manière qu'à l'article 7 via l'emploi de
|
||||
# la variable "multiplicateur_majoration_plafond_loyer_d823_16_2". Ceci nous a
|
||||
# été confirmé par un mail du 21/04/2023 de DGALN/DHUP/FE4 :
|
||||
# "Il convient de ne pas faire de lecture trop extensive des textes, il est en
|
||||
# effet factuellement impossible de loger sept ou huit personnes dans une simple
|
||||
# chambre. De plus l’article 8 de l’arrêté, relatif aux chambres, précise que le
|
||||
# barème applicable est identique quelle que soit la taille de la famille et est
|
||||
# basé sur celui applicable à une personne isolée.
|
||||
# Concernant la colocation, il convient de faire une lecture groupée de l’arrêté
|
||||
# :
|
||||
# - Le 1° de l’article 46 précisait que la majoration était limitée à six
|
||||
# personnes à charge et selon les termes du a) cette majoration impactait les
|
||||
# loyers plafonds dont les valeurs sont fixées à l’article 7 de l’arrêté.
|
||||
# L’article 7 était donc applicable dans la limite de six personnes à charge
|
||||
# et pas au-delà.
|
||||
# - L’article 16 qui concerne la colocation précise que les loyers plafonds
|
||||
# applicables représentent 75% de ceux fixés à l’article 7.
|
||||
# De fait, le plafonnement applicable à la colocation (article 16) découle de
|
||||
# l’article 7 et était limité à six personnes à charge par le a) du 1° de
|
||||
# l’article 46."
|
||||
```
|
||||
|
||||
b) Les montants forfaitaires au titre des charges visés au 3° de l'article
|
||||
@ -493,8 +512,10 @@ pas assujettie à l'impôt sur le revenu, le montant forfaitaire de ressources e
|
||||
pour la location et à 4 900 euros pour la résidence en logement-foyer.
|
||||
|
||||
```catala
|
||||
# TODO informatique et juridique: traduire cet article qui vient définir
|
||||
# ressources_forfaitaires_r822_20
|
||||
# Nous choissisons par manque de ressources (sic) de développement de laisser
|
||||
# le calcul des ressources à l'utilisateur du programme qui devra suivre
|
||||
# les instructions de cet article et de ceux auxquels il se réfère pour
|
||||
# correctement évaluer leur montant.
|
||||
```
|
||||
|
||||
NOTA :
|
||||
@ -582,11 +603,30 @@ champ d'application CalculAidePersonnaliséeLogementLocatif
|
||||
-- n'importe quel: faux) et
|
||||
nombre_personnes_à_charge >= 6
|
||||
conséquence égal à 5,0
|
||||
# TODO juridique: demander à DGALN/DHUP si cette limitation à 6 personnes à
|
||||
# charge s'applique également aux exceptions à l'article 7 que sont les
|
||||
# articles 8 et 16 de l'arrêté pour les chambres et la colocation.
|
||||
# Ici nous avons choisi de faire appliquer la limitation à tous les cas
|
||||
# y compris les chambres et la colocation.
|
||||
# Cette limitation à 6 personnes à charge s'applique également aux exceptions à
|
||||
# l'article 7 que sont les articles 8 et 16 de l'arrêté pour les chambres et la
|
||||
# colocation. Cependant le barème chambre ne dépend pas du nombre de personnes à
|
||||
# charge donc rien à faire. Par contre dans l'article 16 il faut bien appliquer
|
||||
# la limitation, ce qui est fait de la manière qu'à l'article 7 via l'emploi de
|
||||
# la variable "multiplicateur_majoration_plafond_loyer_d823_16_2". Ceci nous a
|
||||
# été confirmé par un mail du 21/04/2023 de DGALN/DHUP/FE4 :
|
||||
# "Il convient de ne pas faire de lecture trop extensive des textes, il est en
|
||||
# effet factuellement impossible de loger sept ou huit personnes dans une simple
|
||||
# chambre. De plus l’article 8 de l’arrêté, relatif aux chambres, précise que le
|
||||
# barème applicable est identique quelle que soit la taille de la famille et est
|
||||
# basé sur celui applicable à une personne isolée.
|
||||
# Concernant la colocation, il convient de faire une lecture groupée de l’arrêté
|
||||
# :
|
||||
# - Le 1° de l’article 46 précisait que la majoration était limitée à six
|
||||
# personnes à charge et selon les termes du a) cette majoration impactait les
|
||||
# loyers plafonds dont les valeurs sont fixées à l’article 7 de l’arrêté.
|
||||
# L’article 7 était donc applicable dans la limite de six personnes à charge
|
||||
# et pas au-delà.
|
||||
# - L’article 16 qui concerne la colocation précise que les loyers plafonds
|
||||
# applicables représentent 75% de ceux fixés à l’article 7.
|
||||
# De fait, le plafonnement applicable à la colocation (article 16) découle de
|
||||
# l’article 7 et était limité à six personnes à charge par le a) du 1° de
|
||||
# l’article 46."
|
||||
```
|
||||
|
||||
b) Les montants forfaitaires au titre des charges visés au 3° de l'article D. 823-16, au 4° des articles
|
||||
@ -932,11 +972,11 @@ personnelles au logement en secteur locatif.
|
||||
# Article 42 seuil de versement : valeurs identiques à partir du
|
||||
# 1er janvier 2023 à celles de l'article 12 donc rien à coder.
|
||||
|
||||
# TODO juridique : l'article 43 parle de l'équivalence loyer en secteur
|
||||
# logement-foyer mais il n'existe pas de quantité équivalente en secteur
|
||||
# locatif! Comment donc appliquer la règle de prendre les valeurs du chapitre
|
||||
# III pour l'application du chapitre VII dans ce cas ?
|
||||
# Idem pour l'article 44 et et le montant minimal de dépense nette de loyer.
|
||||
# L'article 43 parle de l'équivalence loyer en secteur
|
||||
# logement-foyer mais à Saint-Pierre-et-Miquelon on calcule le secteur
|
||||
# logement-foyer avec la formule du secteur locatif, ici pas besoin de prendre
|
||||
# en compte. Idem pour l'article 44 et et le montant minimal de dépense nette
|
||||
# de loyer.
|
||||
```
|
||||
|
||||
NOTA : Conformément à l’article 2 de l’arrêté du 20 décembre 2021 (NOR : LOGL2134477A), ces dispositions sont
|
||||
@ -1702,11 +1742,30 @@ champ d'application CalculAidePersonnaliséeLogementLocatif
|
||||
-- n'importe quel: faux) et
|
||||
nombre_personnes_à_charge >= 6
|
||||
conséquence égal à 5,0
|
||||
# TODO juridique: demander à DGALN/DHUP si cette limitation à 6 personnes à
|
||||
# charge s'applique également aux exceptions à l'article 7 que sont les
|
||||
# articles 8 et 16 de l'arrêté pour les chambres et la colocation.
|
||||
# Ici nous avons choisi de faire appliquer la limitation à tous les cas
|
||||
# y compris les chambres et la colocation.
|
||||
# Cette limitation à 6 personnes à charge s'applique également aux exceptions à
|
||||
# l'article 7 que sont les articles 8 et 16 de l'arrêté pour les chambres et la
|
||||
# colocation. Cependant le barème chambre ne dépend pas du nombre de personnes à
|
||||
# charge donc rien à faire. Par contre dans l'article 16 il faut bien appliquer
|
||||
# la limitation, ce qui est fait de la manière qu'à l'article 7 via l'emploi de
|
||||
# la variable "multiplicateur_majoration_plafond_loyer_d823_16_2". Ceci nous a
|
||||
# été confirmé par un mail du 21/04/2023 de DGALN/DHUP/FE4 :
|
||||
# "Il convient de ne pas faire de lecture trop extensive des textes, il est en
|
||||
# effet factuellement impossible de loger sept ou huit personnes dans une simple
|
||||
# chambre. De plus l’article 8 de l’arrêté, relatif aux chambres, précise que le
|
||||
# barème applicable est identique quelle que soit la taille de la famille et est
|
||||
# basé sur celui applicable à une personne isolée.
|
||||
# Concernant la colocation, il convient de faire une lecture groupée de l’arrêté
|
||||
# :
|
||||
# - Le 1° de l’article 46 précisait que la majoration était limitée à six
|
||||
# personnes à charge et selon les termes du a) cette majoration impactait les
|
||||
# loyers plafonds dont les valeurs sont fixées à l’article 7 de l’arrêté.
|
||||
# L’article 7 était donc applicable dans la limite de six personnes à charge
|
||||
# et pas au-delà.
|
||||
# - L’article 16 qui concerne la colocation précise que les loyers plafonds
|
||||
# applicables représentent 75% de ceux fixés à l’article 7.
|
||||
# De fait, le plafonnement applicable à la colocation (article 16) découle de
|
||||
# l’article 7 et était limité à six personnes à charge par le a) du 1° de
|
||||
# l’article 46."
|
||||
```
|
||||
|
||||
b) Les montants forfaitaires au titre des charges visés au 3° de l'article D. 823-16, au 4° des articles
|
||||
@ -1818,7 +1877,17 @@ pour un ménage ayant un enfant à charge, est remplacée par " 7 584 euros " ;
|
||||
```catala
|
||||
champ d'application CalculAidePersonnaliséeLogementLocatif
|
||||
sous condition date_courante >= |2021-10-01| et date_courante < |2022-01-01|:
|
||||
exception métropole
|
||||
# Normalement la règle suivante aurait du être une exception à l'étiquette
|
||||
# "métropole".Cependant, la version de l'article 47 de l'arrêté du 27
|
||||
# septembre 2019 en vigueur du 1er janvier 2021 au 31 décembre 2021 prévoit
|
||||
# également dans le cas de l'outre-mer un remplacement du tableau des valeurs
|
||||
# de R0 de l'article 15. Cependant pour faire exister cette règle plus précise
|
||||
# valable uniquement fin 2021, nous la codons ici comme une exception au
|
||||
# tableau de l'article 47 afin d'éviter le conflit entre deux règles qui
|
||||
# s'activent en même temps.
|
||||
# TODO juridique: savoir pourquoi ces deux règles qui entrent en conflit sur
|
||||
# la valeur de R0 dans ce cas: 6990 € ou 7584 € ?
|
||||
exception article_47
|
||||
définition abattement_forfaitaire_d823_17
|
||||
sous condition
|
||||
(selon résidence sous forme
|
||||
@ -2414,7 +2483,7 @@ champ d'application CalculAidePersonnaliséeLogementLocatif
|
||||
Composition du foyer Montant
|
||||
-------------------------------- -------
|
||||
Bénéficiaire isolé 26,99
|
||||
Couple sans personne à charge 53,99
|
||||
Couple sans personne à charge 53,99
|
||||
Majoration par personne à charge 12,24
|
||||
|
||||
```catala
|
||||
@ -2772,11 +2841,30 @@ champ d'application CalculAidePersonnaliséeLogementLocatif
|
||||
-- n'importe quel: faux) et
|
||||
nombre_personnes_à_charge >= 6
|
||||
conséquence égal à 5,0
|
||||
# TODO juridique: demander à DGALN/DHUP si cette limitation à 6 personnes à
|
||||
# charge s'applique également aux exceptions à l'article 7 que sont les
|
||||
# articles 8 et 16 de l'arrêté pour les chambres et la colocation.
|
||||
# Ici nous avons choisi de faire appliquer la limitation à tous les cas
|
||||
# y compris les chambres et la colocation.
|
||||
# Cette limitation à 6 personnes à charge s'applique également aux exceptions à
|
||||
# l'article 7 que sont les articles 8 et 16 de l'arrêté pour les chambres et la
|
||||
# colocation. Cependant le barème chambre ne dépend pas du nombre de personnes à
|
||||
# charge donc rien à faire. Par contre dans l'article 16 il faut bien appliquer
|
||||
# la limitation, ce qui est fait de la manière qu'à l'article 7 via l'emploi de
|
||||
# la variable "multiplicateur_majoration_plafond_loyer_d823_16_2". Ceci nous a
|
||||
# été confirmé par un mail du 21/04/2023 de DGALN/DHUP/FE4 :
|
||||
# "Il convient de ne pas faire de lecture trop extensive des textes, il est en
|
||||
# effet factuellement impossible de loger sept ou huit personnes dans une simple
|
||||
# chambre. De plus l’article 8 de l’arrêté, relatif aux chambres, précise que le
|
||||
# barème applicable est identique quelle que soit la taille de la famille et est
|
||||
# basé sur celui applicable à une personne isolée.
|
||||
# Concernant la colocation, il convient de faire une lecture groupée de l’arrêté
|
||||
# :
|
||||
# - Le 1° de l’article 46 précisait que la majoration était limitée à six
|
||||
# personnes à charge et selon les termes du a) cette majoration impactait les
|
||||
# loyers plafonds dont les valeurs sont fixées à l’article 7 de l’arrêté.
|
||||
# L’article 7 était donc applicable dans la limite de six personnes à charge
|
||||
# et pas au-delà.
|
||||
# - L’article 16 qui concerne la colocation précise que les loyers plafonds
|
||||
# applicables représentent 75% de ceux fixés à l’article 7.
|
||||
# De fait, le plafonnement applicable à la colocation (article 16) découle de
|
||||
# l’article 7 et était limité à six personnes à charge par le a) du 1° de
|
||||
# l’article 46."
|
||||
```
|
||||
|
||||
b) Les montants forfaitaires au titre des charges visés au 3° de l'article D. 823-16, au 4° des
|
||||
@ -2888,7 +2976,17 @@ code, pour un ménage ayant un enfant à charge, est remplacée par " 7 584 euro
|
||||
```catala
|
||||
champ d'application CalculAidePersonnaliséeLogementLocatif
|
||||
sous condition date_courante >= |2020-10-01| et date_courante < |2021-10-01|:
|
||||
exception métropole
|
||||
# Normalement la règle suivante aurait du être une exception à l'étiquette
|
||||
# "métropole". Cependant, la version de l'article 47 de l'arrêté du 27
|
||||
# septembre 2019 en vigueur du 1er janvier 2020 au 31 décembre 2020 prévoit
|
||||
# également dans le cas de l'outre-mer un remplacement du tableau des valeurs
|
||||
# de R0 de l'article 15. Cependant pour faire exister cette règle plus précise valable
|
||||
# uniquement fin 2020, nous la codons ici comme une exception au tableau de
|
||||
# l'article 47 afin d'éviter le conflit entre deux règles qui s'activent en
|
||||
# même temps.
|
||||
# TODO juridique: savoir pourquoi ces deux règles qui entrent en conflit sur
|
||||
# la valeur de R0 dans ce cas: 6396 € ou 7584 €?
|
||||
exception article_47
|
||||
définition abattement_forfaitaire_d823_17
|
||||
sous condition
|
||||
(selon résidence sous forme
|
||||
@ -3050,6 +3148,7 @@ champ d'application CalculAllocationLogementAccessionPropriété
|
||||
visé au 3° de l'article D. 823-17 du même code, sont remplacées par les valeurs suivantes :
|
||||
|
||||
VALEURS DE TF
|
||||
|
||||
Bénéficiaires TF
|
||||
--------------------------------- -----
|
||||
Isolé 2,81%
|
||||
@ -3109,6 +3208,11 @@ assujettie à l'impôt sur le revenu, le montant minimal de ressources est fixé
|
||||
location et à 4 900 euros pour la résidence en logement-foyer.
|
||||
|
||||
```catala
|
||||
# Nous choissisons par manque de ressources (sic) de développement de laisser
|
||||
# le calcul des ressources à l'utilisateur du programme qui devra suivre
|
||||
# les instructions de cet article et de ceux auxquels il se réfère pour
|
||||
# correctement évaluer leur montant.
|
||||
#
|
||||
# Modifications non subsantielles mais qui peuvent améliorer la compréhension et
|
||||
# la précision des dispositions par rapport à la version initiale.
|
||||
# TODO informatique et juridique: traduire cet article qui vient définir
|
||||
@ -3179,6 +3283,7 @@ Personne seule ou couple ayant :
|
||||
```catala
|
||||
champ d'application CalculAidePersonnaliséeLogementLocatif
|
||||
sous condition date_courante >= |2021-01-01| et date_courante < |2022-01-01|:
|
||||
étiquette article_47
|
||||
exception métropole
|
||||
définition abattement_forfaitaire_d823_17 sous condition
|
||||
selon résidence sous forme
|
||||
@ -3307,11 +3412,30 @@ champ d'application CalculAidePersonnaliséeLogementLocatif
|
||||
-- n'importe quel: faux) et
|
||||
nombre_personnes_à_charge >= 6
|
||||
conséquence égal à 5,0
|
||||
# TODO juridique: demander à DGALN/DHUP si cette limitation à 6 personnes à
|
||||
# charge s'applique également aux exceptions à l'article 7 que sont les
|
||||
# articles 8 et 16 de l'arrêté pour les chambres et la colocation.
|
||||
# Ici nous avons choisi de faire appliquer la limitation à tous les cas
|
||||
# y compris les chambres et la colocation.
|
||||
# Cette limitation à 6 personnes à charge s'applique également aux exceptions à
|
||||
# l'article 7 que sont les articles 8 et 16 de l'arrêté pour les chambres et la
|
||||
# colocation. Cependant le barème chambre ne dépend pas du nombre de personnes à
|
||||
# charge donc rien à faire. Par contre dans l'article 16 il faut bien appliquer
|
||||
# la limitation, ce qui est fait de la manière qu'à l'article 7 via l'emploi de
|
||||
# la variable "multiplicateur_majoration_plafond_loyer_d823_16_2". Ceci nous a
|
||||
# été confirmé par un mail du 21/04/2023 de DGALN/DHUP/FE4 :
|
||||
# "Il convient de ne pas faire de lecture trop extensive des textes, il est en
|
||||
# effet factuellement impossible de loger sept ou huit personnes dans une simple
|
||||
# chambre. De plus l’article 8 de l’arrêté, relatif aux chambres, précise que le
|
||||
# barème applicable est identique quelle que soit la taille de la famille et est
|
||||
# basé sur celui applicable à une personne isolée.
|
||||
# Concernant la colocation, il convient de faire une lecture groupée de l’arrêté
|
||||
# :
|
||||
# - Le 1° de l’article 46 précisait que la majoration était limitée à six
|
||||
# personnes à charge et selon les termes du a) cette majoration impactait les
|
||||
# loyers plafonds dont les valeurs sont fixées à l’article 7 de l’arrêté.
|
||||
# L’article 7 était donc applicable dans la limite de six personnes à charge
|
||||
# et pas au-delà.
|
||||
# - L’article 16 qui concerne la colocation précise que les loyers plafonds
|
||||
# applicables représentent 75% de ceux fixés à l’article 7.
|
||||
# De fait, le plafonnement applicable à la colocation (article 16) découle de
|
||||
# l’article 7 et était limité à six personnes à charge par le a) du 1° de
|
||||
# l’article 46."
|
||||
```
|
||||
|
||||
b) Les montants forfaitaires au titre des charges visés au 3° de l'article D. 823-16, au
|
||||
@ -3586,6 +3710,7 @@ champ d'application CalculAllocationLogementAccessionPropriété
|
||||
visé au 3° de l'article D. 823-17 du même code, sont remplacées par les valeurs suivantes :
|
||||
|
||||
VALEURS DE TF
|
||||
|
||||
Bénéficiaires TF
|
||||
----------------------------------- -----
|
||||
Isolé 2,81%
|
||||
@ -3600,7 +3725,7 @@ Couple sans enfant 2,99%
|
||||
|
||||
```catala
|
||||
champ d'application CalculAidePersonnaliséeLogementLocatif
|
||||
sous condition date_courante >= |2020-10-01| et date_courante < |2021-10-01|:
|
||||
sous condition date_courante >= |2020-01-01| et date_courante < |2020-10-01|:
|
||||
exception base définition taux_composition_familiale sous condition
|
||||
(selon résidence sous forme
|
||||
-- Guadeloupe: vrai
|
||||
@ -3657,11 +3782,15 @@ selon la formule suivante :
|
||||
" R0 (Mayotte) N = R0 (Mayotte) N-1 + R0 (DOM) N-1 - R0 (Mayotte) N-1 / 2022 - (N - 1) "
|
||||
|
||||
dans laquelle :
|
||||
|
||||
- " N " est l'année d'augmentation.
|
||||
|
||||
- " R0 (Mayotte) N " est le forfait applicable à Mayotte pour un type de ménage donné en année
|
||||
" N " avant revalorisation éventuelle.
|
||||
|
||||
- " R0 (Mayotte) N-1 " est le forfait applicable à Mayotte pour ce même type de ménage à la veille
|
||||
de l'augmentation.
|
||||
|
||||
- " R0 (DOM) N-1 " est le forfait applicable en Guadeloupe, en Guyane, en Martinique, à La Réunion,
|
||||
à Saint-Barthélemy et à Saint-Martin à la veille de l'augmentation.
|
||||
|
||||
@ -3688,6 +3817,7 @@ dispositions sont applicables pour les prestations dues à compter du 1er janvie
|
||||
```catala
|
||||
champ d'application CalculAidePersonnaliséeLogementLocatif
|
||||
sous condition date_courante >= |2020-01-01| et date_courante < |2021-01-01|:
|
||||
étiquette article_47
|
||||
exception métropole
|
||||
définition abattement_forfaitaire_d823_17 sous condition
|
||||
selon résidence sous forme
|
||||
@ -3697,8 +3827,8 @@ champ d'application CalculAidePersonnaliséeLogementLocatif
|
||||
-- Mayotte: vrai
|
||||
-- SaintBarthélemy: vrai
|
||||
-- SaintMartin: vrai
|
||||
# TODO juridique: vérifier qu'au 1er octobre 2021 cet article ne
|
||||
# s'appliquait pas à Saint-Pierre et Miquelon
|
||||
# Au 1er octobre 2021 cet article ne s'appliquait pas à Saint-Pierre et
|
||||
# Miquelon car il n'y avait pas d'APL à Saint-Pierre et Miquelon cette date.
|
||||
-- n'importe quel: faux
|
||||
conséquence égal à
|
||||
si nombre_personnes_à_charge = 0 alors
|
||||
|
@ -4498,7 +4498,16 @@ Majoration par personne à charge supplémentaire -0,06 %
|
||||
# Ici bizarrerie, à la ligne pour 7 personnes on a un TF plus grand que la
|
||||
# ligne à 6 personnes alors que partout ailleurs on a une décroissance.
|
||||
# Cette bizarrerie a été introduite avec la dernière version de l'arrêté de 2019
|
||||
# (arrêté du 26 décembre 2022).
|
||||
# (arrêté du 26 décembre 2022). Une justification nous en a été donnée par
|
||||
# DGALN/DHUP/FE4 dans un mail en date du 21/04/2023 :
|
||||
# "Le calcul du TF est plus avantageux en outre-mer par rapport à la métropole.
|
||||
# Si la limite de 6 enfants a été supprimée, le barème applicable à l’outre-mer
|
||||
# n’a pas été modifié pour les six premiers enfants. Par contre, à compter du
|
||||
# 7ème enfant à charge, le barème applicable est identique à celui applicable en
|
||||
# métropole (voir l’article 14 de l’arrêté : TF pour 6 personnes à charge de
|
||||
# 1,73%, majoration par personne supplémentaire : -0,06% - TF applicable pour 7
|
||||
# personnes à charge : 1,73 – 0,06 = 1,67%). Il ne s’agit donc pas d’un
|
||||
# incohérence numérique mais d’un alignement avec le barème métropolitain."
|
||||
|
||||
# Ici nous modifions le champ d'application
|
||||
# "CalculAidePersonnaliséeLogementLocatif" au lieu de
|
||||
|
@ -346,10 +346,12 @@ issues de l'article 2 du présent décret, pour les ménages bénéficiaires des
|
||||
logement à Saint-Pierre-et-Miquelon mentionnées à cet article, le montant mensuel de l'aide due au
|
||||
titre du mois de janvier 2022 jusqu'au mois de décembre 2025 est calculé selon la formule suivante :
|
||||
|
||||
ALspm = ALt × (1 (2026-n) / 8)
|
||||
ALspm = ALt × (1 - (2026-n) / 8)
|
||||
|
||||
```catala
|
||||
# TODO juridique: pourquoi le "1" dans la formule ? Ça ne sert à rien.
|
||||
# Attention, la formule initiale était fausse (manque un "-" après le "1"),
|
||||
# rectifié par https://www.legifrance.gouv.fr/jorf/id/JORFTEXT000044807163 et
|
||||
# c'est la version rectifiée que nous prenons en compte.
|
||||
```
|
||||
|
||||
Dans laquelle :
|
||||
@ -364,15 +366,156 @@ code précité, le cas échéant adaptées selon les dispositions de l'article 2
|
||||
peuvent être modifiées par décret.
|
||||
|
||||
```catala
|
||||
# D'après L860-3 CCH, les habitants de Saint-Pierre et Miquelon n'ont
|
||||
# droit qu'à l'allocation logement et pas à l'aide au logement. Donc on
|
||||
# ne modifie que le champ d'application CalculAllocationLogement.
|
||||
champ d'application CalculAllocationLogement:
|
||||
exception définition aide_finale_formule sous condition
|
||||
déclaration montée_en_charge_saint_pierre_miquelon contenu argent dépend de
|
||||
aide_finale contenu argent,
|
||||
résidence contenu Collectivité,
|
||||
date_courante contenu date
|
||||
égal à
|
||||
si
|
||||
résidence sous forme SaintPierreEtMiquelon et
|
||||
date_courante >= |2022-01-01| et
|
||||
date_courante <= |2025-12-31|
|
||||
conséquence égal à
|
||||
sous_calcul_traitement.aide_finale_formule *
|
||||
(décimal de (2026 - accès_année de date_courante) / 8,0)
|
||||
alors
|
||||
aide_finale * (1,0 -
|
||||
(décimal de (2026 - accès_année de date_courante) / 8,0))
|
||||
sinon
|
||||
aide_finale
|
||||
|
||||
# D'après L860-3 CCH, les habitants de Saint-Pierre et Miquelon n'ont
|
||||
# droit qu'à l'allocation logement et pas à l'aide au logement. Donc on
|
||||
# ne modifie que les champs d'applications relatifs à l'allocation logement,
|
||||
# dans les trois secteurs. À l'exception du secteur locatif où le calcul de
|
||||
# l'allocation logement passe par le barème de l'aide personnalisée au logement,
|
||||
# et où il faut donc modifier le champ d'application afférent.
|
||||
champ d'application CalculAidePersonnaliséeLogementLocatif:
|
||||
définition traitement_aide_finale de aide_finale
|
||||
état montée_en_charge_saint_pierre_miquelon
|
||||
égal à
|
||||
soit aide_finale égal à traitement_aide_finale de aide_finale dans
|
||||
montée_en_charge_saint_pierre_miquelon de
|
||||
aide_finale, résidence, date_courante
|
||||
|
||||
champ d'application CalculAllocationLogementFoyer:
|
||||
définition traitement_aide_finale de aide_finale
|
||||
état montée_en_charge_saint_pierre_miquelon
|
||||
égal à
|
||||
soit aide_finale égal à traitement_aide_finale de aide_finale dans
|
||||
montée_en_charge_saint_pierre_miquelon de
|
||||
aide_finale, résidence, date_courante
|
||||
|
||||
champ d'application CalculAllocationLogementAccessionPropriété:
|
||||
définition traitement_aide_finale de aide_finale
|
||||
état montée_en_charge_saint_pierre_miquelon
|
||||
égal à
|
||||
soit aide_finale égal à traitement_aide_finale de aide_finale dans
|
||||
montée_en_charge_saint_pierre_miquelon de
|
||||
aide_finale, résidence, date_courante
|
||||
```
|
||||
|
||||
# Code général des collectivités territoriales
|
||||
|
||||
## Partie législative
|
||||
|
||||
### Sixième partie : collectivités d'outre-mer régies par l'article 74 de la constitution
|
||||
|
||||
#### Livre IV : Saint-Pierre-et-Miquelon
|
||||
|
||||
##### Titre Ier : Dispositions générales
|
||||
|
||||
###### Chapitre IV : Compétences
|
||||
|
||||
####### Article LO6414-1 | LEGIARTI000006394300
|
||||
|
||||
I. – La collectivité exerce les compétences dévolues par les lois et
|
||||
règlements en vigueur aux départements et aux régions, à l'exception de celles
|
||||
relatives :
|
||||
|
||||
1° A la construction et à l'entretien général et technique ainsi qu'au
|
||||
fonctionnement des collèges et des lycées, à l'accueil, à la restauration et à
|
||||
l'hébergement dans ces établissements, au recrutement et à la gestion des
|
||||
personnels techniciens et ouvriers de service exerçant ces missions dans les
|
||||
collèges et les lycées ;
|
||||
|
||||
2° A la construction, à l'aménagement, à l'entretien et à la gestion de la
|
||||
voirie classée en route nationale ;
|
||||
|
||||
3° A la lutte contre les maladies vectorielles ;
|
||||
|
||||
4° A la police de la circulation sur le domaine de la collectivité ;
|
||||
|
||||
5° Aux bibliothèques régionales et bibliothèques de prêt départementales ;
|
||||
|
||||
6° Au financement des moyens des services d'incendie et de secours.
|
||||
|
||||
II. – La collectivité fixe les règles applicables dans les matières suivantes
|
||||
:
|
||||
|
||||
1° Impôts, droits et taxes ; cadastre ;
|
||||
|
||||
```catala
|
||||
# Ceci signifie que la collectivité de Saint-Pierre-et-Miquelon fixe les
|
||||
# règles d'imposition des aides au logement. En l'occurrence, elle choisit
|
||||
# de ne pas l'imposer avec un équivalent de la CRDS. Information confirmée par
|
||||
# mail de DGALN/DHUP/FE4 du 21/04/2023: "J’attire toutefois votre attention
|
||||
# sur le fait que la CRDS ne s’applique pas à Saint-Pierre-et-Miquelon."
|
||||
# En ce qui concerne Saint-Barthélémy et Saint-Martin, les collectivités
|
||||
# exercent une compétence en matière d’impôts (respectivement article LO 6214-3
|
||||
# du CGCT I° 1 et article LO 6314-3 du CGCT I° 1) “sans préjudice des règles
|
||||
# fixées par l’Etat, pour Saint-Barthélemy, en matière de cotisations sociales
|
||||
# et des autres prélèvements destinés au financement de la protection sociale et
|
||||
# à l’amortissement de la dette sociale.” (respectivement article LO 6214-4 du
|
||||
# CGCT III et article LO 6314-4 du CGCT III). La CRDS s’applique donc bien à
|
||||
# Saint-Martin et Saint-Barthélémy, pas besoin de coder d'exception pour ces
|
||||
# territoires.
|
||||
champ d'application ContributionsSocialesAidesPersonnelleLogement:
|
||||
exception définition montant de aide_finale sous condition
|
||||
date_courante >= |2007-02-22| et
|
||||
lieu sous forme SaintPierreEtMiquelon
|
||||
conséquence égal à 0 €
|
||||
```
|
||||
|
||||
2° Régime douanier, à l'exclusion des prohibitions à l'importation et à
|
||||
l'exportation qui relèvent de l'ordre public et des engagements internationaux
|
||||
de la France et des règles relatives à la recherche, à la constatation des
|
||||
infractions pénales et à la procédure contentieuse ;
|
||||
|
||||
3° Urbanisme ; construction ; habitation ; logement ;
|
||||
|
||||
4° Création et organisation des services et des établissements publics de la
|
||||
collectivité.
|
||||
|
||||
Par dérogation au 3°, les autorités de l'Etat délivrent, dans le cadre de la
|
||||
réglementation applicable à Saint-Pierre-et-Miquelon et après avis du conseil
|
||||
exécutif, les autorisations ou actes relatifs à l'utilisation et à
|
||||
l'occupation du sol concernant les constructions, installations ou travaux
|
||||
réalisés pour le compte de l'Etat et ses établissements publics.
|
||||
|
||||
III. – Dans les conditions prévues à l'article LO 6461-3 , la collectivité peut
|
||||
édicter des peines contraventionnelles destinées à réprimer les infractions
|
||||
pénales aux règles qu'elle édicte dans les matières mentionnées au II.
|
||||
|
||||
IV. – Dans les conditions prévues à l'article LO 6461-5 , la collectivité peut
|
||||
adapter les lois et règlements en vigueur localement.
|
||||
|
||||
V. – 1. Une convention entre l'Etat et la collectivité détermine, aux fins
|
||||
notamment d'éviter les doubles impositions et de prévenir l'évasion fiscale,
|
||||
les obligations de la collectivité en matière de communication d'informations
|
||||
à des fins fiscales. La collectivité transmet à l'Etat toute information utile
|
||||
pour l'application de sa réglementation relative aux impôts, droits et taxes,
|
||||
ainsi que pour l'exécution des clauses d'échange de renseignements prévues par
|
||||
les conventions fiscales conclues par la France avec d'autres Etats ou
|
||||
territoires.
|
||||
|
||||
2. Sans préjudice de l'exercice par la collectivité de sa compétence en
|
||||
matière d'impôts, droits et taxes, l'Etat peut instituer des taxes
|
||||
destinées à être perçues à l'occasion de l'exercice des missions d'intérêt
|
||||
général qui lui incombent dans le cadre de ses compétences.
|
||||
|
||||
Une convention conclue entre l'Etat et la collectivité précise les modalités
|
||||
d'application du présent 2 afin de déterminer les modalités de recouvrement et
|
||||
de gestion des recettes destinées au financement de la sécurité aérienne.
|
||||
|
||||
VI. – La réglementation particulière à Saint-Pierre-et-Miquelon relative au
|
||||
contrôle sanitaire, vétérinaire et phytosanitaire et au fonctionnement des
|
||||
stations de quarantaine animale ne peut être modifiée qu'après avis du conseil
|
||||
territorial.
|
||||
|
@ -702,7 +702,7 @@ des conventions régies par le chapitre III du titre V du livre III ;
|
||||
|
||||
```catala
|
||||
champ d'application ÉligibilitéAidePersonnaliséeLogement:
|
||||
étiquette l831_1_alinea_5
|
||||
étiquette logement_foyer
|
||||
règle condition_logement_bailleur sous condition
|
||||
selon ménage.logement.mode_occupation sous forme
|
||||
-- RésidentLogementFoyer de location:
|
||||
@ -927,9 +927,6 @@ champ d'application ÉligibilitéAllocationLogement:
|
||||
-- date_de_naissance: enfant.date_de_naissance
|
||||
-- a_déjà_ouvert_droit_aux_allocations_familiales:
|
||||
enfant.a_déjà_ouvert_droit_aux_allocations_familiales
|
||||
-- bénéficie_titre_personnel_aide_personnelle_logement:
|
||||
enfant.
|
||||
bénéficie_titre_personnel_aide_personnelle_logement
|
||||
}))
|
||||
= 1
|
||||
conséquence rempli
|
||||
@ -954,9 +951,6 @@ champ d'application ÉligibilitéAllocationLogement:
|
||||
-- date_de_naissance: enfant.date_de_naissance
|
||||
-- a_déjà_ouvert_droit_aux_allocations_familiales:
|
||||
enfant.a_déjà_ouvert_droit_aux_allocations_familiales
|
||||
-- bénéficie_titre_personnel_aide_personnelle_logement:
|
||||
enfant.
|
||||
bénéficie_titre_personnel_aide_personnelle_logement
|
||||
})))
|
||||
= 0
|
||||
et
|
||||
@ -1142,7 +1136,6 @@ soins de longue durée mentionnés au 3° de l'article L. 162-22 du code de la s
|
||||
|
||||
```catala
|
||||
champ d'application ÉligibilitéAllocationLogement:
|
||||
exception accession_propriété
|
||||
# Nous considérons que L841-3 est une exception à L841-4 et non pas à
|
||||
# L841-2 (cas de base) car si L841-3 et L84164 étaient tous deux exceptions
|
||||
# de L841-2, alors il pourrait y avoir conflit entre ces deux exceptions.
|
||||
@ -1151,6 +1144,17 @@ champ d'application ÉligibilitéAllocationLogement:
|
||||
# de soin longue durée avec un prêt aidé par l'État.
|
||||
# Donc ici plutôt que d'écrire un invariant qui exclut ce cas de figure,
|
||||
# on préfère hiérarchiser entre elles les exceptions pour lever le conflit.
|
||||
# Idem avec l'exception prévue par L861-8. Nous écrivons donc l'assertion
|
||||
# ci-dessous pour matérialiser l'impossibilité de se retrouver dans ces
|
||||
# situations.
|
||||
assertion non (
|
||||
demandeur.personne_hébergée_centre_soin_l_L162_22_3_sécurité_sociale et
|
||||
(ménage.logement.mode_occupation sous forme
|
||||
AccessionPropriétéLocalUsageExclusifHabitation ou
|
||||
demandeur.
|
||||
magistrat_fonctionnaire_centre_intérêts_matériels_familiaux_hors_mayotte))
|
||||
|
||||
exception base
|
||||
définition éligibilité état l841_2 sous condition
|
||||
demandeur.personne_hébergée_centre_soin_l_L162_22_3_sécurité_sociale
|
||||
conséquence égal à
|
||||
@ -1388,7 +1392,7 @@ champ d'application ÉligibilitéAidePersonnaliséeLogement sous condition
|
||||
-- LaRéunion: vrai
|
||||
-- Mayotte: vrai
|
||||
-- n'importe quel: faux):
|
||||
exception l831_1_alinea_5
|
||||
étiquette logement_foyer
|
||||
règle condition_logement_bailleur sous condition
|
||||
selon ménage.logement.mode_occupation sous forme
|
||||
-- RésidentLogementFoyer de location:
|
||||
@ -1419,9 +1423,9 @@ champ d'application ÉligibilitéAllocationLogement sous condition
|
||||
-- Mayotte: vrai
|
||||
-- n'importe quel: faux):
|
||||
|
||||
règle l_841_1_1_applicable non rempli
|
||||
règle l_841_1_2_applicable non rempli
|
||||
règle l_841_1_6_applicable non rempli
|
||||
exception règle l_841_1_1_applicable non rempli
|
||||
exception règle l_841_1_2_applicable non rempli
|
||||
exception règle l_841_1_6_applicable non rempli
|
||||
# Nous désactivons seulement les 1°, 2° et 6° sans faire la renumérotation
|
||||
# qui semble ne concerner que les b) et c) suivants (à prendre en compte
|
||||
# dans le code correspondant).
|
||||
@ -1469,9 +1473,6 @@ champ d'application ÉligibilitéAllocationLogement sous condition
|
||||
-- date_de_naissance: enfant.date_de_naissance
|
||||
-- a_déjà_ouvert_droit_aux_allocations_familiales:
|
||||
enfant.a_déjà_ouvert_droit_aux_allocations_familiales
|
||||
-- bénéficie_titre_personnel_aide_personnelle_logement:
|
||||
enfant.
|
||||
bénéficie_titre_personnel_aide_personnelle_logement
|
||||
}))
|
||||
>= 1
|
||||
conséquence rempli
|
||||
@ -1480,7 +1481,7 @@ champ d'application ÉligibilitéAllocationLogement sous condition
|
||||
" 5° Aux personnes mentionnées aux articles L. 781-8 et L. 781-46 du code rural
|
||||
et de la pêche maritime ;
|
||||
|
||||
```catala
|
||||
```catala règle l_841_1_6_applicable
|
||||
# Les personnes mentionnées aux articles L. 781-8 et L. 781-46 du code rural
|
||||
# et de la pêche maritime sont les non-salariés agricoles.
|
||||
champ d'application ÉligibilitéAllocationLogement sous condition
|
||||
@ -1726,9 +1727,9 @@ champ d'application ÉligibilitéAllocationLogement sous condition
|
||||
-- SaintMartin: vrai
|
||||
-- n'importe quel: faux):
|
||||
|
||||
règle l_841_1_1_applicable non rempli
|
||||
règle l_841_1_2_applicable non rempli
|
||||
règle l_841_1_6_applicable non rempli
|
||||
exception règle l_841_1_1_applicable non rempli
|
||||
exception règle l_841_1_2_applicable non rempli
|
||||
exception règle l_841_1_6_applicable non rempli
|
||||
# Nous désactivons seulement les 1°, 2° et 6° sans faire la renumérotation
|
||||
# qui semble ne concerner que les b) et c) suivants (à prendre en compte
|
||||
# dans le code correspondant).
|
||||
@ -1761,9 +1762,6 @@ champ d'application ÉligibilitéAllocationLogement sous condition
|
||||
-- date_de_naissance: enfant.date_de_naissance
|
||||
-- a_déjà_ouvert_droit_aux_allocations_familiales:
|
||||
enfant.a_déjà_ouvert_droit_aux_allocations_familiales
|
||||
-- bénéficie_titre_personnel_aide_personnelle_logement:
|
||||
enfant.
|
||||
bénéficie_titre_personnel_aide_personnelle_logement
|
||||
}))
|
||||
>= 1
|
||||
conséquence rempli
|
||||
|
@ -1143,9 +1143,6 @@ champ d'application ÉligibilitéAidesPersonnelleLogement:
|
||||
-- date_de_naissance: enfant.date_de_naissance
|
||||
-- a_déjà_ouvert_droit_aux_allocations_familiales:
|
||||
enfant.a_déjà_ouvert_droit_aux_allocations_familiales
|
||||
-- bénéficie_titre_personnel_aide_personnelle_logement:
|
||||
enfant.
|
||||
bénéficie_titre_personnel_aide_personnelle_logement
|
||||
}
|
||||
-- AutrePersonneÀCharge de parent: faux
|
||||
conséquence rempli
|
||||
@ -1479,7 +1476,10 @@ champ d'application CalculAidePersonnaliséeLogement:
|
||||
résultat de CalculAidePersonnaliséeLogementFoyer avec {
|
||||
-- ressources_ménage_arrondies: ressources_ménage
|
||||
-- nombre_personnes_à_charge: nombre_personnes_à_charge
|
||||
-- logement_foyer_jeunes_travailleurs:
|
||||
logement_foyer_.logement_foyer_jeunes_travailleurs
|
||||
-- zone: zone
|
||||
-- résidence: résidence
|
||||
-- date_courante: date_courante
|
||||
-- situation_familiale_calcul_apl: situation_familiale_calcul_apl
|
||||
-- redevance: logement_foyer_.redevance
|
||||
@ -1512,6 +1512,7 @@ champ d'application CalculAidePersonnaliséeLogement:
|
||||
-- situation_r822_11_13_17: propriétaire.situation_r822_11_13_17
|
||||
-- type_prêt: propriétaire.prêt.type_prêt
|
||||
-- ancienneté_logement: propriétaire.ancienneté_logement
|
||||
-- résidence: résidence
|
||||
}
|
||||
dans Traitement_formule_aide_finale {
|
||||
-- aide_finale_formule:
|
||||
@ -1569,6 +1570,8 @@ champ d'application CalculAllocationLogement:
|
||||
-- zone: zone
|
||||
-- date_courante: date_courante
|
||||
-- situation_familiale_calcul_apl: situation_familiale_calcul_apl
|
||||
-- logement_foyer_jeunes_travailleurs:
|
||||
logement_foyer_.logement_foyer_jeunes_travailleurs
|
||||
-- redevance: logement_foyer_.redevance
|
||||
-- catégorie_équivalence_loyer_d842_16:
|
||||
logement_foyer_.catégorie_équivalence_loyer_d842_16
|
||||
@ -3154,7 +3157,7 @@ champ d'application CalculAidePersonnaliséeLogementAccessionPropriété:
|
||||
sinon aide_finale
|
||||
```
|
||||
|
||||
####### Article D832-11 | LEGIARTI000038878744
|
||||
####### Article D832-11 | LEGIARTI000047401383
|
||||
|
||||
Le coefficient " K ", mentionné au 2° de l'article D. 832-10, est ainsi calculé selon la formule
|
||||
et les modalités suivantes :
|
||||
@ -3187,31 +3190,9 @@ champ d'application CalculAidePersonnaliséeLogementAccessionPropriété:
|
||||
coefficient_prise_en_charge_d832_10
|
||||
```
|
||||
|
||||
2° " R " représente la limite supérieure de l'intervalle dans lequel se situent les ressources
|
||||
du ménage, appréciées conformément aux dispositions de la section 2 du chapitre II du titre
|
||||
II du présent livre et arrondies à la centaine d'euros supérieure ;
|
||||
|
||||
```catala
|
||||
# Pourquoi nous parle-t-on de limite supérieure d'intervalle ici ?
|
||||
# Il n'y a aucun intervalle de ressources définis à la section 2 du chapitre
|
||||
# II du présent livre. Est-ce que c'est juste redondant avec l'arrondi à la
|
||||
# centaine d'euros supérieure (intervalles de 100 €) ?
|
||||
# Réponse de DGALN/DHUP/FE4 le 25/05/2022:
|
||||
# "L’intervalle correspond bien à l’arrondi de l’assiette ressources à la
|
||||
# centaine d’euros supérieure. La rédaction, issue de la recodification,
|
||||
# est en effet une reprise peut-être maladroite et perfectible de l’ancien
|
||||
# article (avant recodification, abrogé depuis) R. 351-19 qui est plus clair
|
||||
# sur cette notion d’intervalle :
|
||||
# « Le coefficient K, au plus égal à 0,95, est déterminé pour chaque
|
||||
# intervalle de ressources de 100 euros en appliquant la formule suivante :
|
||||
# K = 0,95-R/ CM x N
|
||||
# dans laquelle :
|
||||
# R représente la limite supérieure de l'intervalle dans lequel se situent
|
||||
# les ressources appréciées conformément à l'article R. 351-5 ; […] »
|
||||
# La manière dont nous interprétons cette réponse est la suivante : toutes
|
||||
# ces circonvolutions autour des limites supérieures des tranches reviennent
|
||||
# bien à faire un arrondi à la centaine d'euros supérieure.
|
||||
```
|
||||
2° " R " représente les ressources du ménage, appréciées conformément aux
|
||||
dispositions de la section 2 du chapitre II du titre II du présent livre et
|
||||
arrondies à la centaine d'euros supérieure ;
|
||||
|
||||
3° " cm " est un coefficient multiplicateur fixé par arrêté ;
|
||||
|
||||
@ -3348,51 +3329,21 @@ champ d'application CalculAidePersonnaliséeLogementAccessionPropriété:
|
||||
sinon plafond_signature
|
||||
```
|
||||
|
||||
####### Article D832-15 | LEGIARTI000039621211
|
||||
####### Article D832-15 | LEGIARTI000047401375
|
||||
|
||||
La mensualité minimale " L0 ", mentionnée au 5° de l'article D. 832-10 est calculée :
|
||||
|
||||
1° Pour les logements construits, agrandis, aménagés à partir de locaux non destinés
|
||||
à l'habitation, acquis et améliorés, occupés par leur propriétaire ou par l'accédant
|
||||
titulaire d'un contrat de location-accession, par l'application de pourcentages à des
|
||||
tranches de ressources dont les limites inférieures et supérieures sont multipliées
|
||||
par le nombre de parts " N " défini au 4° de l'article D. 832-11. Ce résultat est
|
||||
divisé par douze. Les pourcentages et les tranches sont fixés par arrêté selon la
|
||||
date de signature du contrat de prêt ou de location-accession. Les ressources sont
|
||||
appréciées selon les modalités prévues à la section 2 du chapitre II du titre II du
|
||||
présent livre et arrondies à la centaine d'euros supérieure. Les pourcentages et le
|
||||
coefficient " N " sont appliqués à la limite supérieure de l'intervalle dans lequel
|
||||
se situent les ressources ;
|
||||
1° Pour les logements construits, agrandis, aménagés à partir de locaux non
|
||||
destinés à l'habitation, acquis et améliorés, occupés par leur propriétaire ou
|
||||
par l'accédant titulaire d'un contrat de location-accession, par l'application
|
||||
de pourcentages à des tranches de ressources, dont les limites inférieures et
|
||||
supérieures initiales sont multipliées par le nombre de parts “ N ” défini au
|
||||
4° de l'article D. 832-11, dans la limite des ressources du ménage “ R ”
|
||||
définies au 2° de l'article D. 832-11. Ce résultat est divisé par douze.
|
||||
Les pourcentages et les limites initiales des tranches sont fixés par arrêté
|
||||
selon la date de signature du contrat de prêt ou de location-accession.
|
||||
|
||||
```catala
|
||||
# Que veut dire la phrase "Les pourcentages
|
||||
# et le coefficient " N " sont appliqués à la limite supérieure de
|
||||
# l'intervalle dans lequel se situent les ressources" ? Parce que pour la
|
||||
# tranche la plus haute il n'y a pas de limite supérieure, donc qu'est-ce
|
||||
# qu'on fait ? Est-ce qu'on prend comme revenu la limite supérieure de
|
||||
# la tranche sauf pour la dernière ? Ambiguité.
|
||||
# Réponse de DGALN/DHUP/FE4 le 25/05/2022:
|
||||
# "Comme pour le D. 832-11, l’intervalle fait référence à l’arrondi de R à la
|
||||
# centaine d’euros supérieure (sinon cela n’aurait effectivement pas de sens
|
||||
# pour la dernière tranche).
|
||||
# La précision de la notion d’intervalle apparaissait dans les articles avant
|
||||
# recodification :
|
||||
# - ex R. 351-21 (pour le D. 832-15)
|
||||
# « […] Le loyer minimum L0 est déterminé pour chaque intervalle de ressources
|
||||
# de 100 euros mentionné à l'article R. 351-19. Les pourcentages et le
|
||||
# coefficient N prévus au premier alinéa du présent article sont appliqués
|
||||
# à la limite supérieure de l'intervalle dans lequel se situent les
|
||||
# ressources appréciées conformément à l'article R. 351-5. »
|
||||
# - ex R. 351-62 (pour le D. 832-26)
|
||||
# « […] L'équivalence de loyer et de charges minima est déterminée pour chaque
|
||||
# intervalle de ressources de 100 euros mentionné à l'article R. 351-61.
|
||||
# Les pourcentages et le coefficient N prévus au premier alinéa du présent
|
||||
# article sont appliqués à la limite supérieure de l'intervalle dans lequel
|
||||
# se situent les ressources appréciées conformément à l'article R. 351-5. »"
|
||||
# La manière dont nous interprétons cette réponse est la suivante : toutes
|
||||
# ces circonvolutions autour des limites supérieures des tranches reviennent
|
||||
# bien à faire un arrondi à la centaine d'euros supérieure.
|
||||
|
||||
champ d'application CalculAidePersonnaliséeLogementAccessionPropriété:
|
||||
définition mensualité_minimale sous condition
|
||||
type_travaux_logement sous forme TravauxPourAcquisitionD832_15_1 ou
|
||||
@ -3572,7 +3523,7 @@ champ d'application CalculAidePersonnaliséeLogementAccessionPropriété:
|
||||
|
||||
Les arrêtés mentionnés dans la présente section sont pris par les ministres chargés du
|
||||
logement, du budget, de la sécurité sociale et de l'agriculture.
|
||||
|
||||
832-26
|
||||
Le zonage géographique est fixé par arrêté des ministres chargés du logement et du budget.
|
||||
|
||||
```catala
|
||||
@ -3601,14 +3552,26 @@ travailleurs migrants et ayant fait l'objet d'une convention, prévue à l'artic
|
||||
signée avant le 1er janvier 1995.
|
||||
|
||||
```catala-metadata
|
||||
# Cette typologie vient restreindre la typologie de logements-foyer permettant
|
||||
# d'ouvrir droit aux aides au logement.
|
||||
déclaration énumération TypeLogementFoyer:
|
||||
-- LogementPersonnesÂgéesOuHandicapées
|
||||
-- RésidenceSociale
|
||||
-- FoyerJeunesTrvailleursOuMigrantsConventionnéL353_2Avant1995
|
||||
-- Autre # TODO juridique: confirmer la présence de ce variant autre
|
||||
# qui correspond aux logement mentionnés au R832-21, bien que
|
||||
# la formulation de R832-20 semble impliquer que seuls les 3
|
||||
# variants du dessus existent.
|
||||
-- FoyerJeunesTravailleursOuMigrantsConventionnéL353_2Avant1995
|
||||
-- Autre
|
||||
|
||||
# Afin de coder cette restriction nous allons définir une exception négative
|
||||
# à "condition_logement_bailleur" dans le champ d'application
|
||||
# "ÉligibilitéAidePersonnaliséeLogement" qui assurera que les logements-foyer
|
||||
# "Autre" soient bien exclus de l'éligibilité à l'APL.
|
||||
champ d'application ÉligibilitéAidePersonnaliséeLogement:
|
||||
exception logement_foyer
|
||||
règle condition_logement_bailleur sous condition
|
||||
selon ménage.logement.mode_occupation sous forme
|
||||
-- RésidentLogementFoyer de logement_foyer:
|
||||
logement_foyer.type sous forme TypeLogementFoyer.Autre
|
||||
-- n'importe quel: faux
|
||||
conséquence non rempli
|
||||
```
|
||||
|
||||
######## Article R832-21 | LEGIARTI000039048891
|
||||
@ -3661,6 +3624,7 @@ remplacée par la convention prévue au III de l'article R. 353-159 .
|
||||
|
||||
```catala
|
||||
champ d'application ÉligibilitéAidePersonnaliséeLogement:
|
||||
étiquette logement_foyer
|
||||
règle condition_logement_bailleur sous condition
|
||||
selon ménage.logement.mode_occupation sous forme
|
||||
-- RésidentLogementFoyer de logement_foyer:
|
||||
@ -3807,7 +3771,7 @@ champ d'application CalculAidePersonnaliséeLogementFoyer:
|
||||
alors 0 € sinon aide_finale
|
||||
```
|
||||
|
||||
######## Article D832-25 | LEGIARTI000038878710
|
||||
######## Article D832-25 | LEGIARTI000047401364
|
||||
|
||||
Le coefficient " K ", défini au 2° de l'article D. 832-24, est calculé selon la formule et
|
||||
les modalités précisées au 1° du présent article.
|
||||
@ -3820,9 +3784,9 @@ selon la formule et les modalités précisées au 2° du présent article.
|
||||
```catala
|
||||
champ d'application CalculAidePersonnaliséeLogementFoyer:
|
||||
définition condition_2_du_832_25 égal à
|
||||
(logement_foyer_jeunes_travailleurs et
|
||||
date_conventionnement >= |1990-09-30|) ou
|
||||
selon type_logement_foyer sous forme
|
||||
-- FoyerJeunesTrvailleursOuMigrantsConventionnéL353_2Avant1995:
|
||||
date_conventionnement >= |1990-09-30|
|
||||
-- RésidenceSociale:
|
||||
date_conventionnement >= |1994-12-31|
|
||||
-- n'importe quel: faux
|
||||
@ -3863,9 +3827,9 @@ champ d'application CalculAidePersonnaliséeLogementFoyer:
|
||||
coefficient_prise_en_charge_d832_25
|
||||
```
|
||||
|
||||
b) " R " représente la limite supérieure de l'intervalle dans lequel se situent les ressources
|
||||
du ménage, appréciées selon les modalités prévues à la section 2 du chapitre II du titre II du
|
||||
présent livre et arrondies à la centaine d'euros supérieure ;
|
||||
b) " R " représente les ressources du ménage, appréciées selon les modalités
|
||||
prévues à la section 2 du chapitre II du titre II du présent livre et arrondies
|
||||
à la centaine d'euros supérieure ;
|
||||
|
||||
c) " r " est un coefficient fixé par arrêté ;
|
||||
|
||||
@ -3915,6 +3879,7 @@ champ d'application CalculAidePersonnaliséeLogementFoyer:
|
||||
situation_familiale_calcul_apl
|
||||
définition calcul_nombre_parts.condition_2_du_832_25 égal à
|
||||
condition_2_du_832_25
|
||||
définition calcul_nombre_parts.date_courante égal à date_courante
|
||||
définition n_nombre_parts_d832_25 égal à
|
||||
calcul_nombre_parts.n_nombre_parts_d832_25
|
||||
|
||||
@ -3957,9 +3922,9 @@ champ d'application CalculAidePersonnaliséeLogementFoyer:
|
||||
coefficient_prise_en_charge_d832_25
|
||||
```
|
||||
|
||||
b) " R " représente la limite supérieure de l'intervalle dans lequel se situent les
|
||||
ressources du ménage, appréciées selon les modalités prévues à la section 2 du
|
||||
chapitre II du titre II du présent livre et arrondies à la centaine d'euros supérieure ;
|
||||
b) " R " représente les ressources du ménage, appréciées selon les modalités
|
||||
prévues à la section 2 du chapitre II du titre II du présent livre et arrondies
|
||||
à la centaine d'euros supérieure ;
|
||||
|
||||
c) " cm " est un coefficient multiplicateur fixé par arrêté ;
|
||||
|
||||
@ -4002,13 +3967,16 @@ champ d'application CalculNombrePartLogementFoyer:
|
||||
sinon 0,0
|
||||
```
|
||||
|
||||
######## Article D832-26 | LEGIARTI000038878708
|
||||
######## Article D832-26 | LEGIARTI000047401357
|
||||
|
||||
L'équivalence de loyer et de charges minimale " E0 ", définie au 4° de l'article D. 832-24 ,
|
||||
est obtenue par application de pourcentages à des tranches de ressources, dont les limites
|
||||
inférieures et supérieures sont multipliées par le nombre de parts " N " défini au e du 1°
|
||||
de l'article D. 832-25. Le résultat est majoré du produit d'un montant forfaitaire par le
|
||||
nombre de parts " N ", le total étant divisé par douze.
|
||||
L'équivalence de loyer et de charges minimale “ E0 ”, définie au 4° de l'article
|
||||
D. 832-24, est obtenue par application de pourcentages à des tranches de
|
||||
ressources, dont les limites inférieures et supérieures initiales sont
|
||||
multipliées par le nombre de parts “ N ” défini au e du 1° de l'article
|
||||
D. 832-25, dans la limite des ressources du ménage “ R ” définies au b du 1°
|
||||
de l'article D. 832-25. Le résultat est majoré du produit d'un montant
|
||||
forfaitaire par le nombre de parts “ N ”, le total étant ensuite divisé
|
||||
par douze.
|
||||
|
||||
```catala
|
||||
# Selon un mail de DGALN/DHUP/FE4 du 19/07/2022, il nest nécessaire pour le
|
||||
@ -4059,11 +4027,14 @@ champ d'application CalculÉquivalenceLoyerMinimale:
|
||||
/ 12,0)
|
||||
```
|
||||
|
||||
Toutefois, pour les logements-foyers de jeunes travailleurs et pour les résidences sociales
|
||||
mentionnés au deuxième alinéa de l'article D. 832-25, " E0 " est obtenue par application de
|
||||
pourcentages à des tranches de ressources dont les limites inférieures et supérieures sont
|
||||
multipliées par le nombre de parts " N " défini au d du 2° de l'article D. 832-25. Le résultat
|
||||
est majoré d'un montant forfaitaire, le total étant alors divisé par douze.
|
||||
Toutefois, pour les logements-foyers de jeunes travailleurs et pour les
|
||||
résidences sociales mentionnés au deuxième alinéa de l'article D. 832-25,
|
||||
“ E0 ” est obtenue par application de pourcentages à des tranches de ressources,
|
||||
dont les limites inférieures et supérieures initiales sont multipliées par le
|
||||
nombre de parts “ N ” défini au d du 2° de l'article D. 832-25, dans la limite
|
||||
des ressources du ménage “ R ” définies au b du 2° de l'article D. 832-25. Le
|
||||
résultat est majoré d'un montant forfaitaire, le total étant ensuite divisé par
|
||||
douze.
|
||||
|
||||
```catala
|
||||
champ d'application CalculÉquivalenceLoyerMinimale:
|
||||
@ -4097,13 +4068,8 @@ champ d'application CalculÉquivalenceLoyerMinimale:
|
||||
/ 12,0)
|
||||
```
|
||||
|
||||
Les pourcentages et le coefficient " N " sont appliqués à la limite supérieure de l'intervalle
|
||||
dans lequel se situent les ressources.
|
||||
|
||||
Les ressources sont appréciées selon les modalités prévues à la section 2 du chapitre II du
|
||||
titre II du présent livre et arrondies à la centaine d'euros supérieure.
|
||||
|
||||
Les pourcentages, les montants forfaitaires et les bornes des tranches sont fixés par arrêté.
|
||||
Les pourcentages, les montants forfaitaires et les limites initiales des
|
||||
tranches sont fixés par arrêté.
|
||||
|
||||
######## Article D832-27 | LEGIARTI000038878706
|
||||
|
||||
@ -4626,7 +4592,7 @@ intéressés ;
|
||||
|
||||
2° Il est fait application à chaque personne ou ménage concerné du coefficient
|
||||
" N " prévu au d du 2° de l'article D. 832-25 et de l'élément " C " prévu au 4°
|
||||
de l'article D. 842-6 correspondant à sa situation familiale.
|
||||
de l'article D. 842-6 correspondant à sa situation familiale.
|
||||
|
||||
Les arrêtés fixant les plafonds de mensualité mentionnés au 3° de l'article
|
||||
D. 842-6 et les montants forfaitaires au titre des charges mentionnées au 4°
|
||||
@ -4848,6 +4814,7 @@ champ d'application CalculAllocationLogementFoyer:
|
||||
définition calcul_nombre_parts.situation_familiale_calcul_apl égal à
|
||||
situation_familiale_calcul_apl
|
||||
définition calcul_nombre_parts.condition_2_du_832_25 égal à vrai
|
||||
définition calcul_nombre_parts.date_courante égal à date_courante
|
||||
|
||||
définition calcul_équivalence_loyer_minimale.n_nombre_parts_d832_25 égal à
|
||||
calcul_nombre_parts.n_nombre_parts_d832_25
|
||||
@ -5512,7 +5479,37 @@ champ d'application ÉligibilitéPrimeDeDéménagement sous condition
|
||||
|
||||
##### Section 2 : Allocations de logement
|
||||
|
||||
###### Article D861-8 | LEGIARTI000038878583
|
||||
###### Article D861-8 | LEGIARTI000047401342
|
||||
|
||||
Pour leur application en Guadeloupe, en Guyane, en Martinique, à La Réunion et à Mayotte :
|
||||
|
||||
1° Les dispositions du troisième alinéa de l'article D. 842-11 et du 1° de l'article
|
||||
D. 842-12 ne sont pas applicables aux opérations de logements évolutifs sociaux ou de
|
||||
logements très sociaux, en accession à la propriété aidée par l'Etat ;
|
||||
|
||||
```catala
|
||||
champ d'application CalculAllocationLogementAccessionPropriété sous condition
|
||||
date_courante >= |2023-04-05|:
|
||||
exception règle condition_d842_11_3 sous condition
|
||||
(selon résidence sous forme
|
||||
-- Guadeloupe: vrai
|
||||
-- Guyane: vrai
|
||||
-- Martinique: vrai
|
||||
-- LaRéunion: vrai
|
||||
-- Mayotte: vrai
|
||||
-- n'importe quel: faux) et
|
||||
opérations_logement_évolutifs_sociaux_accession_propriété_aidée_État
|
||||
conséquence non rempli
|
||||
```
|
||||
|
||||
2° Les arrêtés relatifs aux allocations de logement prévus aux articles D. 842-13 et
|
||||
D. 842-18 sont également pris par le ministre chargé de l'outre-mer ;
|
||||
|
||||
```catala
|
||||
# Rien à coder ici.interne
|
||||
```
|
||||
|
||||
###### Article D861-8 | LEGIARTI000038878583 [archive]
|
||||
|
||||
Pour leur application en Guadeloupe, en Guyane, en Martinique, à La Réunion et à Mayotte :
|
||||
|
||||
@ -5523,7 +5520,8 @@ du 2° de l'article D. 832-25 est limitée à six enfants ;
|
||||
```catala
|
||||
# Ici nous reprenons les chiffres de D832-25, à prendre en compte lorsque
|
||||
# ceux-ci seront modifiés
|
||||
champ d'application CalculNombrePartLogementFoyer:
|
||||
champ d'application CalculNombrePartLogementFoyer sous condition
|
||||
date_courante >= |2019-09-01| et date_courante < |2023-04-05|:
|
||||
exception d832_25_2
|
||||
définition n_nombre_parts_d832_25_majoration sous condition
|
||||
limitation_majoration_personnes_à_charge et
|
||||
@ -5539,7 +5537,8 @@ champ d'application CalculNombrePartLogementFoyer:
|
||||
# dans CalculAidePersonnaliséeLogementFoyer une condition
|
||||
# "limitation_majoration_personnes_à_charge" similaire qui déclenche celle de
|
||||
# CalculNombrePartLogementFoyer. C'est ce que nous faisons ci-dessous.
|
||||
champ d'application CalculAidePersonnaliséeLogementFoyer:
|
||||
champ d'application CalculAidePersonnaliséeLogementFoyer sous condition
|
||||
date_courante >= |2019-09-01| et date_courante < |2023-04-05|:
|
||||
règle
|
||||
calcul_nombre_parts.limitation_majoration_personnes_à_charge
|
||||
sous condition
|
||||
@ -5550,7 +5549,8 @@ champ d'application CalculAidePersonnaliséeLogementFoyer:
|
||||
# CalculAidePersonnaliséeLogementFoyer, nous pouvons taper dedans depuis
|
||||
# CalculAllocationLogementAccessionPropriété à la manière de D842-6.
|
||||
# C'est chose faite ci-dessous.
|
||||
champ d'application CalculAllocationLogementAccessionPropriété:
|
||||
champ d'application CalculAllocationLogementAccessionPropriété sous condition
|
||||
date_courante >= |2019-09-01| et date_courante < |2023-04-05|:
|
||||
règle calcul_apl_logement_foyer.limitation_majoration_personnes_à_charge
|
||||
sous condition
|
||||
selon résidence sous forme
|
||||
@ -5568,17 +5568,18 @@ D. 842-12 ne sont pas applicables aux opérations de logements évolutifs sociau
|
||||
logements très sociaux, en accession à la propriété aidée par l'Etat ;
|
||||
|
||||
```catala
|
||||
champ d'application CalculAllocationLogementAccessionPropriété:
|
||||
exception règle condition_d842_11_3 sous condition
|
||||
(selon résidence sous forme
|
||||
-- Guadeloupe: vrai
|
||||
-- Guyane: vrai
|
||||
-- Martinique: vrai
|
||||
-- LaRéunion: vrai
|
||||
-- Mayotte: vrai
|
||||
-- n'importe quel: faux) et
|
||||
opérations_logement_évolutifs_sociaux_accession_propriété_aidée_État
|
||||
conséquence non rempli
|
||||
champ d'application CalculAllocationLogementAccessionPropriété sous condition
|
||||
date_courante >= |2019-09-01| et date_courante < |2023-04-05|:
|
||||
exception règle condition_d842_11_3 sous condition
|
||||
(selon résidence sous forme
|
||||
-- Guadeloupe: vrai
|
||||
-- Guyane: vrai
|
||||
-- Martinique: vrai
|
||||
-- LaRéunion: vrai
|
||||
-- Mayotte: vrai
|
||||
-- n'importe quel: faux) et
|
||||
opérations_logement_évolutifs_sociaux_accession_propriété_aidée_État
|
||||
conséquence non rempli
|
||||
```
|
||||
|
||||
3° Les arrêtés relatifs aux allocations de logement prévus aux articles D. 842-13 et
|
||||
@ -5593,7 +5594,8 @@ coefficient de prise en charge " K ", la majoration pour personne à charge ment
|
||||
du 2° de l'article D. 832-25 est limitée à six enfants.
|
||||
|
||||
```catala
|
||||
champ d'application CalculAllocationLogementFoyer:
|
||||
champ d'application CalculAllocationLogementFoyer sous condition
|
||||
date_courante >= |2019-09-01| et date_courante < |2023-04-05|:
|
||||
règle calcul_apl_logement_foyer.limitation_majoration_personnes_à_charge
|
||||
sous condition
|
||||
selon résidence sous forme
|
||||
@ -5606,24 +5608,25 @@ champ d'application CalculAllocationLogementFoyer:
|
||||
conséquence rempli
|
||||
```
|
||||
|
||||
###### Article D861-9 | LEGIARTI000038878581
|
||||
###### Article D861-9 | LEGIARTI000047401337
|
||||
|
||||
L'âge limite pour l'ouverture du droit à l'allocation de logement sociale prévu par les
|
||||
dispositions du dernier alinéa de l'article L. 861-6 est fixé à vingt-deux ans.
|
||||
L'âge limite pour l'ouverture du droit à l'allocation de logement familiale
|
||||
prévu par les dispositions du dernier alinéa du 1° de l'article L. 861-6 est
|
||||
fixé à vingt-deux ans.
|
||||
|
||||
```catala
|
||||
# Le dernier alinéa de L861-6 introduit une restriction supplémentaire pour
|
||||
# la prise en compte des enfants à charge : après l'obligation scolaire,
|
||||
# les enfants sont considérés comme à charge jusqu'à un certain âge et
|
||||
# s'ils suivent des études ou assimilé. L'âge limite après obligation scolaire
|
||||
# existe déjà en Métropole, il est prévu par L512-3 du CCS mais ici on le
|
||||
# redéfini pour être à 22 ans, sachant qu'il est déjà redéfini pour être à 21
|
||||
# ans par R823-4 CCH. Petite subtilité supplémentaire: ici le D861-9 nous
|
||||
# dit que cette âge limite de 22 ans ne s'applique que pour l'allocation
|
||||
# logement alors que R823-4 est une disposition commune à l'AL et à l'APL.
|
||||
# Or dans les DROM il n'y a pas d'APL, seulement l'AL, donc ici nous pouvons
|
||||
# modifier directement l'éligibilité commune aux AL et aux APL pour éviter
|
||||
# du code compliqué qui ne s'appliquerait qu'aux AL.
|
||||
# Le dernier alinéa du 1° de L861-6 introduit une restriction supplémentaire
|
||||
# pour la prise en compte des enfants à charge : après l'obligation scolaire,
|
||||
# les enfants sont considérés comme à charge jusqu'à un certain âge et s'ils
|
||||
# suivent des études ou assimilé. L'âge limite après obligation scolaire existe
|
||||
# déjà en Métropole, il est prévu par L512-3 du CCS mais ici on le redéfini pour
|
||||
# être à 22 ans, sachant qu'il est déjà redéfini pour être à 21 ans par R823-4
|
||||
# CCH. Petite subtilité supplémentaire: ici le D861-9 nous dit que cette âge
|
||||
# limite de 22 ans ne s'applique que pour l'allocation logement alors que R823-4
|
||||
# est une disposition commune à l'AL et à l'APL. Or dans les DROM il n'y a pas
|
||||
# d'APL, seulement l'AL, donc ici nous pouvons modifier directement
|
||||
# l'éligibilité commune aux AL et aux APL pour éviter du code compliqué qui ne
|
||||
# s'appliquerait qu'aux AL.
|
||||
champ d'application ÉligibilitéAidesPersonnelleLogement:
|
||||
exception définition prestations_familiales.âge_l512_3_2 sous condition
|
||||
(selon ménage.résidence sous forme
|
||||
@ -5668,6 +5671,117 @@ sont pas applicables à Mayotte.
|
||||
# au logement donc nous le considérons hors du champ de notre calculette.
|
||||
```
|
||||
|
||||
##### Section 3 : Aide personnalisée au logement dans les logements-foyers
|
||||
|
||||
###### Article R861-20 | LEGIARTI000047398875
|
||||
|
||||
Pour leur application en Guadeloupe, en Guyane, en Martinique, à La Réunion et
|
||||
à Mayotte :
|
||||
|
||||
1° A l'article R. 832-20, le 3° n'est pas applicable ;
|
||||
|
||||
```catala
|
||||
# Le 3° de l'article R832-20 concerne les logements-foyers accueillant, à titre
|
||||
# principal, des jeunes travailleurs ou des travailleurs migrants et ayant fait
|
||||
# l'objet d'une convention, prévue à l'article L. 353-2, signée avant le 1er
|
||||
# janvier 1995. On vient donc raffiner la condition d'exclusion de
|
||||
# "condition_logement_bailleur".
|
||||
champ d'application ÉligibilitéAidePersonnaliséeLogement sous condition
|
||||
date_courante >= |2023-04-05| et selon ménage.résidence sous forme
|
||||
-- Guadeloupe: vrai
|
||||
-- Guyane: vrai
|
||||
-- Martinique: vrai
|
||||
-- LaRéunion: vrai
|
||||
-- Mayotte: vrai
|
||||
-- n'importe quel: faux:
|
||||
exception logement_foyer
|
||||
règle condition_logement_bailleur sous condition
|
||||
selon ménage.logement.mode_occupation sous forme
|
||||
-- RésidentLogementFoyer de logement_foyer:
|
||||
logement_foyer.type sous forme
|
||||
FoyerJeunesTravailleursOuMigrantsConventionnéL353_2Avant1995
|
||||
-- n'importe quel: faux
|
||||
conséquence non rempli
|
||||
```
|
||||
|
||||
2° L'article R. 832-21 est remplacé par les dispositions suivantes :
|
||||
|
||||
“ Art. R. 832-21.-Pour l'application du 5° de l'article L. 831-1, les
|
||||
logements-foyers doivent répondre aux conditions de décence définies au
|
||||
premier alinéa de l'article 6 de la loi n° 89-462 du 6 juillet 1989 et
|
||||
respecter l'une des conditions suivantes :
|
||||
|
||||
“ 1° Pour les logements-foyers mis en service avant le 1er janvier 2023,
|
||||
appartenir à l'une des personnes morales mentionnées à l'article R. 372-3 ;
|
||||
|
||||
“ 2° Pour les logements-foyers mis en service après le 1er janvier 2023,
|
||||
bénéficier de l'un des modes de financement suivants :
|
||||
|
||||
“ a) Subventions et prêts mentionnés au chapitre II du titre VII du livre III
|
||||
ou à la section 2 du chapitre III du titre II du livre III ;
|
||||
|
||||
“ b) Subventions accordées sur le budget du ministère chargé de la santé ou de
|
||||
la caisse nationale de solidarité pour l'autonomie représentant au moins 20 %
|
||||
du coût de la construction ou du coût des travaux d'amélioration pouvant faire
|
||||
l'objet d'une subvention ou du coût de l'opération d'acquisition-amélioration.
|
||||
” ;
|
||||
|
||||
```catala
|
||||
# On avait fusionné toutes les conditions de R823-21 dans le booléen
|
||||
# "remplit_conditions_r832_21" donc on peut le garder. Il suffit juste de
|
||||
# préciser dans le formulaire que les conditions de R823-21 sont différentes
|
||||
# pour l'outre-mer.
|
||||
```
|
||||
|
||||
3° A l'article R. 832-23, les mots : “ mentionné aux 2° et 3° de l'article R.
|
||||
832-20 ” sont remplacés par les mots : “ mentionné au 2° de l'article R.
|
||||
832-20. ”
|
||||
|
||||
```catala
|
||||
# On ne cherche pas à coder pour l'instant le calcul du calendrier d'ouverture
|
||||
# des droits dans les différentes situations.
|
||||
```
|
||||
|
||||
|
||||
###### Article D861-21 | LEGIARTI000047399895
|
||||
|
||||
Pour leur application en Guadeloupe, en Guyane, en Martinique, à La Réunion et
|
||||
à Mayotte :
|
||||
|
||||
1° A l'article D. 832-25, le deuxième alinéa et le 2° ne sont pas applicables ;
|
||||
|
||||
```catala
|
||||
champ d'application CalculAidePersonnaliséeLogementFoyer sous condition
|
||||
date_courante >= |2023-04-05| et selon résidence sous forme
|
||||
-- Guadeloupe: vrai
|
||||
-- Guyane: vrai
|
||||
-- Martinique: vrai
|
||||
-- LaRéunion: vrai
|
||||
-- Mayotte: vrai
|
||||
-- n'importe quel: faux:
|
||||
exception définition condition_2_du_832_25 égal à
|
||||
faux
|
||||
```
|
||||
|
||||
2° A l'article D. 832-26, le deuxième alinéa n'est pas applicable ;
|
||||
|
||||
```catala
|
||||
# Le deuxième alinéa de D832-26 est aussi gouverné par le booléen
|
||||
# "condition_2_du_832_25" que nous avons défini au dessus.
|
||||
```
|
||||
|
||||
3° A l'article D. 832-27, les mots : “ selon le type de logements-foyers ”
|
||||
sont supprimés ;
|
||||
|
||||
```catala
|
||||
# Adaptation du phrasé aux règles locales mais ne porte pas conséquence
|
||||
# au calcul.
|
||||
```
|
||||
|
||||
4° A l'article D. 832-28, les mots : “ de l'agriculture ” sont remplacés par
|
||||
les mots : “ de l'outre-mer ”.
|
||||
|
||||
|
||||
#### Chapitre II : Saint-Barthélemy et Saint-Martin
|
||||
|
||||
###### Article R862-1 | LEGIARTI000038878573
|
||||
@ -5892,7 +6006,38 @@ Saint-Barthélemy et à Saint-Martin.
|
||||
|
||||
##### Section III : Allocations de logement
|
||||
|
||||
###### Article D862-7 | LEGIARTI000038878555
|
||||
###### Article D862-7 | LEGIARTI000047401319
|
||||
|
||||
Pour leur application à Saint-Barthélemy et à Saint-Martin :
|
||||
|
||||
1° A l'article D. 842-4 , les mots : " en application de l'article L. 522-1 " sont remplacés
|
||||
par les mots : " en application de la réglementation applicable localement " ;
|
||||
|
||||
```catala
|
||||
# Fait la correspondance avec le droit local mais ne change pas le calcul, on ne
|
||||
# code donc rien ici.
|
||||
```
|
||||
|
||||
2° Les dispositions du troisième alinéa de l'article D. 842-11 et du 1° de l'article
|
||||
D. 842-12 ne sont pas applicables aux opérations de logements évolutifs sociaux ou de
|
||||
logements très sociaux, en accession à la propriété aidée par l'Etat ;
|
||||
|
||||
```catala
|
||||
champ d'application CalculAllocationLogementAccessionPropriété sous condition
|
||||
date_courante >= |2023-04-05|:
|
||||
exception règle condition_d842_11_3 sous condition
|
||||
(selon résidence sous forme
|
||||
-- SaintBarthélemy: vrai
|
||||
-- SaintMartin: vrai
|
||||
-- n'importe quel: faux) et
|
||||
opérations_logement_évolutifs_sociaux_accession_propriété_aidée_État
|
||||
conséquence non rempli
|
||||
```
|
||||
|
||||
3° Les arrêtés relatifs aux allocations de logement prévus aux articles D. 842-13 et
|
||||
D. 842-18 sont également pris par le ministre chargé de l'outre-mer.
|
||||
|
||||
###### Article D862-7 | LEGIARTI000038878555 [archive]
|
||||
|
||||
Pour leur application à Saint-Barthélemy et à Saint-Martin :
|
||||
|
||||
@ -5910,7 +6055,8 @@ au d du 2° de l'article D. 832-25 est limitée à six enfants ;
|
||||
|
||||
```catala
|
||||
# Dispositif déjà codé dans D861-8, ici on l'active succintement.
|
||||
champ d'application CalculAllocationLogementAccessionPropriété:
|
||||
champ d'application CalculAllocationLogementAccessionPropriété sous condition
|
||||
date_courante >= |2019-09-01| et date_courante < |2023-04-05|:
|
||||
règle calcul_apl_logement_foyer.limitation_majoration_personnes_à_charge
|
||||
sous condition
|
||||
selon résidence sous forme
|
||||
@ -5925,19 +6071,21 @@ D. 842-12 ne sont pas applicables aux opérations de logements évolutifs sociau
|
||||
logements très sociaux, en accession à la propriété aidée par l'Etat ;
|
||||
|
||||
```catala
|
||||
champ d'application CalculAllocationLogementAccessionPropriété:
|
||||
exception règle condition_d842_11_3 sous condition
|
||||
(selon résidence sous forme
|
||||
-- SaintBarthélemy: vrai
|
||||
-- SaintMartin: vrai
|
||||
-- n'importe quel: faux) et
|
||||
opérations_logement_évolutifs_sociaux_accession_propriété_aidée_État
|
||||
conséquence non rempli
|
||||
champ d'application CalculAllocationLogementAccessionPropriété sous condition
|
||||
date_courante >= |2019-09-01| et date_courante < |2023-04-05|:
|
||||
exception règle condition_d842_11_3 sous condition
|
||||
(selon résidence sous forme
|
||||
-- SaintBarthélemy: vrai
|
||||
-- SaintMartin: vrai
|
||||
-- n'importe quel: faux) et
|
||||
opérations_logement_évolutifs_sociaux_accession_propriété_aidée_État
|
||||
conséquence non rempli
|
||||
```
|
||||
|
||||
4° Les arrêtés relatifs aux allocations de logement prévus aux articles D. 842-13 et
|
||||
D. 842-18 sont également pris par le ministre chargé de l'outre-mer.
|
||||
|
||||
|
||||
###### Article R862-8 | LEGIARTI000038878553
|
||||
|
||||
Pour leur application à Saint-Barthélemy et à Saint-Martin :
|
||||
@ -6361,7 +6509,9 @@ D. 823-19 et par les règles particulières figurant aux articles D. 842-1 à D.
|
||||
champ d'application CalculAllocationLogement sous condition
|
||||
résidence sous forme SaintPierreEtMiquelon:
|
||||
|
||||
exception définition sous_calcul_traitement égal à
|
||||
exception définition sous_calcul_traitement sous condition
|
||||
catégorie_calcul_apl sous forme LogementFoyer
|
||||
conséquence égal à
|
||||
selon catégorie_calcul_apl sous forme
|
||||
-- LogementFoyer de logement_foyer_:
|
||||
(soit traitement_formule égal à
|
||||
@ -6376,14 +6526,15 @@ champ d'application CalculAllocationLogement sous condition
|
||||
-- loyer_principal: logement_foyer_.redevance
|
||||
-- bénéficiaire_aide_adulte_ou_enfant_handicapés:
|
||||
logement_foyer_.bénéficiaire_aide_adulte_ou_enfant_handicapés
|
||||
# TODO juridique: est-ce qu'on applique le barème spécial chambre
|
||||
# Est-ce qu'on applique le barème spécial chambre
|
||||
# systématiquement pour les personnes résidant en logement-foyer
|
||||
# à Saint-Pierre-et-Miquelon ?
|
||||
-- logement_est_chambre: vrai
|
||||
# TODO juridique: examiner si dans ce cas on considère qu'une personne
|
||||
# habitant en logement-foyer n'est pas en colocation au sens du
|
||||
# secteur locatif.
|
||||
-- colocation: faux
|
||||
# à Saint-Pierre-et-Miquelon ou éventuellement ?
|
||||
# Réponse de DGALN/DHUP/FE4: "Oui, ces barèmes s’appliquent au sein
|
||||
# d’éventuelles colocations ou chambres dans ces logements foyers sur
|
||||
# le territoire de la collectivité territoriale de
|
||||
# Saint-Pierre-et-Miquelon."
|
||||
-- logement_est_chambre: logement_foyer_.logement_est_chambre
|
||||
-- colocation: logement_foyer_.colocation
|
||||
# Ce cas prévu à l'article 8 de l'arrêté du 27 septembre 2019 n'est
|
||||
# pas possible pour un hébergement en logement-foyer.
|
||||
-- âgées_ou_handicap_adultes_hébergées_onéreux_particuliers: faux
|
||||
@ -6415,7 +6566,7 @@ champ d'application CalculAllocationLogement sous condition
|
||||
}
|
||||
|
||||
déclaration traitement_nul_tout_le_temps contenu argent
|
||||
dépend de aide_finale contenu argent égal à 0 €
|
||||
dépend de aide_finale contenu argent égal à 0€
|
||||
```
|
||||
|
||||
2° Au 5° de l'article D. 823-17, les mots : “ en fonction de l'évolution de l'indice des
|
||||
|
@ -116,6 +116,7 @@ déclaration structure TrancheRevenuDécimal:
|
||||
|
||||
déclaration structure LogementFoyer:
|
||||
donnée type contenu TypeLogementFoyer
|
||||
donnée logement_foyer_jeunes_travailleurs contenu booléen
|
||||
donnée remplit_conditions_r832_21 contenu booléen
|
||||
donnée conventionné_livre_III_titre_V_chap_III contenu booléen
|
||||
donnée conventionné_selon_règles_drom contenu booléen
|
||||
@ -126,6 +127,8 @@ déclaration structure LogementFoyer:
|
||||
CatégorieÉquivalenceLoyerAllocationLogementFoyer
|
||||
donnée bénéficiaire_aide_adulte_ou_enfant_handicapés contenu booléen
|
||||
donnée logement_meublé_d842_2 contenu booléen
|
||||
donnée logement_est_chambre contenu booléen
|
||||
donnée colocation contenu booléen
|
||||
|
||||
```
|
||||
|
||||
@ -177,8 +180,6 @@ déclaration énumération SituationGardeAlternée:
|
||||
déclaration structure EnfantÀCharge:
|
||||
donnée identifiant contenu entier
|
||||
donnée nationalité contenu Nationalité
|
||||
donnée bénéficie_titre_personnel_aide_personnelle_logement
|
||||
contenu booléen
|
||||
donnée a_déjà_ouvert_droit_aux_allocations_familiales contenu booléen
|
||||
donnée date_de_naissance contenu date
|
||||
donnée rémuneration_mensuelle contenu argent
|
||||
@ -246,6 +247,18 @@ déclaration énumération Nationalité:
|
||||
-- Française
|
||||
-- Étrangère contenu ConditionsÉtrangers
|
||||
|
||||
# La répartition des communes par zones est donnée par l'arrêté du 17 mars
|
||||
# 1978 relatif au classement des communes par zones géographiques et
|
||||
# l'article 6 de l'arrêté du 5 mai 1995 relatif aux subventions de
|
||||
# l'Etat et aux prêts pour la construction, l'acquisition et
|
||||
# l'amélioration des logements locatifs aidés. Toutefois le phrasé de ces
|
||||
# articles laisse subsister une source d'incertitude quant au zonage de la
|
||||
# Guyane qui est un département d'outre mer mais qui n'est pas une île non
|
||||
# reliée au continent. D'après un mail du 21/04/2023 de DGALN/DHUP/FE4,
|
||||
# "La Guyane est bien comprise en zone II. Les territoires qui composent la zone
|
||||
# II doivent être entendus comme l’ensemble de ceux listés, auxquels s’ajoute la
|
||||
# Guyane puisque le dernier alinéa de l’article 6 exclut strictement les
|
||||
# départements d’outre-mer de la zone III."
|
||||
déclaration énumération ZoneDHabitation:
|
||||
-- Zone1
|
||||
-- Zone2
|
||||
@ -478,6 +491,9 @@ champ d'application ÉligibilitéPrimeDeDéménagement:
|
||||
date_courante
|
||||
définition base_mensuelle_allocations_familiales.date_courante égal à
|
||||
date_courante
|
||||
# Ce programme ne peut pas être utilisé avec des dates trop anciennes,
|
||||
# pour lesquelles les textes en vigueur n'ont pas été formalisés.
|
||||
assertion date_courante >= |2019-10-01|
|
||||
```
|
||||
|
||||
### Calcul des contributions sociales s'appliquant aux aides personnelles au logement
|
||||
@ -485,6 +501,7 @@ champ d'application ÉligibilitéPrimeDeDéménagement:
|
||||
```catala-metadata
|
||||
déclaration champ d'application ContributionsSocialesAidesPersonnelleLogement:
|
||||
entrée date_courante contenu date
|
||||
entrée lieu contenu Collectivité
|
||||
|
||||
interne taux_crds contenu décimal
|
||||
interne exonéré_csg condition
|
||||
@ -557,10 +574,18 @@ déclaration champ d'application CalculAidePersonnaliséeLogementLocatif:
|
||||
état minoration_forfaitaire
|
||||
état contributions_sociales_arrondi
|
||||
état réduction_loyer_solidarité
|
||||
# Mail du 21/04/2023 de DGALN/DHUP/FE4: "Le calcul [de la montée en charge
|
||||
# de Saint-Pierre et Miquelon] s’opère sur le montant final calculé de
|
||||
# l’aide à verser à l’allocataire (qui comprend par exemple la minoration de
|
||||
# 5 euros), comme précisé au 2° de l’article 7 du décret susvisé [n°
|
||||
# 2021-1750 du 21 décembre 2021]. J’attire toutefois votre attention sur le
|
||||
# fait que la CRDS ne s’applique pas à Saint-Pierre-et-Miquelon."
|
||||
état montée_en_charge_saint_pierre_miquelon
|
||||
état montant_minimal
|
||||
|
||||
champ d'application CalculAidePersonnaliséeLogementLocatif:
|
||||
définition contributions_sociales.date_courante égal à date_courante
|
||||
définition contributions_sociales.lieu égal à résidence
|
||||
# Ce programme ne peut pas être utilisé avec des dates trop anciennes,
|
||||
# pour lesquelles les textes en vigueur n'ont pas été formalisés.
|
||||
assertion date_courante >= |2020-10-01|
|
||||
@ -591,6 +616,7 @@ déclaration champ d'application CalculÉquivalenceLoyerMinimale:
|
||||
résultat montant contenu argent
|
||||
|
||||
déclaration champ d'application CalculNombrePartLogementFoyer:
|
||||
entrée date_courante contenu date
|
||||
entrée condition_2_du_832_25 contenu booléen
|
||||
entrée nombre_personnes_à_charge contenu entier
|
||||
entrée situation_familiale_calcul_apl contenu SituationFamilialeCalculAPL
|
||||
@ -603,6 +629,8 @@ déclaration champ d'application CalculNombrePartLogementFoyer:
|
||||
résultat n_nombre_parts_d832_25 contenu décimal
|
||||
|
||||
déclaration champ d'application CalculAidePersonnaliséeLogementFoyer:
|
||||
entrée résidence contenu Collectivité
|
||||
entrée logement_foyer_jeunes_travailleurs contenu booléen
|
||||
entrée type_logement_foyer contenu TypeLogementFoyer
|
||||
entrée date_conventionnement contenu date
|
||||
entrée ressources_ménage_arrondies contenu argent
|
||||
@ -650,6 +678,7 @@ déclaration champ d'application CalculAidePersonnaliséeLogementFoyer:
|
||||
|
||||
champ d'application CalculAidePersonnaliséeLogementFoyer:
|
||||
définition contributions_sociales.date_courante égal à date_courante
|
||||
définition contributions_sociales.lieu égal à résidence
|
||||
définition calcul_équivalence_loyer_minimale.date_courante égal à
|
||||
date_courante
|
||||
# Ce programme ne peut pas être utilisé avec des dates trop anciennes,
|
||||
@ -683,6 +712,7 @@ déclaration champ d'application
|
||||
entrée type_prêt contenu TypePrêt
|
||||
entrée ancienneté_logement contenu NeufOuAncien
|
||||
entrée date_courante contenu date
|
||||
entrée résidence contenu Collectivité
|
||||
|
||||
résultat mensualité_éligible contenu argent
|
||||
résultat mensualité_minimale contenu argent
|
||||
@ -728,6 +758,7 @@ déclaration champ d'application
|
||||
|
||||
champ d'application CalculAidePersonnaliséeLogementAccessionPropriété:
|
||||
définition contributions_sociales.date_courante égal à date_courante
|
||||
définition contributions_sociales.lieu égal à résidence
|
||||
définition calcul_équivalence_loyer_minimale.date_courante égal à
|
||||
date_courante
|
||||
# Ce programme ne peut pas être utilisé avec des dates trop anciennes,
|
||||
@ -804,9 +835,25 @@ déclaration champ d'application CalculAllocationLogementLocatif:
|
||||
calcul_apl_locatif champ d'application CalculAidePersonnaliséeLogementLocatif
|
||||
|
||||
résultat aide_finale_formule contenu argent
|
||||
|
||||
résultat traitement_aide_finale contenu argent
|
||||
dépend de aide_finale contenu argent
|
||||
résultat montant_forfaitaire_charges_d823_16 contenu argent
|
||||
résultat plafond_loyer_d823_16_2 contenu argent
|
||||
résultat participation_minimale contenu argent
|
||||
résultat taux_composition_familiale contenu décimal
|
||||
résultat participation_personnelle contenu argent
|
||||
|
||||
champ d'application CalculAllocationLogementLocatif:
|
||||
définition montant_forfaitaire_charges_d823_16 égal à
|
||||
calcul_apl_locatif.montant_forfaitaire_charges_d823_16
|
||||
définition plafond_loyer_d823_16_2 égal à
|
||||
calcul_apl_locatif.plafond_loyer_d823_16_2
|
||||
définition participation_minimale égal à
|
||||
calcul_apl_locatif.participation_minimale
|
||||
définition taux_composition_familiale égal à
|
||||
calcul_apl_locatif.taux_composition_familiale
|
||||
définition participation_personnelle égal à
|
||||
calcul_apl_locatif.participation_personnelle
|
||||
```
|
||||
|
||||
### Secteur accession à la propriété
|
||||
@ -874,6 +921,13 @@ déclaration champ d'application CalculAllocationLogementAccessionPropriété:
|
||||
état minoration_forfaitaire
|
||||
état dépense_nette_minimale
|
||||
état contributions_sociales_arrondi
|
||||
# Mail du 21/04/2023 de DGALN/DHUP/FE4: "Le calcul [de la montée en charge
|
||||
# de Saint-Pierre et Miquelon] s’opère sur le montant final calculé de
|
||||
# l’aide à verser à l’allocataire (qui comprend par exemple la minoration de
|
||||
# 5 euros), comme précisé au 2° de l’article 7 du décret susvisé [n°
|
||||
# 2021-1750 du 21 décembre 2021]. J’attire toutefois votre attention sur le
|
||||
# fait que la CRDS ne s’applique pas à Saint-Pierre-et-Miquelon."
|
||||
état montée_en_charge_saint_pierre_miquelon
|
||||
état montant_minimal
|
||||
|
||||
champ d'application CalculAllocationLogementAccessionPropriété:
|
||||
@ -883,8 +937,11 @@ champ d'application CalculAllocationLogementAccessionPropriété:
|
||||
# calculer des quantités comme si on était en logement foyer. Or il nous
|
||||
# faut donner un argument au sous-champ d'application donc on met ici une
|
||||
# valeur bidon.
|
||||
définition calcul_apl_logement_foyer.résidence égal à résidence
|
||||
définition calcul_apl_logement_foyer.type_logement_foyer égal à
|
||||
TypeLogementFoyer.Autre # Valeur par défaut
|
||||
TypeLogementFoyer.RésidenceSociale # Valeur par défaut
|
||||
définition calcul_apl_logement_foyer.logement_foyer_jeunes_travailleurs
|
||||
égal à faux # Valeur par défaut
|
||||
définition calcul_apl_logement_foyer.date_conventionnement égal à
|
||||
|1970-01-01| # Valeur par défaut
|
||||
définition calcul_apl_logement_foyer.redevance égal à
|
||||
@ -900,6 +957,7 @@ champ d'application CalculAllocationLogementAccessionPropriété:
|
||||
définition calcul_apl_logement_foyer.date_courante égal à
|
||||
date_courante
|
||||
définition contributions_sociales.date_courante égal à date_courante
|
||||
définition contributions_sociales.lieu égal à résidence
|
||||
définition calcul_équivalence_loyer_minimale.date_courante égal à
|
||||
date_courante
|
||||
# Ce programme ne peut pas être utilisé avec des dates trop anciennes,
|
||||
@ -913,6 +971,7 @@ champ d'application CalculAllocationLogementAccessionPropriété:
|
||||
```catala-metadata
|
||||
déclaration champ d'application CalculAllocationLogementFoyer:
|
||||
entrée type_logement_foyer contenu TypeLogementFoyer
|
||||
entrée logement_foyer_jeunes_travailleurs contenu booléen
|
||||
entrée date_conventionnement contenu date
|
||||
entrée résidence contenu Collectivité
|
||||
entrée redevance contenu argent
|
||||
@ -952,11 +1011,22 @@ déclaration champ d'application CalculAllocationLogementFoyer:
|
||||
état dépense_nette_minimale
|
||||
état redevance
|
||||
état contributions_sociales_arrondi
|
||||
# Mail du 21/04/2023 de DGALN/DHUP/FE4: "Le calcul [de la montée en charge
|
||||
# de Saint-Pierre et Miquelon] s’opère sur le montant final calculé de
|
||||
# l’aide à verser à l’allocataire (qui comprend par exemple la minoration de
|
||||
# 5 euros), comme précisé au 2° de l’article 7 du décret susvisé [n°
|
||||
# 2021-1750 du 21 décembre 2021]. J’attire toutefois votre attention sur le
|
||||
# fait que la CRDS ne s’applique pas à Saint-Pierre-et-Miquelon."
|
||||
état montée_en_charge_saint_pierre_miquelon
|
||||
état montant_minimal
|
||||
|
||||
champ d'application CalculAllocationLogementFoyer:
|
||||
définition calcul_apl_logement_foyer.résidence égal à
|
||||
résidence
|
||||
définition calcul_apl_logement_foyer.type_logement_foyer égal à
|
||||
type_logement_foyer
|
||||
définition calcul_apl_logement_foyer.logement_foyer_jeunes_travailleurs égal à
|
||||
logement_foyer_jeunes_travailleurs
|
||||
définition calcul_apl_logement_foyer.date_conventionnement égal à
|
||||
date_conventionnement
|
||||
définition calcul_apl_logement_foyer.redevance égal à
|
||||
@ -971,6 +1041,7 @@ champ d'application CalculAllocationLogementFoyer:
|
||||
définition calcul_apl_logement_foyer.date_courante égal à
|
||||
date_courante
|
||||
définition contributions_sociales.date_courante égal à date_courante
|
||||
définition contributions_sociales.lieu égal à résidence
|
||||
définition calcul_équivalence_loyer_minimale.date_courante égal à
|
||||
date_courante
|
||||
# Ce programme ne peut pas être utilisé avec des dates trop anciennes,
|
||||
@ -1032,7 +1103,7 @@ déclaration champ d'application ImpayéDépenseLogement:
|
||||
|
||||
## Calcul de l'aide au logement effective
|
||||
|
||||
## Calculette globale
|
||||
### Calculette globale
|
||||
|
||||
Le but de ce champ d'application est de réaliser le calcul automatique
|
||||
de l'éligibilité et du montant de l'aide au logement pour un ménage, en fonction
|
||||
@ -1118,7 +1189,7 @@ champ d'application CalculetteAidesAuLogement:
|
||||
coefficents_enfants_garde_alternée_pris_en_compte
|
||||
```
|
||||
|
||||
## Calculette avec garde alternée
|
||||
### Calculette avec garde alternée
|
||||
|
||||
Afin de calculer l'impact de la garde alternée sur les aides au logement,
|
||||
il est nécessaire de réaliser une double liquidation du calcul des aides
|
||||
|
@ -38,13 +38,61 @@ champ d'application Exemple1:
|
||||
assertion calcul.aide_finale_formule = 101,90€
|
||||
```
|
||||
|
||||
```catala
|
||||
déclaration champ d'application Exemple2:
|
||||
calcul champ d'application CalculAllocationLogementAccessionPropriété
|
||||
résultat montant contenu argent
|
||||
|
||||
champ d'application Exemple2:
|
||||
définition calcul.ressources_ménage_arrondies égal à 22 000 €
|
||||
définition calcul.date_signature_prêt égal à |2021-12-01|
|
||||
définition calcul.zone égal à Zone2
|
||||
définition calcul.mensualité_principale égal à 500 €
|
||||
définition calcul.nombre_personnes_à_charge égal à 4
|
||||
définition calcul.situation_familiale_calcul_apl égal à Couple
|
||||
définition calcul.date_courante égal à |2023-04-10|
|
||||
définition calcul.résidence égal à SaintPierreEtMiquelon
|
||||
définition calcul.charges_mensuelles_prêt égal à 500 €
|
||||
|
||||
définition calcul.type_travaux_logement égal à
|
||||
TypeTravauxLogementR842_5.PrévuDansListeR321_15
|
||||
définition calcul.date_entrée_logement égal à |2020-12-01|
|
||||
définition calcul.local_habité_première_fois_bénéficiaire égal à faux
|
||||
définition calcul.copropriété égal à faux
|
||||
définition calcul.situation_r822_11_13_17 égal à faux
|
||||
définition calcul.opérations_logement_évolutifs_sociaux_accession_propriété_aidée_État égal à faux
|
||||
|
||||
définition montant égal à
|
||||
calcul.traitement_aide_finale de
|
||||
calcul.aide_finale_formule
|
||||
assertion calcul.mensualité_éligible = 405,10 €
|
||||
assertion calcul.mensualité_minimale = 296,96 €
|
||||
assertion calcul.coefficient_prise_en_charge = 0,66
|
||||
assertion calcul.aide_finale_formule = 141,99€
|
||||
assertion montant = 85,00 €
|
||||
```
|
||||
|
||||
```catala-test-inline
|
||||
$ catala Interpret -s Exemple1
|
||||
[RESULT] Computation successful! Results:
|
||||
[RESULT] montant = 96.48 €
|
||||
```
|
||||
|
||||
```catala-test-inline
|
||||
$ catala Interpret_Lcalc -s Exemple1 --avoid_exceptions
|
||||
[RESULT] Computation successful! Results:
|
||||
[RESULT] montant = ESome 96.48 €
|
||||
```
|
||||
|
||||
```catala-test-inline
|
||||
$ catala Interpret -s Exemple2
|
||||
[RESULT] Computation successful! Results:
|
||||
[RESULT] montant = 85.00 €
|
||||
```
|
||||
|
||||
```catala-test-inline
|
||||
$ catala Interpret -s Exemple2 --avoid_exceptions
|
||||
[RESULT] Computation successful! Results:
|
||||
[RESULT] montant = 85.00 €
|
||||
```
|
||||
|
||||
|
@ -62,31 +62,67 @@ champ d'application Exemple2 :
|
||||
calcul.traitement_aide_finale de calcul.aide_finale_formule
|
||||
assertion montant = 352,77€
|
||||
|
||||
# déclaration champ d'application Exemple3 :
|
||||
# calcul champ d'application CalculAllocationLogementLocatif
|
||||
# résultat montant contenu argent
|
||||
# Exemple aux DROM
|
||||
déclaration champ d'application Exemple3 :
|
||||
calcul champ d'application CalculAllocationLogementLocatif
|
||||
résultat montant contenu argent
|
||||
|
||||
# champ d'application Exemple3 :
|
||||
# définition calcul.loyer_principal égal à 375 €
|
||||
# définition calcul.ressources_ménage_arrondies égal à 9 500€
|
||||
# définition calcul.bénéficiaire_aide_adulte_ou_enfant_handicapés égal à faux
|
||||
# définition calcul.date_courante égal à |2023-03-01|
|
||||
# définition calcul.nombre_personnes_à_charge égal à 1
|
||||
# définition calcul.situation_familiale_calcul_apl égal à Couple
|
||||
# définition calcul.zone égal à Zone2
|
||||
# définition calcul.résidence égal à LaRéunion
|
||||
# définition calcul.logement_est_chambre égal à faux
|
||||
# définition calcul.âgées_ou_handicap_adultes_hébergées_onéreux_particuliers
|
||||
# égal à faux
|
||||
# définition calcul.type_aide égal à
|
||||
# TypeAidesPersonnelleLogement.AllocationLogementFamiliale
|
||||
# définition calcul.colocation égal à faux
|
||||
# définition calcul.réduction_loyer_solidarité égal à 0 €
|
||||
# définition calcul.logement_meublé_d842_2 égal à faux
|
||||
# définition calcul.changement_logement_d842_4 égal à PasDeChangement
|
||||
# définition montant égal à
|
||||
# calcul.traitement_aide_finale de calcul.aide_finale_formule
|
||||
# assertion montant = 243,77€
|
||||
champ d'application Exemple3 :
|
||||
définition calcul.loyer_principal égal à 375 €
|
||||
définition calcul.ressources_ménage_arrondies égal à 9 500€
|
||||
définition calcul.bénéficiaire_aide_adulte_ou_enfant_handicapés égal à faux
|
||||
définition calcul.date_courante égal à |2023-03-01|
|
||||
définition calcul.nombre_personnes_à_charge égal à 1
|
||||
définition calcul.situation_familiale_calcul_apl égal à Couple
|
||||
définition calcul.zone égal à Zone2
|
||||
définition calcul.résidence égal à LaRéunion
|
||||
définition calcul.logement_est_chambre égal à faux
|
||||
définition calcul.âgées_ou_handicap_adultes_hébergées_onéreux_particuliers
|
||||
égal à faux
|
||||
définition calcul.type_aide égal à
|
||||
TypeAidesPersonnelleLogement.AllocationLogementFamiliale
|
||||
définition calcul.colocation égal à faux
|
||||
définition calcul.réduction_loyer_solidarité égal à 0 €
|
||||
définition calcul.logement_meublé_d842_2 égal à faux
|
||||
définition calcul.changement_logement_d842_4 égal à PasDeChangement
|
||||
définition montant égal à
|
||||
calcul.traitement_aide_finale de calcul.aide_finale_formule
|
||||
assertion montant = 339,70€
|
||||
```
|
||||
|
||||
```catala
|
||||
# Exemple à Saint-Pierre-et-Miquelon
|
||||
déclaration champ d'application Exemple4 :
|
||||
calcul champ d'application CalculAllocationLogementLocatif
|
||||
résultat montant contenu argent
|
||||
|
||||
champ d'application Exemple4 :
|
||||
définition calcul.loyer_principal égal à 500 €
|
||||
définition calcul.ressources_ménage_arrondies égal à 12 500€
|
||||
définition calcul.bénéficiaire_aide_adulte_ou_enfant_handicapés égal à faux
|
||||
définition calcul.date_courante égal à |2023-04-01|
|
||||
définition calcul.nombre_personnes_à_charge égal à 2
|
||||
définition calcul.situation_familiale_calcul_apl égal à PersonneSeule
|
||||
définition calcul.zone égal à Zone2
|
||||
définition calcul.résidence égal à SaintPierreEtMiquelon
|
||||
définition calcul.logement_est_chambre égal à faux
|
||||
définition calcul.âgées_ou_handicap_adultes_hébergées_onéreux_particuliers
|
||||
égal à faux
|
||||
définition calcul.type_aide égal à
|
||||
TypeAidesPersonnelleLogement.AllocationLogementFamiliale
|
||||
définition calcul.colocation égal à faux
|
||||
définition calcul.réduction_loyer_solidarité égal à 0 €
|
||||
définition calcul.logement_meublé_d842_2 égal à faux
|
||||
définition calcul.changement_logement_d842_4 égal à PasDeChangement
|
||||
définition montant égal à
|
||||
calcul.traitement_aide_finale de calcul.aide_finale_formule
|
||||
|
||||
assertion calcul.montant_forfaitaire_charges_d823_16 = 81,56 €
|
||||
assertion calcul.plafond_loyer_d823_16_2 = 424,22 €
|
||||
assertion calcul.participation_minimale = 42,99 €
|
||||
assertion calcul.taux_composition_familiale = 2,38%
|
||||
assertion calcul.participation_personnelle = 131,30 €
|
||||
assertion montant = 230,63 €
|
||||
```
|
||||
|
||||
```catala-test-inline
|
||||
@ -106,8 +142,33 @@ $ catala Interpret_Lcalc -s Exemple1 --avoid_exceptions
|
||||
[RESULT] Computation successful! Results:
|
||||
[RESULT] montant = ESome 345.73 €
|
||||
```
|
||||
|
||||
```catala-test-inline
|
||||
$ catala Interpret_Lcalc -s Exemple2 --avoid_exceptions
|
||||
[RESULT] Computation successful! Results:
|
||||
[RESULT] montant = ESome 352.77 €
|
||||
```
|
||||
|
||||
```catala-test-inline
|
||||
$ catala Interpret -s Exemple3 --disable_warnings
|
||||
[RESULT] Computation successful! Results:
|
||||
[RESULT] montant = 339.70 €
|
||||
```
|
||||
|
||||
```catala-test-inline
|
||||
$ catala Interpret -s Exemple4 --disable_warnings
|
||||
[RESULT] Computation successful! Results:
|
||||
[RESULT] montant = 230.63 €
|
||||
```
|
||||
|
||||
```catala-test-inline
|
||||
$ catala Interpret -s Exemple3 --disable_warnings --avoid_exceptions
|
||||
[RESULT] Computation successful! Results:
|
||||
[RESULT] montant = 339.70 €
|
||||
```
|
||||
|
||||
```catala-test-inline
|
||||
$ catala Interpret -s Exemple4 --disable_warnings --avoid_exceptions
|
||||
[RESULT] Computation successful! Results:
|
||||
[RESULT] montant = 230.63 €
|
||||
```
|
||||
|
@ -9,11 +9,12 @@ déclaration champ d'application CasTest1 :
|
||||
résultat montant contenu argent
|
||||
|
||||
champ d'application CasTest1:
|
||||
définition calcul.résidence égal à Métropole
|
||||
définition calcul.date_conventionnement égal à |2020-01-01|
|
||||
définition calcul.type_logement_foyer égal à
|
||||
TypeLogementFoyer.RésidenceSociale
|
||||
définition calcul.redevance égal à 350 €
|
||||
définition calcul.résidence égal à Métropole
|
||||
définition calcul.logement_foyer_jeunes_travailleurs égal à faux
|
||||
définition calcul.ressources_ménage_arrondies égal à 7 500€
|
||||
définition calcul.nombre_personnes_à_charge égal à 0
|
||||
définition calcul.situation_familiale_calcul_apl égal à PersonneSeule
|
||||
|
@ -17,6 +17,7 @@ champ d'application Exemple1:
|
||||
définition calcul.nombre_personnes_à_charge égal à 2
|
||||
définition calcul.situation_familiale_calcul_apl égal à Couple
|
||||
définition calcul.date_courante égal à |2021-09-15|
|
||||
définition calcul.résidence égal à Métropole
|
||||
définition calcul.type_prêt égal à D331_63_64
|
||||
|
||||
définition calcul.type_travaux_logement égal à
|
||||
@ -52,6 +53,7 @@ champ d'application Exemple2:
|
||||
définition calcul.nombre_personnes_à_charge égal à 2
|
||||
définition calcul.situation_familiale_calcul_apl égal à Couple
|
||||
définition calcul.date_courante égal à |2021-09-15|
|
||||
définition calcul.résidence égal à Métropole
|
||||
définition calcul.type_prêt égal à D331_63_64
|
||||
|
||||
définition calcul.type_travaux_logement égal à
|
||||
@ -85,6 +87,7 @@ champ d'application Exemple3:
|
||||
définition calcul.ressources_ménage_arrondies égal à 18 000 €
|
||||
définition calcul.date_signature_prêt égal à |2017-12-15|
|
||||
définition calcul.zone égal à Zone2
|
||||
définition calcul.résidence égal à Métropole
|
||||
définition calcul.mensualité_principale égal à 650 €
|
||||
définition calcul.nombre_personnes_à_charge égal à 2
|
||||
définition calcul.situation_familiale_calcul_apl égal à Couple
|
||||
@ -120,6 +123,7 @@ champ d'application Exemple4:
|
||||
définition calcul.date_signature_prêt égal à |2019-12-02|
|
||||
définition calcul.zone égal à Zone3
|
||||
définition calcul.mensualité_principale égal à 495 €
|
||||
définition calcul.résidence égal à Métropole
|
||||
définition calcul.nombre_personnes_à_charge égal à 2
|
||||
définition calcul.situation_familiale_calcul_apl égal à Couple
|
||||
définition calcul.date_courante égal à |2022-05-01|
|
||||
|
@ -8,7 +8,9 @@ déclaration champ d'application CasTest1 :
|
||||
résultat montant contenu argent
|
||||
|
||||
champ d'application CasTest1:
|
||||
définition calcul.résidence égal à Métropole
|
||||
définition calcul.date_conventionnement égal à |2022-01-01|
|
||||
définition calcul.logement_foyer_jeunes_travailleurs égal à faux
|
||||
définition calcul.type_logement_foyer égal à TypeLogementFoyer.Autre
|
||||
définition calcul.redevance égal à 360 €
|
||||
définition calcul.ressources_ménage_arrondies égal à 15 000€
|
||||
@ -32,6 +34,7 @@ déclaration champ d'application CasTest2 :
|
||||
champ d'application CasTest2:
|
||||
définition calcul.résidence égal à Métropole
|
||||
définition calcul.date_conventionnement égal à |2022-01-01|
|
||||
définition calcul.logement_foyer_jeunes_travailleurs égal à faux
|
||||
définition calcul.type_logement_foyer égal à TypeLogementFoyer.Autre
|
||||
définition calcul.redevance égal à 360 €
|
||||
définition calcul.ressources_ménage_arrondies égal à 15 000€
|
||||
@ -59,7 +62,9 @@ déclaration champ d'application CasTest3 :
|
||||
résultat montant contenu argent
|
||||
|
||||
champ d'application CasTest3:
|
||||
définition calcul.résidence égal à Métropole
|
||||
définition calcul.date_conventionnement égal à |2020-01-01|
|
||||
définition calcul.logement_foyer_jeunes_travailleurs égal à faux
|
||||
définition calcul.type_logement_foyer égal à TypeLogementFoyer.Autre
|
||||
définition calcul.redevance égal à 350 €
|
||||
définition calcul.ressources_ménage_arrondies égal à 7 500€
|
||||
@ -83,7 +88,9 @@ déclaration champ d'application CasTest4 :
|
||||
résultat montant contenu argent
|
||||
|
||||
champ d'application CasTest4:
|
||||
définition calcul.résidence égal à Métropole
|
||||
définition calcul.date_conventionnement égal à |2020-01-01|
|
||||
définition calcul.logement_foyer_jeunes_travailleurs égal à faux
|
||||
définition calcul.type_logement_foyer égal à TypeLogementFoyer.Autre
|
||||
définition calcul.redevance égal à 350 €
|
||||
définition calcul.ressources_ménage_arrondies égal à 7 500€
|
||||
@ -108,6 +115,8 @@ déclaration champ d'application CasTest5 :
|
||||
résultat montant contenu argent
|
||||
|
||||
champ d'application CasTest5:
|
||||
définition calcul.résidence égal à Métropole
|
||||
définition calcul.logement_foyer_jeunes_travailleurs égal à faux
|
||||
définition calcul.date_conventionnement égal à |2020-01-01|
|
||||
définition calcul.type_logement_foyer égal à
|
||||
TypeLogementFoyer.RésidenceSociale
|
||||
|
@ -22,7 +22,6 @@ champ d'application Exemple1 :
|
||||
-- situation_familiale: Mariés contenu |2010-11-26|
|
||||
-- personnes_à_charge: [
|
||||
EnfantÀCharge contenu (EnfantÀCharge {
|
||||
-- bénéficie_titre_personnel_aide_personnelle_logement : faux
|
||||
-- identifiant: 0
|
||||
-- nationalité: Française
|
||||
-- a_déjà_ouvert_droit_aux_allocations_familiales: vrai
|
||||
@ -32,7 +31,6 @@ champ d'application Exemple1 :
|
||||
-- obligation_scolaire: Après
|
||||
-- situation_garde_alternée: GardeAlternéeCoefficientPriseEnCharge contenu 0,7
|
||||
}); EnfantÀCharge contenu (EnfantÀCharge {
|
||||
-- bénéficie_titre_personnel_aide_personnelle_logement : faux
|
||||
-- identifiant: 1
|
||||
-- nationalité: Française
|
||||
-- études_apprentissage_stage_formation_pro_impossibilité_travail: faux
|
||||
@ -42,7 +40,6 @@ champ d'application Exemple1 :
|
||||
-- obligation_scolaire: Pendant
|
||||
-- situation_garde_alternée: PasDeGardeAlternée
|
||||
}); EnfantÀCharge contenu (EnfantÀCharge {
|
||||
-- bénéficie_titre_personnel_aide_personnelle_logement : faux
|
||||
-- identifiant: 2
|
||||
-- nationalité: Française
|
||||
-- études_apprentissage_stage_formation_pro_impossibilité_travail: faux
|
||||
@ -90,6 +87,73 @@ champ d'application Exemple1 :
|
||||
définition calculette.ressources_ménage_prises_en_compte égal à 20 000 €
|
||||
```
|
||||
|
||||
```catala
|
||||
déclaration champ d'application Exemple2 :
|
||||
calculette champ d'application CalculetteAidesAuLogementGardeAlternée
|
||||
résultat éligibilité contenu booléen
|
||||
résultat montant_versé contenu argent
|
||||
|
||||
champ d'application Exemple2 :
|
||||
définition éligibilité égal à calculette.éligibilité
|
||||
définition montant_versé égal à calculette.aide_finale
|
||||
définition calculette.date_courante égal à |2023-04-01|
|
||||
définition calculette.ménage égal à Ménage {
|
||||
-- prestations_reçues: []
|
||||
-- situation_familiale: Célibataire
|
||||
-- personnes_à_charge: [
|
||||
EnfantÀCharge contenu (EnfantÀCharge {
|
||||
-- identifiant: 0
|
||||
-- nationalité: Française
|
||||
-- a_déjà_ouvert_droit_aux_allocations_familiales: vrai
|
||||
-- date_de_naissance: |2008-01-01|
|
||||
-- études_apprentissage_stage_formation_pro_impossibilité_travail: vrai
|
||||
-- rémuneration_mensuelle: 0€
|
||||
-- obligation_scolaire: Après
|
||||
-- situation_garde_alternée: PasDeGardeAlternée
|
||||
}); EnfantÀCharge contenu (EnfantÀCharge {
|
||||
-- identifiant: 1
|
||||
-- nationalité: Française
|
||||
-- études_apprentissage_stage_formation_pro_impossibilité_travail: faux
|
||||
-- a_déjà_ouvert_droit_aux_allocations_familiales: vrai
|
||||
-- date_de_naissance: |2011-01-01|
|
||||
-- rémuneration_mensuelle: 0€
|
||||
-- obligation_scolaire: Pendant
|
||||
-- situation_garde_alternée: PasDeGardeAlternée
|
||||
})]
|
||||
-- logement: Logement {
|
||||
-- zone: Zone2
|
||||
-- résidence_principale : vrai
|
||||
-- mode_occupation : Locataire contenu (Location {
|
||||
-- loyer_principal: 500 €
|
||||
-- bénéficiaire_aide_adulte_ou_enfant_handicapés: faux
|
||||
-- logement_est_chambre: faux
|
||||
-- colocation: faux
|
||||
-- âgées_ou_handicap_adultes_hébergées_onéreux_particuliers: faux
|
||||
-- logement_meublé_d842_2: faux
|
||||
-- changement_logement_d842_4: PasDeChangement
|
||||
-- bailleur: BailleurPrivé
|
||||
})
|
||||
-- propriétaire : ParentOuAutre.Autre
|
||||
-- loué_ou_sous_loué_à_des_tiers : LouéOuSousLouéÀDesTiers.Non
|
||||
-- usufruit : ParentOuAutre.Autre
|
||||
-- logement_decent_l89_462 : vrai
|
||||
-- surface_m_carrés : 60
|
||||
}
|
||||
-- nombre_autres_occupants_logement: 0
|
||||
-- condition_rattaché_foyer_fiscal_parent_ifi: faux
|
||||
-- enfant_à_naître_après_quatrième_mois_grossesse: faux
|
||||
-- personnes_âgées_handicapées_foyer_r844_4: faux
|
||||
-- résidence : SaintPierreEtMiquelon
|
||||
}
|
||||
définition calculette.demandeur égal à Demandeur {
|
||||
-- est_non_salarié_agricole_l781_8_l_781_46_code_rural: faux
|
||||
-- magistrat_fonctionnaire_centre_intérêts_matériels_familiaux_hors_mayotte: faux
|
||||
-- personne_hébergée_centre_soin_l_L162_22_3_sécurité_sociale: faux
|
||||
-- date_naissance : |1970-05-02|
|
||||
-- nationalité : Française
|
||||
}
|
||||
définition calculette.ressources_ménage_prises_en_compte égal à 12 500 €
|
||||
```
|
||||
|
||||
```catala-test-inline
|
||||
$ catala Interpret -s Exemple1
|
||||
@ -103,3 +167,17 @@ $ catala Interpret_Lcalc -s Exemple1 --avoid_exceptions
|
||||
[RESULT] montant_versé = ESome 246.23 €
|
||||
[RESULT] éligibilité = ESome true
|
||||
```
|
||||
|
||||
```catala-test-inline
|
||||
$ catala Interpret -s Exemple2
|
||||
[RESULT] Computation successful! Results:
|
||||
[RESULT] montant_versé = 230.63 €
|
||||
[RESULT] éligibilité = true
|
||||
```
|
||||
|
||||
```catala-test-inline
|
||||
$ catala Interpret -s Exemple2 --avoid_exceptions
|
||||
[RESULT] Computation successful! Results:
|
||||
[RESULT] montant_versé = 230.63 €
|
||||
[RESULT] éligibilité = true
|
||||
```
|
||||
|
@ -21,7 +21,6 @@ champ d'application Exemple1 :
|
||||
-- situation_familiale: Mariés contenu |2010-11-26|
|
||||
-- personnes_à_charge: [
|
||||
EnfantÀCharge contenu (EnfantÀCharge {
|
||||
-- bénéficie_titre_personnel_aide_personnelle_logement : faux
|
||||
-- nationalité: Française
|
||||
-- identifiant: 0
|
||||
-- études_apprentissage_stage_formation_pro_impossibilité_travail: vrai
|
||||
@ -31,7 +30,6 @@ champ d'application Exemple1 :
|
||||
-- obligation_scolaire: Après
|
||||
-- situation_garde_alternée: PasDeGardeAlternée
|
||||
}); EnfantÀCharge contenu (EnfantÀCharge {
|
||||
-- bénéficie_titre_personnel_aide_personnelle_logement : faux
|
||||
-- nationalité: Française
|
||||
-- identifiant: 1
|
||||
-- a_déjà_ouvert_droit_aux_allocations_familiales: vrai
|
||||
@ -41,7 +39,6 @@ champ d'application Exemple1 :
|
||||
-- obligation_scolaire: Pendant
|
||||
-- situation_garde_alternée: PasDeGardeAlternée
|
||||
}); EnfantÀCharge contenu (EnfantÀCharge {
|
||||
-- bénéficie_titre_personnel_aide_personnelle_logement : faux
|
||||
-- nationalité: Française
|
||||
-- identifiant: 2
|
||||
-- études_apprentissage_stage_formation_pro_impossibilité_travail: faux
|
||||
@ -102,7 +99,6 @@ champ d'application Exemple2 :
|
||||
-- situation_familiale: Concubins
|
||||
-- personnes_à_charge: [
|
||||
EnfantÀCharge contenu (EnfantÀCharge {
|
||||
-- bénéficie_titre_personnel_aide_personnelle_logement : faux
|
||||
-- identifiant: 0
|
||||
-- nationalité: Française
|
||||
-- études_apprentissage_stage_formation_pro_impossibilité_travail: faux
|
||||
@ -113,7 +109,6 @@ champ d'application Exemple2 :
|
||||
-- situation_garde_alternée: PasDeGardeAlternée
|
||||
}); EnfantÀCharge contenu (EnfantÀCharge {
|
||||
-- nationalité: Française
|
||||
-- bénéficie_titre_personnel_aide_personnelle_logement : faux
|
||||
-- études_apprentissage_stage_formation_pro_impossibilité_travail: faux
|
||||
-- identifiant: 1
|
||||
-- a_déjà_ouvert_droit_aux_allocations_familiales: vrai
|
||||
@ -158,95 +153,63 @@ champ d'application Exemple2 :
|
||||
}
|
||||
définition éligibilité.bénéficie_aide_personnalisée_logement égal à faux
|
||||
|
||||
déclaration champ d'application Exemple3 :
|
||||
éligibilité champ d'application ÉligibilitéAllocationLogement
|
||||
résultat éligible contenu TypeÉligibilitéAllocationLogement
|
||||
|
||||
|
||||
# déclaration champ d'application Exemple2 :
|
||||
# éligibilité champ d'application ÉligibilitéAidesPersonnelleLogement
|
||||
# résultat éligible contenu booléen
|
||||
|
||||
# champ d'application Exemple2 :
|
||||
# définition éligible égal à éligibilité.éligibilité
|
||||
# assertion non éligible
|
||||
# définition éligibilité.date_ouverture_droits égal à |2020-03-10|
|
||||
# définition éligibilité.ménage égal à Ménage {
|
||||
# -- prestations_reçues: []
|
||||
# -- situation_familiale: Concubins
|
||||
# -- personnes_à_charge: []
|
||||
# -- logement: Logement {
|
||||
# -- résidence_principale : vrai
|
||||
# -- est_ehpad_ou_maison_autonomie_l313_12_asf : faux
|
||||
# -- mode_occupation : Locataire contenu (Location {
|
||||
# -- bailleur: Bailleur {
|
||||
# -- type_bailleur: BailleurPrivé
|
||||
# -- respecte_convention_titre_V: vrai
|
||||
# -- respecte_convention_titre_II: vrai
|
||||
# -- construit_amélioré_conditions_l831_1_4: faux
|
||||
# -- acquisition_aides_état_prêt_titre_II_ou_livre_III: faux
|
||||
# }
|
||||
# })
|
||||
# -- propriétaire : ParentOuAutre.Autre
|
||||
# -- loué_ou_sous_loué_à_des_tiers : LouéOuSousLouéÀDesTiers.Non
|
||||
# -- usufruit : ParentOuAutre.Autre
|
||||
# -- logement_decent_l89_462 : vrai
|
||||
# -- surface_m_carrés : 25
|
||||
# }
|
||||
# -- nombre_autres_occupants_logement: 0
|
||||
# -- condition_rattaché_foyer_fiscal_parent_ifi: vrai
|
||||
# }
|
||||
# définition éligibilité.demandeur égal à Demandeur {
|
||||
# -- age_demandeur : 22
|
||||
# -- date_naissance : |2000-01-03|
|
||||
# -- nationalité : Française
|
||||
# -- patrimoine : Patrimoine {
|
||||
# # D'après le R822_3_3, la periode est annuelle.
|
||||
# -- produisant_revenu_période_r822_3_3_r822_4: 7800€
|
||||
# -- ne_produisant_pas_revenu_période_r822_3_3_r822_4: 0€
|
||||
# }
|
||||
# }
|
||||
|
||||
# déclaration champ d'application Exemple3 :
|
||||
# éligibilité champ d'application ÉligibilitéAidesPersonnelleLogement
|
||||
# résultat éligible contenu booléen
|
||||
|
||||
# champ d'application Exemple3 :
|
||||
# définition éligible égal à éligibilité.éligibilité
|
||||
# assertion éligible
|
||||
# définition éligibilité.date_ouverture_droits égal à |2020-03-10|
|
||||
# définition éligibilité.ménage égal à Ménage {
|
||||
# -- prestations_reçues: []
|
||||
# -- situation_familiale: Concubins
|
||||
# -- personnes_à_charge: []
|
||||
# -- logement: Logement {
|
||||
# -- résidence_principale : vrai
|
||||
# -- est_ehpad_ou_maison_autonomie_l313_12_asf : faux
|
||||
# -- mode_occupation : Locataire contenu (Location {
|
||||
# -- bailleur: Bailleur {
|
||||
# -- type_bailleur: BailleurPrivé
|
||||
# -- respecte_convention_titre_V: vrai
|
||||
# -- respecte_convention_titre_II: vrai
|
||||
# -- construit_amélioré_conditions_l831_1_4: faux
|
||||
# -- acquisition_aides_état_prêt_titre_II_ou_livre_III: faux
|
||||
# }
|
||||
# })
|
||||
# -- propriétaire : ParentOuAutre.Autre
|
||||
# -- loué_ou_sous_loué_à_des_tiers : LouéOuSousLouéÀDesTiers.Non
|
||||
# -- usufruit : ParentOuAutre.Autre
|
||||
# -- logement_decent_l89_462 : vrai
|
||||
# -- surface_m_carrés : 25
|
||||
# }
|
||||
# -- nombre_autres_occupants_logement: 0
|
||||
# -- condition_rattaché_foyer_fiscal_parent_ifi: faux
|
||||
# }
|
||||
# définition éligibilité.demandeur égal à Demandeur {
|
||||
# -- age_demandeur : 22
|
||||
# -- date_naissance : |2000-01-03|
|
||||
# -- nationalité : Française
|
||||
# -- patrimoine : Patrimoine {
|
||||
# # D'après le R822_3_3, la periode est annuelle.
|
||||
# -- produisant_revenu_période_r822_3_3_r822_4: 7800€
|
||||
# -- ne_produisant_pas_revenu_période_r822_3_3_r822_4: 0€
|
||||
# }
|
||||
# }
|
||||
champ d'application Exemple3 :
|
||||
définition éligible égal à éligibilité.éligibilité
|
||||
assertion éligible = TypeÉligibilitéAllocationLogement.AllocationLogementFamiliale
|
||||
définition éligibilité.date_courante égal à |2023-04-01|
|
||||
définition éligibilité.ménage égal à Ménage {
|
||||
-- résidence: LaRéunion
|
||||
-- prestations_reçues: [
|
||||
PrestationReçue.AllocationsFamiliales
|
||||
]
|
||||
-- situation_familiale: Concubins
|
||||
-- personnes_à_charge: [
|
||||
EnfantÀCharge contenu (EnfantÀCharge {
|
||||
-- identifiant: 0
|
||||
-- nationalité: Française
|
||||
-- études_apprentissage_stage_formation_pro_impossibilité_travail: faux
|
||||
-- a_déjà_ouvert_droit_aux_allocations_familiales: vrai
|
||||
-- date_de_naissance: |2016-01-01|
|
||||
-- rémuneration_mensuelle: 0€
|
||||
-- obligation_scolaire: Pendant
|
||||
-- situation_garde_alternée: PasDeGardeAlternée
|
||||
})]
|
||||
-- logement: Logement {
|
||||
-- zone: Zone2
|
||||
-- résidence_principale : vrai
|
||||
-- mode_occupation : Locataire contenu (Location {
|
||||
-- bailleur: BailleurPrivé
|
||||
-- loyer_principal: 375 €
|
||||
-- bénéficiaire_aide_adulte_ou_enfant_handicapés: faux
|
||||
-- logement_est_chambre: faux
|
||||
-- colocation: faux
|
||||
-- âgées_ou_handicap_adultes_hébergées_onéreux_particuliers: faux
|
||||
-- logement_meublé_d842_2: faux
|
||||
-- changement_logement_d842_4: PasDeChangement
|
||||
})
|
||||
-- propriétaire : ParentOuAutre.Autre
|
||||
-- loué_ou_sous_loué_à_des_tiers : LouéOuSousLouéÀDesTiers.Non
|
||||
-- usufruit : ParentOuAutre.Autre
|
||||
-- logement_decent_l89_462 : vrai
|
||||
-- surface_m_carrés : 60
|
||||
}
|
||||
-- nombre_autres_occupants_logement: 0
|
||||
-- condition_rattaché_foyer_fiscal_parent_ifi: faux
|
||||
-- enfant_à_naître_après_quatrième_mois_grossesse: faux
|
||||
-- personnes_âgées_handicapées_foyer_r844_4: faux
|
||||
}
|
||||
définition éligibilité.demandeur égal à Demandeur {
|
||||
-- est_non_salarié_agricole_l781_8_l_781_46_code_rural: faux
|
||||
-- magistrat_fonctionnaire_centre_intérêts_matériels_familiaux_hors_mayotte: faux
|
||||
-- date_naissance : |1992-01-01|
|
||||
-- nationalité : Française
|
||||
-- personne_hébergée_centre_soin_l_L162_22_3_sécurité_sociale: faux
|
||||
}
|
||||
définition éligibilité.bénéficie_aide_personnalisée_logement égal à faux
|
||||
```
|
||||
|
||||
```catala-test-inline
|
||||
@ -255,12 +218,40 @@ $ catala Interpret -s Exemple1 --disable_warnings
|
||||
[RESULT] éligible = true
|
||||
```
|
||||
|
||||
```catala-test-inline
|
||||
$ catala Typecheck
|
||||
[RESULT] Typechecking successful!
|
||||
```
|
||||
```catala-test-inline
|
||||
$ catala Interpret_Lcalc -s Exemple1 --avoid_exceptions
|
||||
[RESULT] Computation successful! Results:
|
||||
[RESULT] éligible = ESome true
|
||||
```
|
||||
|
||||
|
||||
```catala-test-inline
|
||||
$ catala Interpret -s Exemple2 --disable_warnings
|
||||
[RESULT] Computation successful! Results:
|
||||
[RESULT] éligible = AllocationLogementFamiliale ()
|
||||
```
|
||||
|
||||
```catala-test-inline
|
||||
$ catala Interpret_Lcalc -s Exemple2 --avoid_exceptions
|
||||
[RESULT] Computation successful! Results:
|
||||
[RESULT] éligible = ESome AllocationLogementFamiliale ()
|
||||
```
|
||||
|
||||
|
||||
```catala-test-inline
|
||||
$ catala Interpret -s Exemple3 --disable_warnings
|
||||
[RESULT] Computation successful! Results:
|
||||
[RESULT] éligible = AllocationLogementFamiliale ()
|
||||
```
|
||||
|
||||
```catala-test-inline
|
||||
$ catala Interpret_Lcalc -s Exemple3 --avoid_exceptions
|
||||
[RESULT] Computation successful! Results:
|
||||
[RESULT] éligible = ESome AllocationLogementFamiliale ()
|
||||
```
|
||||
|
||||
```catala-test-inline
|
||||
$ catala Typecheck
|
||||
[RESULT] Typechecking successful!
|
||||
```
|
||||
|
||||
|
@ -200,7 +200,9 @@ champ d'application AllocationsFamiliales :
|
||||
) sinon 0 €
|
||||
```
|
||||
|
||||
### Annexe|LEGIARTI000036326574
|
||||
### Annexe | LEGIARTI000036326574
|
||||
|
||||
ANNEXE
|
||||
|
||||
TABLEAU D'ÉVOLUTION DES TAUX SERVANT AU CALCUL DES ALLOCATIONS FAMILIALES
|
||||
APPLICABLES DANS LE DÉPARTEMENT DE MAYOTTE POUR LA PÉRIODE DU 1ER JANVIER
|
||||
|
@ -133,3 +133,8 @@ champ d'application InterfaceAllocationsFamiliales:
|
||||
}
|
||||
pour enfant parmi i_enfants)
|
||||
```
|
||||
|
||||
NOTA :
|
||||
|
||||
Conformément à l'article 63 de la loi n° 2019-791 du 26 juillet 2019, ces
|
||||
dispositions entrent en vigueur à la rentrée scolaire 2019.
|
@ -142,6 +142,7 @@ déclaration champ d'application AllocationsFamiliales:
|
||||
interne âge_minimum_alinéa_1_l521_3 contenu durée
|
||||
dépend de enfant contenu Enfant
|
||||
interne nombre_enfants_alinéa_2_l521_3 contenu entier
|
||||
interne nombre_enfants_alinéa_2_l521_1 contenu entier
|
||||
interne est_enfant_le_plus_âgé contenu booléen
|
||||
dépend de enfant contenu Enfant
|
||||
interne plafond_I_d521_3 contenu argent
|
||||
|
@ -291,10 +291,10 @@ l'article L. 521-1 est fixé à trois.
|
||||
|
||||
```catala
|
||||
champ d'application AllocationsFamiliales :
|
||||
définition nombre_enfants_alinéa_2_l521_3 égal à 3
|
||||
définition nombre_enfants_alinéa_2_l521_1 égal à 3
|
||||
```
|
||||
|
||||
####### Article D521-3|LEGIARTI000030678079
|
||||
####### Article D521-3|LEGIARTI000044809227
|
||||
|
||||
I.-Le plafond prévu au 1° du I des articles D. 521-1 et D. 521-2 est fixé à
|
||||
55 950 euros. Il est majoré de 5 595 euros par enfant à charge.
|
||||
@ -319,8 +319,7 @@ champ d'application AllocationsFamiliales :
|
||||
III.-Les montants des plafonds et de leur majoration respective fixés au présent
|
||||
article sont revalorisés au 1er janvier de chaque année, conformément à
|
||||
l'évolution en moyenne annuelle des prix à la consommation hors tabac de
|
||||
l'année civile de référence, par arrêté des ministres chargés de la sécurité
|
||||
sociale, du budget et de l'agriculture.
|
||||
l'année civile de référence.
|
||||
|
||||
```catala
|
||||
# Nota : ces montants sont en réalités remis à jour chaque année par des
|
||||
@ -335,17 +334,17 @@ sociale, du budget et de l'agriculture.
|
||||
|
||||
####### Article D755-5|LEGIARTI000006738575
|
||||
|
||||
I. - Les taux servant au calcul des allocations familiales et de la majoration
|
||||
I.-Les taux servant au calcul des allocations familiales et de la majoration
|
||||
prévue à l'article L. 755-11 sont identiques à ceux mentionnés à l'article
|
||||
D. 521-1.
|
||||
D. 521-1 .
|
||||
|
||||
```catala
|
||||
# Pas de changement à déclarer
|
||||
```
|
||||
|
||||
II. - En application de l'article L. 755-11, 2e alinéa, le taux servant au
|
||||
II.-En application de l'article L. 755-11, 2e alinéa, le taux servant au
|
||||
calcul des allocations familiales servies pour un seul enfant à charge est
|
||||
fixé à 5,88 p. 100 de la base mensuelle prévue à l'article L. 755-3.
|
||||
fixé à 5,88 p. 100 de la base mensuelle prévue à l'article L. 755-3 .
|
||||
|
||||
```catala
|
||||
# Composantes des allocations familiales
|
||||
@ -367,7 +366,7 @@ champ d'application AllocationsFamiliales :
|
||||
conséquence égal à
|
||||
bmaf.montant * 5,88 %
|
||||
```
|
||||
informatique
|
||||
|
||||
La majoration des allocations familiales pour un seul enfant à charge est
|
||||
fixée à 3,69 p. 100 de la base mensuelle prévue à l'article L. 755-3 à
|
||||
partir de onze ans et à 5,67 p. 100 à partir de seize ans.
|
||||
|
@ -8,7 +8,7 @@
|
||||
|
||||
##### Chapitre 1er : Liste des prestations
|
||||
|
||||
###### Article L511-1|LEGIARTI000038834530
|
||||
###### Article L511-1 | LEGIARTI000041979747
|
||||
|
||||
Les prestations familiales comprennent :
|
||||
|
||||
@ -26,17 +26,22 @@ Les prestations familiales comprennent :
|
||||
|
||||
7°) l'allocation de rentrée scolaire ;
|
||||
|
||||
8°) (Abrogé) ;
|
||||
8°) L'allocation forfaitaire versée en cas de décès d'un enfant ;
|
||||
|
||||
9°) l'allocation journalière de présence parentale.
|
||||
|
||||
```catala
|
||||
# Voir l'énumération ÉlémentPrestationsFamiliale
|
||||
```
|
||||
NOTA :
|
||||
|
||||
Conformément au IV de l’article 5 de la loi n° 2020-692 du 8 juin 2020,
|
||||
ces dispositions entrent en vigueur à une date fixée par décret, et au plus
|
||||
tard à compter du 1er janvier 2022, au titre des enfants dont le décès
|
||||
intervient à compter de cette date. Se reporter aux dispositions du V du même
|
||||
article en ce qui concerne le versement d'une l'allocation forfaitaire
|
||||
transitoire.
|
||||
|
||||
##### Chapitre 2 : Champ d'application
|
||||
|
||||
###### Article L512-3|LEGIARTI000038834523
|
||||
###### Article L512-3|LEGIARTI000041979743
|
||||
|
||||
Sous réserve des règles particulières à chaque prestation,
|
||||
ouvre droit aux prestations familiales :
|
||||
@ -87,6 +92,19 @@ peut être différent de celui mentionné au 2° du présent article.
|
||||
# cet âge autre part que pour Complément Familial ou AllocationLogement.
|
||||
```
|
||||
|
||||
Pour l'attribution de l'allocation forfaitaire versée en cas de décès d'un
|
||||
enfant prévue à l'article L. 545-1, l'âge limite retenu peut être différent de
|
||||
celui fixé en application du 2° du présent article et la condition relative à
|
||||
la rémunération de l'enfant n'est pas exigée.
|
||||
|
||||
NOTA :
|
||||
|
||||
Conformément au IV de l’article 5 de la loi n° 2020-692 du 8 juin 2020, ces
|
||||
dispositions entrent en vigueur à une date fixée par décret, et au plus tard à
|
||||
compter du 1er janvier 2022, au titre des enfants dont le décès intervient à
|
||||
compter de cette date. Se reporter aux dispositions du V du même article en ce
|
||||
qui concerne le versement d'une l'allocation forfaitaire transitoire.
|
||||
|
||||
#### Titre 2 : Prestations générales d'entretien
|
||||
|
||||
##### Chapitre 1er : Allocations familiales
|
||||
@ -116,7 +134,7 @@ champ d'application AllocationsFamiliales :
|
||||
|
||||
règle droit_ouvert_forfaitaire de enfant sous condition
|
||||
# nombre_enfants_alinéa_2_l521_3 sera défini dans l'article R521-3
|
||||
(nombre de enfants_à_charge >= nombre_enfants_alinéa_2_l521_3) et
|
||||
(nombre de enfants_à_charge >= nombre_enfants_alinéa_2_l521_1) et
|
||||
# Puisqu'un enfant ne garde un âge donné que pour une période d'un an,
|
||||
# cette condition assure que l'allocation ne peut être distribuée que pour
|
||||
# un an.
|
||||
@ -174,7 +192,7 @@ champ d'application AllocationsFamiliales :
|
||||
assertion fixé montant_versé_complément par décret
|
||||
```
|
||||
|
||||
###### Article L521-2|LEGIARTI000006743210
|
||||
###### Article L521-2|LEGIARTI000039099826
|
||||
|
||||
Les allocations sont versées à la personne qui assume, dans quelques conditions
|
||||
que ce soit, la charge effective et permanente de l'enfant.
|
||||
@ -240,13 +258,12 @@ allocations familiales continuent d'être évaluées en tenant compte à la fois
|
||||
des enfants présents au foyer et du ou des enfants confiés au service de
|
||||
l'aide sociale à l'enfance. La part des allocations familiales dues à la
|
||||
famille pour cet enfant est versée à ce service. Toutefois, le juge peut
|
||||
décider, d'office ou sur saisine du président du conseil général, à la
|
||||
suite d'une mesure prise en application des articles 375-3 et 375-5 du code
|
||||
civil ou des articles 15,16,16 bis et 28 de l' ordonnance n° 45-174 du 2
|
||||
février 1945 relative à l'enfance délinquante, de maintenir le versement
|
||||
des allocations à la famille, lorsque celle-ci participe à la prise en
|
||||
charge morale ou matérielle de l'enfant ou en vue de faciliter le retour
|
||||
de l'enfant dans son foyer.
|
||||
décider, d'office ou sur saisine du président du conseil général, à la suite
|
||||
d'une mesure prise en application des articles 375-3 et 375-5 du code civil ou
|
||||
à l'article L. 323-1 du code de la justice pénale des mineurs, de maintenir le
|
||||
versement des allocations à la famille, lorsque celle-ci participe à la prise
|
||||
en charge morale ou matérielle de l'enfant ou en vue de faciliter le retour de
|
||||
l'enfant dans son foyer.
|
||||
|
||||
```catala
|
||||
champ d'application AllocationsFamiliales :
|
||||
@ -288,6 +305,14 @@ d) enfants confiés à un service public, à une institution privée, à un part
|
||||
# est confié à un service social.
|
||||
```
|
||||
|
||||
NOTA :
|
||||
|
||||
Se reporter aux conditions d'application prévues à l'article 10 de
|
||||
l'ordonnance n° 2019-950 du 11 septembre 2019. Conformément à l'article 25 de
|
||||
la loi n°2020-734, l'ordonnance n°2019-950 entre en vigueur le 31 mars 2021.
|
||||
Cette date a été reportée au 30 septembre 2021 par l'article 2 de la loi n°
|
||||
2021-218 du 26 février 2021.
|
||||
|
||||
###### Article L521-3|LEGIARTI000006743289
|
||||
|
||||
Chacun des enfants à charge, à l'exception du plus âgé, ouvre droit à partir
|
||||
@ -365,11 +390,12 @@ champ d'application PrestationsFamiliales :
|
||||
|
||||
##### Chapitre 5 : Prestations familiales et prestations assimilées
|
||||
|
||||
###### Article L755-3|LEGIARTI000033728786
|
||||
###### Article L755-3|LEGIARTI000041979722
|
||||
|
||||
Les dispositions des articles L. 512-1 à L. 512-4 , L. 513-1 , L. 521-2 ,
|
||||
L. 552-1 , L. 553-1 , L. 553-2 , L. 553-4 , L. 582-1 , L. 582-2 , L. 583-3
|
||||
et L. 583-5 sont applicables aux collectivités mentionnées à l'article L. 751-1 .
|
||||
Les dispositions des articles L. 512-1 à L. 512-4 , L. 513-1 , L. 521-2 , L.
|
||||
552-1 , L. 552-7 , L. 553-1 , L. 553-2 , L. 553-4 , L. 582-1 , L. 582-2 , L.
|
||||
583-3 et L. 583-5 sont applicables aux collectivités mentionnées à l'article
|
||||
L. 751-1 .
|
||||
|
||||
La base de calcul des prestations familiales est la même que celle qui est
|
||||
fixée en application de l'article L. 551-1 .
|
||||
@ -378,11 +404,18 @@ fixée en application de l'article L. 551-1 .
|
||||
# Aucun changement dans le code, puisque les articles restent applicables
|
||||
```
|
||||
|
||||
NOTA :
|
||||
|
||||
Conformément au IV de l’article 4 de la loi n° 2020-692 du 8 juin 2020, ces
|
||||
dispositions entrent en vigueur à une date fixée par décret, et au plus tard
|
||||
le 1er janvier 2022, pour les décès intervenant à compter de cette date.
|
||||
|
||||
|
||||
###### Article L755-11|LEGIARTI000031323803
|
||||
|
||||
Les conditions d'attribution des allocations familiales et de leurs majorations
|
||||
fixées par les articles L. 521-1 et L. 521-3 sont applicables dans les
|
||||
collectivités mentionnées à l'article L. 751-1.
|
||||
collectivités mentionnées à l'article L. 751-1 .
|
||||
|
||||
```catala
|
||||
# Aucun changement dans le code, puisque les articles restent applicables
|
||||
|
@ -83,6 +83,26 @@ de 414,81 € au 1er avril 2021 à 422,28 € au 1er avril 2022.
|
||||
champ d'application BaseMensuelleAllocationsFamiliales :
|
||||
définition montant
|
||||
sous condition
|
||||
date_courante >= |2022-04-01|
|
||||
date_courante >= |2022-04-01| et
|
||||
date_courante < |2023-04-01|
|
||||
conséquence égal à 422,28 €
|
||||
```
|
||||
|
||||
## Instruction interministérielle N° DSS/2B/2023/41 du 24 mars 2023 relative à la revalorisation au 1er avril 2023 des prestations familiales servies en métropole, en Guadeloupe, en Guyane, en Martinique, à la Réunion, à Saint-Barthélemy, à Saint-Martin et dans le département de Mayotte
|
||||
|
||||
Au 1er avril 2023, le coefficient de revalorisation de la base mensuelle des
|
||||
allocations familiales (BMAF) mentionné à l’article L. 551-1 du code de la
|
||||
sécurité sociale1 est fixé à 1,056 soit un taux de revalorisation de la BMAF
|
||||
de 5,6 %, déduction faite de la revalorisation anticipée de 4% entrée en
|
||||
vigueur en juillet 2022 et introduite par l’article 9 de la loi n° 2022- 1158
|
||||
du 16 août 2022 portant mesures d'urgence pour la protection du pouvoir
|
||||
d'achat. Le montant de cette base mensuelle, en pourcentage duquel sont fixées
|
||||
les prestations familiales, est donc porté à 445,93 €.
|
||||
|
||||
```catala
|
||||
champ d'application BaseMensuelleAllocationsFamiliales :
|
||||
définition montant
|
||||
sous condition
|
||||
date_courante >= |2023-04-01|
|
||||
conséquence égal à 445,93 €
|
||||
```
|
||||
|
@ -16,7 +16,6 @@ déclaration structure EnfantPrestationsFamiliales :
|
||||
donnée rémuneration_mensuelle contenu argent
|
||||
donnée date_de_naissance contenu date
|
||||
donnée a_déjà_ouvert_droit_aux_allocations_familiales contenu booléen
|
||||
donnée bénéficie_titre_personnel_aide_personnelle_logement contenu booléen
|
||||
|
||||
déclaration champ d'application ÉligibilitéPrestationsFamiliales:
|
||||
entrée date_courante contenu date
|
||||
|
@ -37,10 +37,6 @@ intervient à compter de cette date. Se reporter aux dispositions du V du
|
||||
même article en ce qui concerne le versement d'une l'allocation forfaitaire
|
||||
transitoire.
|
||||
|
||||
```catala
|
||||
# Voir l'énumération ÉlémentPrestationsFamiliale
|
||||
```
|
||||
|
||||
##### Chapitre 2 : Champ d'application
|
||||
|
||||
###### Article L512-3 | LEGIARTI000041979743
|
||||
|
@ -16,7 +16,6 @@ champ d'application Données:
|
||||
-- date_de_naissance: |2007-01-01|
|
||||
-- rémuneration_mensuelle: 0€
|
||||
-- a_déjà_ouvert_droit_aux_allocations_familiales: vrai
|
||||
-- bénéficie_titre_personnel_aide_personnelle_logement: faux
|
||||
}
|
||||
définition enfant2 égal à EnfantPrestationsFamiliales {
|
||||
-- identifiant: 2
|
||||
@ -24,7 +23,6 @@ champ d'application Données:
|
||||
-- date_de_naissance: |2003-01-01|
|
||||
-- rémuneration_mensuelle: 1000€
|
||||
-- a_déjà_ouvert_droit_aux_allocations_familiales: vrai
|
||||
-- bénéficie_titre_personnel_aide_personnelle_logement: faux
|
||||
}
|
||||
définition enfant3 égal à EnfantPrestationsFamiliales {
|
||||
-- identifiant: 3
|
||||
@ -32,7 +30,6 @@ champ d'application Données:
|
||||
-- date_de_naissance: |2003-01-01|
|
||||
-- rémuneration_mensuelle: 400€
|
||||
-- a_déjà_ouvert_droit_aux_allocations_familiales: vrai
|
||||
-- bénéficie_titre_personnel_aide_personnelle_logement: faux
|
||||
}
|
||||
définition enfant4 égal à EnfantPrestationsFamiliales {
|
||||
-- identifiant: 4
|
||||
@ -40,7 +37,6 @@ champ d'application Données:
|
||||
-- date_de_naissance: |1999-01-01|
|
||||
-- rémuneration_mensuelle: 0€
|
||||
-- a_déjà_ouvert_droit_aux_allocations_familiales: vrai
|
||||
-- bénéficie_titre_personnel_aide_personnelle_logement: faux
|
||||
}
|
||||
|
||||
déclaration champ d'application Test1:
|
||||
|
@ -288,7 +288,7 @@ let driver_lwt
|
||||
Lwt.return 0
|
||||
with Errors.StructuredError (msg, pos) ->
|
||||
let bt = Printexc.get_raw_backtrace () in
|
||||
Cli.error_print "%s" (Errors.print_structured_error msg pos);
|
||||
Errors.print_structured_error msg pos;
|
||||
if Printexc.backtrace_status () then Printexc.print_raw_backtrace stderr bt;
|
||||
Lwt.return (-1)
|
||||
|
||||
@ -298,7 +298,7 @@ let driver file debug diff expiration custom_date client_id client_secret =
|
||||
(driver_lwt file debug diff expiration custom_date client_id client_secret)
|
||||
with Errors.StructuredError (msg, pos) ->
|
||||
let bt = Printexc.get_raw_backtrace () in
|
||||
Cli.error_print "%s" (Errors.print_structured_error msg pos);
|
||||
Errors.print_structured_error msg pos;
|
||||
if Printexc.backtrace_status () then Printexc.print_raw_backtrace stderr bt;
|
||||
-1
|
||||
|
||||
|
@ -94,7 +94,6 @@ function run_computation_AL(log) {
|
||||
{
|
||||
"kind": "EnfantACharge",
|
||||
"payload": {
|
||||
"beneficieTitrePersonnelAidePersonnelleLogement": false,
|
||||
"aDejaOuvertDroitAuxAllocationsFamiliales": true,
|
||||
"remunerationMensuelle": 0,
|
||||
"nationalite": {
|
||||
@ -117,7 +116,6 @@ function run_computation_AL(log) {
|
||||
{
|
||||
"kind": "EnfantACharge",
|
||||
"payload": {
|
||||
"beneficieTitrePersonnelAidePersonnelleLogement": false,
|
||||
"aDejaOuvertDroitAuxAllocationsFamiliales": true,
|
||||
"remunerationMensuelle": 0,
|
||||
"nationalite": {
|
||||
|
93288
french_law/js/french_law.js
generated
93288
french_law/js/french_law.js
generated
File diff suppressed because one or more lines are too long
@ -155,7 +155,6 @@ let aides_logement_input :
|
||||
[
|
||||
Law_source.Aides_logement.PersonneACharge.EnfantACharge
|
||||
{
|
||||
beneficie_titre_personnel_aide_personnelle_logement = false;
|
||||
a_deja_ouvert_droit_aux_allocations_familiales = true;
|
||||
nationalite =
|
||||
Law_source.Aides_logement.Nationalite.Francaise ();
|
||||
@ -175,7 +174,6 @@ let aides_logement_input :
|
||||
};
|
||||
Law_source.Aides_logement.PersonneACharge.EnfantACharge
|
||||
{
|
||||
beneficie_titre_personnel_aide_personnelle_logement = false;
|
||||
a_deja_ouvert_droit_aux_allocations_familiales = true;
|
||||
remuneration_mensuelle = Runtime.money_of_units_int 0;
|
||||
obligation_scolaire =
|
||||
|
21850
french_law/ocaml/law_source/aides_logement.ml
generated
21850
french_law/ocaml/law_source/aides_logement.ml
generated
File diff suppressed because it is too large
Load Diff
202
french_law/ocaml/law_source/aides_logement_api_web.ml
generated
202
french_law/ocaml/law_source/aides_logement_api_web.ml
generated
@ -851,7 +851,7 @@ class type type_logement_foyer =
|
||||
(** Expects one of:
|
||||
- "LogementPersonnesAgeesOuHandicapees"
|
||||
- "ResidenceSociale"
|
||||
- "FoyerJeunesTrvailleursOuMigrantsConventionneL353_2Avant1995"
|
||||
- "FoyerJeunesTravailleursOuMigrantsConventionneL353_2Avant1995"
|
||||
- "Autre" *)
|
||||
|
||||
method payload : Js.Unsafe.any Js.t Js.readonly_prop
|
||||
@ -868,8 +868,8 @@ let type_logement_foyer_to_jsoo
|
||||
val kind = Js.string "ResidenceSociale"
|
||||
val payload = Js.Unsafe.coerce (Js.Unsafe.inject ( arg))
|
||||
end
|
||||
| FoyerJeunesTrvailleursOuMigrantsConventionneL353_2Avant1995 arg -> object%js
|
||||
val kind = Js.string "FoyerJeunesTrvailleursOuMigrantsConventionneL353_2Avant1995"
|
||||
| FoyerJeunesTravailleursOuMigrantsConventionneL353_2Avant1995 arg -> object%js
|
||||
val kind = Js.string "FoyerJeunesTravailleursOuMigrantsConventionneL353_2Avant1995"
|
||||
val payload = Js.Unsafe.coerce (Js.Unsafe.inject ( arg))
|
||||
end
|
||||
| Autre arg -> object%js
|
||||
@ -883,8 +883,8 @@ let type_logement_foyer_of_jsoo
|
||||
| "LogementPersonnesAgeesOuHandicapees" ->
|
||||
TypeLogementFoyer.LogementPersonnesAgeesOuHandicapees ()
|
||||
| "ResidenceSociale" -> TypeLogementFoyer.ResidenceSociale ()
|
||||
| "FoyerJeunesTrvailleursOuMigrantsConventionneL353_2Avant1995" ->
|
||||
TypeLogementFoyer.FoyerJeunesTrvailleursOuMigrantsConventionneL353_2Avant1995 ()
|
||||
| "FoyerJeunesTravailleursOuMigrantsConventionneL353_2Avant1995" ->
|
||||
TypeLogementFoyer.FoyerJeunesTravailleursOuMigrantsConventionneL353_2Avant1995 ()
|
||||
| "Autre" -> TypeLogementFoyer.Autre ()
|
||||
| cons ->
|
||||
failwith
|
||||
@ -1626,6 +1626,11 @@ class type calcul_allocation_logement_locatif =
|
||||
method aideFinaleFormule: Js.number Js.t Js.readonly_prop
|
||||
method traitementAideFinale:
|
||||
(unit, Js.number Js.t -> Js.number Js.t) Js.meth_callback Js.meth
|
||||
method montantForfaitaireChargesD82316: Js.number Js.t Js.readonly_prop
|
||||
method plafondLoyerD823162: Js.number Js.t Js.readonly_prop
|
||||
method participationMinimale: Js.number Js.t Js.readonly_prop
|
||||
method tauxCompositionFamiliale: Js.number Js.t Js.readonly_prop
|
||||
method participationPersonnelle: Js.number Js.t Js.readonly_prop
|
||||
end
|
||||
let calcul_allocation_logement_locatif_to_jsoo
|
||||
(calcul_allocation_logement_locatif : CalculAllocationLogementLocatif.t)
|
||||
@ -1639,6 +1644,16 @@ class type calcul_allocation_logement_locatif =
|
||||
Js.number_of_float @@ money_to_float (calcul_allocation_logement_locatif.traitement_aide_finale
|
||||
(money_of_decimal @@ decimal_of_float @@ Js.float_of_number
|
||||
function_input0)))
|
||||
val montantForfaitaireChargesD82316 =
|
||||
Js.number_of_float @@ money_to_float calcul_allocation_logement_locatif.montant_forfaitaire_charges_d823_16
|
||||
val plafondLoyerD823162 =
|
||||
Js.number_of_float @@ money_to_float calcul_allocation_logement_locatif.plafond_loyer_d823_16_2
|
||||
val participationMinimale =
|
||||
Js.number_of_float @@ money_to_float calcul_allocation_logement_locatif.participation_minimale
|
||||
val tauxCompositionFamiliale =
|
||||
Js.number_of_float @@ decimal_to_float calcul_allocation_logement_locatif.taux_composition_familiale
|
||||
val participationPersonnelle =
|
||||
Js.number_of_float @@ money_to_float calcul_allocation_logement_locatif.participation_personnelle
|
||||
end
|
||||
let calcul_allocation_logement_locatif_of_jsoo
|
||||
(calcul_allocation_logement_locatif
|
||||
@ -1648,7 +1663,23 @@ class type calcul_allocation_logement_locatif =
|
||||
aide_finale_formule =
|
||||
money_of_decimal @@ decimal_of_float @@ Js.float_of_number
|
||||
calcul_allocation_logement_locatif##.aideFinaleFormule;
|
||||
traitement_aide_finale = failwith "The function 'traitement_aide_finale' translation isn't yet supported..."
|
||||
traitement_aide_finale = failwith "The function 'traitement_aide_finale' translation isn't yet supported...";
|
||||
montant_forfaitaire_charges_d823_16 =
|
||||
money_of_decimal @@ decimal_of_float @@ Js.float_of_number
|
||||
calcul_allocation_logement_locatif
|
||||
##.montantForfaitaireChargesD82316;
|
||||
plafond_loyer_d823_16_2 =
|
||||
money_of_decimal @@ decimal_of_float @@ Js.float_of_number
|
||||
calcul_allocation_logement_locatif##.plafondLoyerD823162;
|
||||
participation_minimale =
|
||||
money_of_decimal @@ decimal_of_float @@ Js.float_of_number
|
||||
calcul_allocation_logement_locatif##.participationMinimale;
|
||||
taux_composition_familiale =
|
||||
decimal_of_float @@ Js.float_of_number
|
||||
calcul_allocation_logement_locatif##.tauxCompositionFamiliale;
|
||||
participation_personnelle =
|
||||
money_of_decimal @@ decimal_of_float @@ Js.float_of_number
|
||||
calcul_allocation_logement_locatif##.participationPersonnelle
|
||||
}
|
||||
|
||||
class type calcul_allocation_logement_accession_propriete =
|
||||
@ -2194,6 +2225,7 @@ class type pret =
|
||||
class type logement_foyer =
|
||||
object
|
||||
method typeUser: type_logement_foyer Js.t Js.readonly_prop
|
||||
method logementFoyerJeunesTravailleurs: bool Js.t Js.readonly_prop
|
||||
method remplitConditionsR83221: bool Js.t Js.readonly_prop
|
||||
method conventionneLivreIIITitreVChapIII: bool Js.t Js.readonly_prop
|
||||
method conventionneSelonReglesDrom: bool Js.t Js.readonly_prop
|
||||
@ -2205,11 +2237,15 @@ class type logement_foyer =
|
||||
method beneficiaireAideAdulteOuEnfantHandicapes:
|
||||
bool Js.t Js.readonly_prop
|
||||
method logementMeubleD8422: bool Js.t Js.readonly_prop
|
||||
method logementEstChambre: bool Js.t Js.readonly_prop
|
||||
method colocation: bool Js.t Js.readonly_prop
|
||||
end
|
||||
let logement_foyer_to_jsoo (logement_foyer : LogementFoyer.t)
|
||||
: logement_foyer Js.t =
|
||||
object%js
|
||||
val typeUser = type_logement_foyer_to_jsoo logement_foyer.type_user
|
||||
val logementFoyerJeunesTravailleurs =
|
||||
Js.bool logement_foyer.logement_foyer_jeunes_travailleurs
|
||||
val remplitConditionsR83221 =
|
||||
Js.bool logement_foyer.remplit_conditions_r832_21
|
||||
val conventionneLivreIIITitreVChapIII =
|
||||
@ -2227,11 +2263,15 @@ class type logement_foyer =
|
||||
val beneficiaireAideAdulteOuEnfantHandicapes =
|
||||
Js.bool logement_foyer.beneficiaire_aide_adulte_ou_enfant_handicapes
|
||||
val logementMeubleD8422 = Js.bool logement_foyer.logement_meuble_d842_2
|
||||
val logementEstChambre = Js.bool logement_foyer.logement_est_chambre
|
||||
val colocation = Js.bool logement_foyer.colocation
|
||||
end
|
||||
let logement_foyer_of_jsoo (logement_foyer : logement_foyer Js.t) :
|
||||
LogementFoyer.t =
|
||||
{
|
||||
type_user = type_logement_foyer_of_jsoo logement_foyer##.typeUser;
|
||||
logement_foyer_jeunes_travailleurs =
|
||||
Js.to_bool logement_foyer##.logementFoyerJeunesTravailleurs;
|
||||
remplit_conditions_r832_21 =
|
||||
Js.to_bool logement_foyer##.remplitConditionsR83221;
|
||||
conventionne_livre_III_titre_V_chap_III =
|
||||
@ -2251,7 +2291,9 @@ class type logement_foyer =
|
||||
beneficiaire_aide_adulte_ou_enfant_handicapes =
|
||||
Js.to_bool logement_foyer##.beneficiaireAideAdulteOuEnfantHandicapes;
|
||||
logement_meuble_d842_2 =
|
||||
Js.to_bool logement_foyer##.logementMeubleD8422
|
||||
Js.to_bool logement_foyer##.logementMeubleD8422;
|
||||
logement_est_chambre = Js.to_bool logement_foyer##.logementEstChambre;
|
||||
colocation = Js.to_bool logement_foyer##.colocation
|
||||
}
|
||||
|
||||
class type enfant_prestations_familiales =
|
||||
@ -2263,8 +2305,6 @@ class type enfant_prestations_familiales =
|
||||
method dateDeNaissance: Js.js_string Js.t Js.readonly_prop
|
||||
method aDejaOuvertDroitAuxAllocationsFamiliales:
|
||||
bool Js.t Js.readonly_prop
|
||||
method beneficieTitrePersonnelAidePersonnelleLogement:
|
||||
bool Js.t Js.readonly_prop
|
||||
end
|
||||
let enfant_prestations_familiales_to_jsoo (enfant_prestations_familiales
|
||||
: EnfantPrestationsFamiliales.t) : enfant_prestations_familiales Js.t =
|
||||
@ -2279,8 +2319,6 @@ class type enfant_prestations_familiales =
|
||||
date_to_jsoo enfant_prestations_familiales.date_de_naissance
|
||||
val aDejaOuvertDroitAuxAllocationsFamiliales =
|
||||
Js.bool enfant_prestations_familiales.a_deja_ouvert_droit_aux_allocations_familiales
|
||||
val beneficieTitrePersonnelAidePersonnelleLogement =
|
||||
Js.bool enfant_prestations_familiales.beneficie_titre_personnel_aide_personnelle_logement
|
||||
end
|
||||
let enfant_prestations_familiales_of_jsoo
|
||||
(enfant_prestations_familiales : enfant_prestations_familiales Js.t) :
|
||||
@ -2298,11 +2336,7 @@ class type enfant_prestations_familiales =
|
||||
a_deja_ouvert_droit_aux_allocations_familiales =
|
||||
Js.to_bool
|
||||
enfant_prestations_familiales
|
||||
##.aDejaOuvertDroitAuxAllocationsFamiliales;
|
||||
beneficie_titre_personnel_aide_personnelle_logement =
|
||||
Js.to_bool
|
||||
enfant_prestations_familiales
|
||||
##.beneficieTitrePersonnelAidePersonnelleLogement
|
||||
##.aDejaOuvertDroitAuxAllocationsFamiliales
|
||||
}
|
||||
|
||||
class type type_bailleur =
|
||||
@ -2635,8 +2669,6 @@ class type enfant_a_charge =
|
||||
object
|
||||
method identifiant: int Js.readonly_prop
|
||||
method nationalite: nationalite Js.t Js.readonly_prop
|
||||
method beneficieTitrePersonnelAidePersonnelleLogement:
|
||||
bool Js.t Js.readonly_prop
|
||||
method aDejaOuvertDroitAuxAllocationsFamiliales:
|
||||
bool Js.t Js.readonly_prop
|
||||
method dateDeNaissance: Js.js_string Js.t Js.readonly_prop
|
||||
@ -2653,8 +2685,6 @@ class type enfant_a_charge =
|
||||
object%js
|
||||
val identifiant = integer_to_int enfant_a_charge.identifiant
|
||||
val nationalite = nationalite_to_jsoo enfant_a_charge.nationalite
|
||||
val beneficieTitrePersonnelAidePersonnelleLogement =
|
||||
Js.bool enfant_a_charge.beneficie_titre_personnel_aide_personnelle_logement
|
||||
val aDejaOuvertDroitAuxAllocationsFamiliales =
|
||||
Js.bool enfant_a_charge.a_deja_ouvert_droit_aux_allocations_familiales
|
||||
val dateDeNaissance = date_to_jsoo enfant_a_charge.date_de_naissance
|
||||
@ -2672,9 +2702,6 @@ class type enfant_a_charge =
|
||||
{
|
||||
identifiant = integer_of_int enfant_a_charge##.identifiant;
|
||||
nationalite = nationalite_of_jsoo enfant_a_charge##.nationalite;
|
||||
beneficie_titre_personnel_aide_personnelle_logement =
|
||||
Js.to_bool
|
||||
enfant_a_charge##.beneficieTitrePersonnelAidePersonnelleLogement;
|
||||
a_deja_ouvert_droit_aux_allocations_familiales =
|
||||
Js.to_bool enfant_a_charge##.aDejaOuvertDroitAuxAllocationsFamiliales;
|
||||
date_de_naissance = date_of_jsoo enfant_a_charge##.dateDeNaissance;
|
||||
@ -3203,7 +3230,9 @@ class type eligibilite_prime_de_demenagement_in =
|
||||
}
|
||||
|
||||
class type contributions_sociales_aides_personnelle_logement_in =
|
||||
object method dateCouranteIn: Js.js_string Js.t Js.readonly_prop
|
||||
object
|
||||
method dateCouranteIn: Js.js_string Js.t Js.readonly_prop
|
||||
method lieuIn: collectivite Js.t Js.readonly_prop
|
||||
end
|
||||
let contributions_sociales_aides_personnelle_logement_in_to_jsoo
|
||||
(contributions_sociales_aides_personnelle_logement_in
|
||||
@ -3212,6 +3241,8 @@ class type contributions_sociales_aides_personnelle_logement_in =
|
||||
object%js
|
||||
val dateCouranteIn =
|
||||
date_to_jsoo contributions_sociales_aides_personnelle_logement_in.date_courante_in
|
||||
val lieuIn =
|
||||
collectivite_to_jsoo contributions_sociales_aides_personnelle_logement_in.lieu_in
|
||||
end
|
||||
let contributions_sociales_aides_personnelle_logement_in_of_jsoo
|
||||
(contributions_sociales_aides_personnelle_logement_in
|
||||
@ -3221,7 +3252,10 @@ class type contributions_sociales_aides_personnelle_logement_in =
|
||||
date_courante_in =
|
||||
date_of_jsoo
|
||||
contributions_sociales_aides_personnelle_logement_in
|
||||
##.dateCouranteIn
|
||||
##.dateCouranteIn;
|
||||
lieu_in =
|
||||
collectivite_of_jsoo
|
||||
contributions_sociales_aides_personnelle_logement_in##.lieuIn
|
||||
}
|
||||
|
||||
class type calcul_aide_personnalisee_logement_locatif_in =
|
||||
@ -3376,6 +3410,7 @@ class type calcul_equivalence_loyer_minimale_in =
|
||||
|
||||
class type calcul_nombre_part_logement_foyer_in =
|
||||
object
|
||||
method dateCouranteIn: Js.js_string Js.t Js.readonly_prop
|
||||
method condition2Du83225In: bool Js.t Js.readonly_prop
|
||||
method nombrePersonnesAChargeIn: int Js.readonly_prop
|
||||
method situationFamilialeCalculAplIn:
|
||||
@ -3388,6 +3423,8 @@ class type calcul_nombre_part_logement_foyer_in =
|
||||
: CalculNombrePartLogementFoyerIn.t)
|
||||
: calcul_nombre_part_logement_foyer_in Js.t =
|
||||
object%js
|
||||
val dateCouranteIn =
|
||||
date_to_jsoo calcul_nombre_part_logement_foyer_in.date_courante_in
|
||||
val condition2Du83225In =
|
||||
Js.bool calcul_nombre_part_logement_foyer_in.condition_2_du_832_25_in
|
||||
val nombrePersonnesAChargeIn =
|
||||
@ -3406,6 +3443,8 @@ class type calcul_nombre_part_logement_foyer_in =
|
||||
: calcul_nombre_part_logement_foyer_in Js.t) :
|
||||
CalculNombrePartLogementFoyerIn.t =
|
||||
{
|
||||
date_courante_in =
|
||||
date_of_jsoo calcul_nombre_part_logement_foyer_in##.dateCouranteIn;
|
||||
condition_2_du_832_25_in =
|
||||
Js.to_bool calcul_nombre_part_logement_foyer_in##.condition2Du83225In;
|
||||
nombre_personnes_a_charge_in =
|
||||
@ -3420,6 +3459,8 @@ class type calcul_nombre_part_logement_foyer_in =
|
||||
|
||||
class type calcul_aide_personnalisee_logement_foyer_in =
|
||||
object
|
||||
method residenceIn: collectivite Js.t Js.readonly_prop
|
||||
method logementFoyerJeunesTravailleursIn: bool Js.t Js.readonly_prop
|
||||
method typeLogementFoyerIn: type_logement_foyer Js.t Js.readonly_prop
|
||||
method dateConventionnementIn: Js.js_string Js.t Js.readonly_prop
|
||||
method ressourcesMenageArrondiesIn: Js.number Js.t Js.readonly_prop
|
||||
@ -3441,6 +3482,10 @@ class type calcul_aide_personnalisee_logement_foyer_in =
|
||||
: CalculAidePersonnaliseeLogementFoyerIn.t)
|
||||
: calcul_aide_personnalisee_logement_foyer_in Js.t =
|
||||
object%js
|
||||
val residenceIn =
|
||||
collectivite_to_jsoo calcul_aide_personnalisee_logement_foyer_in.residence_in
|
||||
val logementFoyerJeunesTravailleursIn =
|
||||
Js.bool calcul_aide_personnalisee_logement_foyer_in.logement_foyer_jeunes_travailleurs_in
|
||||
val typeLogementFoyerIn =
|
||||
type_logement_foyer_to_jsoo calcul_aide_personnalisee_logement_foyer_in.type_logement_foyer_in
|
||||
val dateConventionnementIn =
|
||||
@ -3481,6 +3526,13 @@ class type calcul_aide_personnalisee_logement_foyer_in =
|
||||
: calcul_aide_personnalisee_logement_foyer_in Js.t) :
|
||||
CalculAidePersonnaliseeLogementFoyerIn.t =
|
||||
{
|
||||
residence_in =
|
||||
collectivite_of_jsoo
|
||||
calcul_aide_personnalisee_logement_foyer_in##.residenceIn;
|
||||
logement_foyer_jeunes_travailleurs_in =
|
||||
Js.to_bool
|
||||
calcul_aide_personnalisee_logement_foyer_in
|
||||
##.logementFoyerJeunesTravailleursIn;
|
||||
type_logement_foyer_in =
|
||||
type_logement_foyer_of_jsoo
|
||||
calcul_aide_personnalisee_logement_foyer_in##.typeLogementFoyerIn;
|
||||
@ -3563,6 +3615,7 @@ class type calcul_aide_personnalisee_logement_accession_propriete_in =
|
||||
method typePretIn: type_pret Js.t Js.readonly_prop
|
||||
method ancienneteLogementIn: neuf_ou_ancien Js.t Js.readonly_prop
|
||||
method dateCouranteIn: Js.js_string Js.t Js.readonly_prop
|
||||
method residenceIn: collectivite Js.t Js.readonly_prop
|
||||
end
|
||||
let calcul_aide_personnalisee_logement_accession_propriete_in_to_jsoo
|
||||
(calcul_aide_personnalisee_logement_accession_propriete_in
|
||||
@ -3597,6 +3650,8 @@ class type calcul_aide_personnalisee_logement_accession_propriete_in =
|
||||
neuf_ou_ancien_to_jsoo calcul_aide_personnalisee_logement_accession_propriete_in.anciennete_logement_in
|
||||
val dateCouranteIn =
|
||||
date_to_jsoo calcul_aide_personnalisee_logement_accession_propriete_in.date_courante_in
|
||||
val residenceIn =
|
||||
collectivite_to_jsoo calcul_aide_personnalisee_logement_accession_propriete_in.residence_in
|
||||
end
|
||||
let calcul_aide_personnalisee_logement_accession_propriete_in_of_jsoo
|
||||
(calcul_aide_personnalisee_logement_accession_propriete_in
|
||||
@ -3657,7 +3712,11 @@ class type calcul_aide_personnalisee_logement_accession_propriete_in =
|
||||
date_courante_in =
|
||||
date_of_jsoo
|
||||
calcul_aide_personnalisee_logement_accession_propriete_in
|
||||
##.dateCouranteIn
|
||||
##.dateCouranteIn;
|
||||
residence_in =
|
||||
collectivite_of_jsoo
|
||||
calcul_aide_personnalisee_logement_accession_propriete_in
|
||||
##.residenceIn
|
||||
}
|
||||
|
||||
class type calcul_aide_personnalisee_logement_in =
|
||||
@ -3958,6 +4017,7 @@ class type calcul_allocation_logement_accession_propriete_in =
|
||||
class type calcul_allocation_logement_foyer_in =
|
||||
object
|
||||
method typeLogementFoyerIn: type_logement_foyer Js.t Js.readonly_prop
|
||||
method logementFoyerJeunesTravailleursIn: bool Js.t Js.readonly_prop
|
||||
method dateConventionnementIn: Js.js_string Js.t Js.readonly_prop
|
||||
method residenceIn: collectivite Js.t Js.readonly_prop
|
||||
method redevanceIn: Js.number Js.t Js.readonly_prop
|
||||
@ -3976,6 +4036,8 @@ class type calcul_allocation_logement_foyer_in =
|
||||
object%js
|
||||
val typeLogementFoyerIn =
|
||||
type_logement_foyer_to_jsoo calcul_allocation_logement_foyer_in.type_logement_foyer_in
|
||||
val logementFoyerJeunesTravailleursIn =
|
||||
Js.bool calcul_allocation_logement_foyer_in.logement_foyer_jeunes_travailleurs_in
|
||||
val dateConventionnementIn =
|
||||
date_to_jsoo calcul_allocation_logement_foyer_in.date_conventionnement_in
|
||||
val residenceIn =
|
||||
@ -4003,6 +4065,10 @@ class type calcul_allocation_logement_foyer_in =
|
||||
type_logement_foyer_in =
|
||||
type_logement_foyer_of_jsoo
|
||||
calcul_allocation_logement_foyer_in##.typeLogementFoyerIn;
|
||||
logement_foyer_jeunes_travailleurs_in =
|
||||
Js.to_bool
|
||||
calcul_allocation_logement_foyer_in
|
||||
##.logementFoyerJeunesTravailleursIn;
|
||||
date_conventionnement_in =
|
||||
date_of_jsoo
|
||||
calcul_allocation_logement_foyer_in##.dateConventionnementIn;
|
||||
@ -4450,15 +4516,6 @@ let smic (smic_in : smic_in Js.t)
|
||||
smic_in |> smic_in_of_jsoo |> smic |> smic_to_jsoo
|
||||
|
||||
|
||||
let calcul_aide_personnalisee_logement_locatif
|
||||
(calcul_aide_personnalisee_logement_locatif_in : calcul_aide_personnalisee_logement_locatif_in Js.t)
|
||||
: calcul_aide_personnalisee_logement_locatif Js.t =
|
||||
calcul_aide_personnalisee_logement_locatif_in
|
||||
|> calcul_aide_personnalisee_logement_locatif_in_of_jsoo
|
||||
|> calcul_aide_personnalisee_logement_locatif
|
||||
|> calcul_aide_personnalisee_logement_locatif_to_jsoo
|
||||
|
||||
|
||||
let calcul_aide_personnalisee_logement_foyer
|
||||
(calcul_aide_personnalisee_logement_foyer_in : calcul_aide_personnalisee_logement_foyer_in Js.t)
|
||||
: calcul_aide_personnalisee_logement_foyer Js.t =
|
||||
@ -4486,13 +4543,13 @@ let eligibilite_prestations_familiales
|
||||
|> eligibilite_prestations_familiales_to_jsoo
|
||||
|
||||
|
||||
let calcul_allocation_logement_locatif
|
||||
(calcul_allocation_logement_locatif_in : calcul_allocation_logement_locatif_in Js.t)
|
||||
: calcul_allocation_logement_locatif Js.t =
|
||||
calcul_allocation_logement_locatif_in
|
||||
|> calcul_allocation_logement_locatif_in_of_jsoo
|
||||
|> calcul_allocation_logement_locatif
|
||||
|> calcul_allocation_logement_locatif_to_jsoo
|
||||
let calcul_aide_personnalisee_logement_locatif
|
||||
(calcul_aide_personnalisee_logement_locatif_in : calcul_aide_personnalisee_logement_locatif_in Js.t)
|
||||
: calcul_aide_personnalisee_logement_locatif Js.t =
|
||||
calcul_aide_personnalisee_logement_locatif_in
|
||||
|> calcul_aide_personnalisee_logement_locatif_in_of_jsoo
|
||||
|> calcul_aide_personnalisee_logement_locatif
|
||||
|> calcul_aide_personnalisee_logement_locatif_to_jsoo
|
||||
|
||||
|
||||
let calcul_allocation_logement_foyer
|
||||
@ -4513,15 +4570,6 @@ let calcul_allocation_logement_accession_propriete
|
||||
|> calcul_allocation_logement_accession_propriete_to_jsoo
|
||||
|
||||
|
||||
let calcul_aide_personnalisee_logement
|
||||
(calcul_aide_personnalisee_logement_in : calcul_aide_personnalisee_logement_in Js.t)
|
||||
: calcul_aide_personnalisee_logement Js.t =
|
||||
calcul_aide_personnalisee_logement_in
|
||||
|> calcul_aide_personnalisee_logement_in_of_jsoo
|
||||
|> calcul_aide_personnalisee_logement
|
||||
|> calcul_aide_personnalisee_logement_to_jsoo
|
||||
|
||||
|
||||
let eligibilite_aides_personnelle_logement
|
||||
(eligibilite_aides_personnelle_logement_in : eligibilite_aides_personnelle_logement_in Js.t)
|
||||
: eligibilite_aides_personnelle_logement Js.t =
|
||||
@ -4531,13 +4579,22 @@ let eligibilite_aides_personnelle_logement
|
||||
|> eligibilite_aides_personnelle_logement_to_jsoo
|
||||
|
||||
|
||||
let calcul_allocation_logement
|
||||
(calcul_allocation_logement_in : calcul_allocation_logement_in Js.t)
|
||||
: calcul_allocation_logement Js.t =
|
||||
calcul_allocation_logement_in
|
||||
|> calcul_allocation_logement_in_of_jsoo
|
||||
|> calcul_allocation_logement
|
||||
|> calcul_allocation_logement_to_jsoo
|
||||
let calcul_allocation_logement_locatif
|
||||
(calcul_allocation_logement_locatif_in : calcul_allocation_logement_locatif_in Js.t)
|
||||
: calcul_allocation_logement_locatif Js.t =
|
||||
calcul_allocation_logement_locatif_in
|
||||
|> calcul_allocation_logement_locatif_in_of_jsoo
|
||||
|> calcul_allocation_logement_locatif
|
||||
|> calcul_allocation_logement_locatif_to_jsoo
|
||||
|
||||
|
||||
let calcul_aide_personnalisee_logement
|
||||
(calcul_aide_personnalisee_logement_in : calcul_aide_personnalisee_logement_in Js.t)
|
||||
: calcul_aide_personnalisee_logement Js.t =
|
||||
calcul_aide_personnalisee_logement_in
|
||||
|> calcul_aide_personnalisee_logement_in_of_jsoo
|
||||
|> calcul_aide_personnalisee_logement
|
||||
|> calcul_aide_personnalisee_logement_to_jsoo
|
||||
|
||||
|
||||
let eligibilite_prime_de_demenagement
|
||||
@ -4567,6 +4624,15 @@ let eligibilite_aide_personnalisee_logement
|
||||
|> eligibilite_aide_personnalisee_logement_to_jsoo
|
||||
|
||||
|
||||
let calcul_allocation_logement
|
||||
(calcul_allocation_logement_in : calcul_allocation_logement_in Js.t)
|
||||
: calcul_allocation_logement Js.t =
|
||||
calcul_allocation_logement_in
|
||||
|> calcul_allocation_logement_in_of_jsoo
|
||||
|> calcul_allocation_logement
|
||||
|> calcul_allocation_logement_to_jsoo
|
||||
|
||||
|
||||
let calculette_aides_au_logement
|
||||
(calculette_aides_au_logement_in : calculette_aides_au_logement_in Js.t)
|
||||
: calculette_aides_au_logement Js.t =
|
||||
@ -4619,9 +4685,6 @@ let _ =
|
||||
method smic : (smic_in Js.t -> smic Js.t) Js.callback =
|
||||
Js.wrap_callback smic
|
||||
|
||||
method calculAidePersonnaliseeLogementLocatif : (calcul_aide_personnalisee_logement_locatif_in Js.t -> calcul_aide_personnalisee_logement_locatif Js.t) Js.callback =
|
||||
Js.wrap_callback calcul_aide_personnalisee_logement_locatif
|
||||
|
||||
method calculAidePersonnaliseeLogementFoyer : (calcul_aide_personnalisee_logement_foyer_in Js.t -> calcul_aide_personnalisee_logement_foyer Js.t) Js.callback =
|
||||
Js.wrap_callback calcul_aide_personnalisee_logement_foyer
|
||||
|
||||
@ -4632,8 +4695,8 @@ let _ =
|
||||
method eligibilitePrestationsFamiliales : (eligibilite_prestations_familiales_in Js.t -> eligibilite_prestations_familiales Js.t) Js.callback =
|
||||
Js.wrap_callback eligibilite_prestations_familiales
|
||||
|
||||
method calculAllocationLogementLocatif : (calcul_allocation_logement_locatif_in Js.t -> calcul_allocation_logement_locatif Js.t) Js.callback =
|
||||
Js.wrap_callback calcul_allocation_logement_locatif
|
||||
method calculAidePersonnaliseeLogementLocatif : (calcul_aide_personnalisee_logement_locatif_in Js.t -> calcul_aide_personnalisee_logement_locatif Js.t) Js.callback =
|
||||
Js.wrap_callback calcul_aide_personnalisee_logement_locatif
|
||||
|
||||
method calculAllocationLogementFoyer : (calcul_allocation_logement_foyer_in Js.t -> calcul_allocation_logement_foyer Js.t) Js.callback =
|
||||
Js.wrap_callback calcul_allocation_logement_foyer
|
||||
@ -4641,14 +4704,14 @@ let _ =
|
||||
method calculAllocationLogementAccessionPropriete : (calcul_allocation_logement_accession_propriete_in Js.t -> calcul_allocation_logement_accession_propriete Js.t) Js.callback =
|
||||
Js.wrap_callback calcul_allocation_logement_accession_propriete
|
||||
|
||||
method calculAidePersonnaliseeLogement : (calcul_aide_personnalisee_logement_in Js.t -> calcul_aide_personnalisee_logement Js.t) Js.callback =
|
||||
Js.wrap_callback calcul_aide_personnalisee_logement
|
||||
|
||||
method eligibiliteAidesPersonnelleLogement : (eligibilite_aides_personnelle_logement_in Js.t -> eligibilite_aides_personnelle_logement Js.t) Js.callback =
|
||||
Js.wrap_callback eligibilite_aides_personnelle_logement
|
||||
|
||||
method calculAllocationLogement : (calcul_allocation_logement_in Js.t -> calcul_allocation_logement Js.t) Js.callback =
|
||||
Js.wrap_callback calcul_allocation_logement
|
||||
method calculAllocationLogementLocatif : (calcul_allocation_logement_locatif_in Js.t -> calcul_allocation_logement_locatif Js.t) Js.callback =
|
||||
Js.wrap_callback calcul_allocation_logement_locatif
|
||||
|
||||
method calculAidePersonnaliseeLogement : (calcul_aide_personnalisee_logement_in Js.t -> calcul_aide_personnalisee_logement Js.t) Js.callback =
|
||||
Js.wrap_callback calcul_aide_personnalisee_logement
|
||||
|
||||
method eligibilitePrimeDeDemenagement : (eligibilite_prime_de_demenagement_in Js.t -> eligibilite_prime_de_demenagement Js.t) Js.callback =
|
||||
Js.wrap_callback eligibilite_prime_de_demenagement
|
||||
@ -4659,6 +4722,9 @@ let _ =
|
||||
method eligibiliteAidePersonnaliseeLogement : (eligibilite_aide_personnalisee_logement_in Js.t -> eligibilite_aide_personnalisee_logement Js.t) Js.callback =
|
||||
Js.wrap_callback eligibilite_aide_personnalisee_logement
|
||||
|
||||
method calculAllocationLogement : (calcul_allocation_logement_in Js.t -> calcul_allocation_logement Js.t) Js.callback =
|
||||
Js.wrap_callback calcul_allocation_logement
|
||||
|
||||
method calculetteAidesAuLogement : (calculette_aides_au_logement_in Js.t -> calculette_aides_au_logement Js.t) Js.callback =
|
||||
Js.wrap_callback calculette_aides_au_logement
|
||||
|
||||
|
461
french_law/ocaml/law_source/allocations_familiales.ml
generated
461
french_law/ocaml/law_source/allocations_familiales.ml
generated
@ -508,6 +508,23 @@ let verification_age_superieur_a (verification_age_superieur_a_in: VerificationA
|
||||
let smic (smic_in: SmicIn.t) : Smic.t =
|
||||
let date_courante_: date = smic_in.SmicIn.date_courante_in in
|
||||
let residence_: Collectivite.t = smic_in.SmicIn.residence_in in
|
||||
let _: unit = if (
|
||||
try
|
||||
(o_gte_dat_dat date_courante_
|
||||
(date_of_numbers (2019) (1) (1)))
|
||||
with
|
||||
EmptyError -> (raise (NoValueProvided
|
||||
{filename = "examples/allocations_familiales/../smic/smic.catala_fr";
|
||||
start_line=16; start_column=13;
|
||||
end_line=16; end_column=42;
|
||||
law_headings=["Prologue";
|
||||
"Montant du salaire minimum de croissance"]})))
|
||||
then () else
|
||||
raise (AssertionFailed {filename = "examples/allocations_familiales/../smic/smic.catala_fr";
|
||||
start_line=16; start_column=13;
|
||||
end_line=16; end_column=42;
|
||||
law_headings=["Prologue";
|
||||
"Montant du salaire minimum de croissance"]}) in
|
||||
let brut_horaire_: money = (log_variable_definition
|
||||
["Smic"; "brut_horaire"] (embed_money) (
|
||||
try
|
||||
@ -959,27 +976,25 @@ let smic (smic_in: SmicIn.t) : Smic.t =
|
||||
{filename = "examples/allocations_familiales/../smic/smic.catala_fr";
|
||||
start_line=11; start_column=12; end_line=11; end_column=24;
|
||||
law_headings=["Prologue"; "Montant du salaire minimum de croissance"]})))) in
|
||||
let _: unit = if (
|
||||
try
|
||||
(o_gte_dat_dat date_courante_
|
||||
(date_of_numbers (2019) (1) (1)))
|
||||
with
|
||||
EmptyError -> (raise (NoValueProvided
|
||||
{filename = "examples/allocations_familiales/../smic/smic.catala_fr";
|
||||
start_line=16; start_column=13;
|
||||
end_line=16; end_column=42;
|
||||
law_headings=["Prologue";
|
||||
"Montant du salaire minimum de croissance"]})))
|
||||
then () else
|
||||
raise (AssertionFailed {filename = "examples/allocations_familiales/../smic/smic.catala_fr";
|
||||
start_line=16; start_column=13;
|
||||
end_line=16; end_column=42;
|
||||
law_headings=["Prologue";
|
||||
"Montant du salaire minimum de croissance"]}) in
|
||||
{Smic.brut_horaire = brut_horaire_}
|
||||
|
||||
let base_mensuelle_allocations_familiales (base_mensuelle_allocations_familiales_in: BaseMensuelleAllocationsFamilialesIn.t) : BaseMensuelleAllocationsFamiliales.t =
|
||||
let date_courante_: date = base_mensuelle_allocations_familiales_in.BaseMensuelleAllocationsFamilialesIn.date_courante_in in
|
||||
let _: unit = if (
|
||||
try
|
||||
(o_gte_dat_dat date_courante_
|
||||
(date_of_numbers (2019) (4) (1)))
|
||||
with
|
||||
EmptyError -> (raise (NoValueProvided
|
||||
{filename = "examples/allocations_familiales/../base_mensuelle_allocations_familiales/bmaf.catala_fr";
|
||||
start_line=10; start_column=13;
|
||||
end_line=10; end_column=42;
|
||||
law_headings=["Montant de la base mensuelle des allocations familiales"]})))
|
||||
then () else
|
||||
raise (AssertionFailed {filename = "examples/allocations_familiales/../base_mensuelle_allocations_familiales/bmaf.catala_fr";
|
||||
start_line=10; start_column=13;
|
||||
end_line=10; end_column=42;
|
||||
law_headings=["Montant de la base mensuelle des allocations familiales"]}) in
|
||||
let montant_: money = (log_variable_definition
|
||||
["BaseMensuelleAllocationsFamiliales"; "montant"] (embed_money) (
|
||||
try
|
||||
@ -1046,33 +1061,34 @@ let base_mensuelle_allocations_familiales (base_mensuelle_allocations_familiales
|
||||
(fun (_: unit) -> (log_decision_taken
|
||||
{filename = "examples/allocations_familiales/../base_mensuelle_allocations_familiales/bmaf.catala_fr";
|
||||
start_line=86; start_column=5;
|
||||
end_line=86; end_column=34;
|
||||
end_line=87; end_column=33;
|
||||
law_headings=["Instruction interministérielle n°DSS/2B/2022/82 du 28 mars 2022 relative à la revalorisation au 1er avril 2022 des prestations familiales servies en métropole, en Guadeloupe, en Guyane, en Martinique, à la Réunion, à Saint-Barthélemy, à Saint-Martin et dans le département de Mayotte";
|
||||
"Montant de la base mensuelle des allocations familiales"]}
|
||||
(o_and
|
||||
(o_gte_dat_dat date_courante_
|
||||
(date_of_numbers (2022) (4) (1)))
|
||||
(o_lt_dat_dat date_courante_
|
||||
(date_of_numbers (2023) (4) (1))))))
|
||||
(fun (_: unit) -> money_of_cents_string "42228"));
|
||||
(fun (_: unit) ->
|
||||
handle_default
|
||||
{filename = ""; start_line=0; start_column=1;
|
||||
end_line=0; end_column=1; law_headings=[]} ([||])
|
||||
(fun (_: unit) -> (log_decision_taken
|
||||
{filename = "examples/allocations_familiales/../base_mensuelle_allocations_familiales/bmaf.catala_fr";
|
||||
start_line=106; start_column=5;
|
||||
end_line=106; end_column=34;
|
||||
law_headings=["Instruction interministérielle N° DSS/2B/2023/41 du 24 mars 2023 relative à la revalorisation au 1er avril 2023 des prestations familiales servies en métropole, en Guadeloupe, en Guyane, en Martinique, à la Réunion, à Saint-Barthélemy, à Saint-Martin et dans le département de Mayotte";
|
||||
"Montant de la base mensuelle des allocations familiales"]}
|
||||
(o_gte_dat_dat date_courante_
|
||||
(date_of_numbers (2022) (4) (1)))))
|
||||
(fun (_: unit) -> money_of_cents_string "42228"))|])
|
||||
(date_of_numbers (2023) (4) (1)))))
|
||||
(fun (_: unit) -> money_of_cents_string "44593"))|])
|
||||
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))
|
||||
with
|
||||
EmptyError -> (raise (NoValueProvided
|
||||
{filename = "examples/allocations_familiales/../base_mensuelle_allocations_familiales/bmaf.catala_fr";
|
||||
start_line=6; start_column=12; end_line=6; end_column=19;
|
||||
law_headings=["Montant de la base mensuelle des allocations familiales"]})))) in
|
||||
let _: unit = if (
|
||||
try
|
||||
(o_gte_dat_dat date_courante_
|
||||
(date_of_numbers (2019) (4) (1)))
|
||||
with
|
||||
EmptyError -> (raise (NoValueProvided
|
||||
{filename = "examples/allocations_familiales/../base_mensuelle_allocations_familiales/bmaf.catala_fr";
|
||||
start_line=10; start_column=13;
|
||||
end_line=10; end_column=42;
|
||||
law_headings=["Montant de la base mensuelle des allocations familiales"]})))
|
||||
then () else
|
||||
raise (AssertionFailed {filename = "examples/allocations_familiales/../base_mensuelle_allocations_familiales/bmaf.catala_fr";
|
||||
start_line=10; start_column=13;
|
||||
end_line=10; end_column=42;
|
||||
law_headings=["Montant de la base mensuelle des allocations familiales"]}) in
|
||||
{BaseMensuelleAllocationsFamiliales.montant = montant_}
|
||||
|
||||
let prestations_familiales (prestations_familiales_in: PrestationsFamilialesIn.t) : PrestationsFamiliales.t =
|
||||
@ -1154,8 +1170,8 @@ let prestations_familiales (prestations_familiales_in: PrestationsFamilialesIn.t
|
||||
end_line=0; end_column=1; law_headings=[]} ([||])
|
||||
(fun (_: unit) -> (log_decision_taken
|
||||
{filename = "examples/allocations_familiales/securite_sociale_L.catala_fr";
|
||||
start_line=357; start_column=5;
|
||||
end_line=362; end_column=30;
|
||||
start_line=382; start_column=5;
|
||||
end_line=387; end_column=30;
|
||||
law_headings=["Article L751-1";
|
||||
"Chapitre 1er : Généralités";
|
||||
"Titre 5 : Dispositions particulières à la Guadeloupe, à la Guyane, à la Martinique, à La Réunion, à Saint-Barthélemy et à Saint-Martin";
|
||||
@ -1244,8 +1260,8 @@ let prestations_familiales (prestations_familiales_in: PrestationsFamilialesIn.t
|
||||
end_line=0; end_column=1; law_headings=[]} ([||])
|
||||
(fun (_: unit) -> (log_decision_taken
|
||||
{filename = "examples/allocations_familiales/securite_sociale_L.catala_fr";
|
||||
start_line=68; start_column=5;
|
||||
end_line=71; end_column=56;
|
||||
start_line=73; start_column=5;
|
||||
end_line=76; end_column=56;
|
||||
law_headings=["Article L512-3";
|
||||
"Chapitre 2 : Champ d'application";
|
||||
"Titre 1 : Champ d'application - Généralités";
|
||||
@ -1341,8 +1357,8 @@ let prestations_familiales (prestations_familiales_in: PrestationsFamilialesIn.t
|
||||
(fun (_: unit) ->
|
||||
(log_decision_taken
|
||||
{filename = "examples/allocations_familiales/securite_sociale_L.catala_fr";
|
||||
start_line=60; start_column=5;
|
||||
end_line=62; end_column=62;
|
||||
start_line=65; start_column=5;
|
||||
end_line=67; end_column=62;
|
||||
law_headings=["Article L512-3";
|
||||
"Chapitre 2 : Champ d'application";
|
||||
"Titre 1 : Champ d'application - Généralités";
|
||||
@ -1371,8 +1387,8 @@ let prestations_familiales (prestations_familiales_in: PrestationsFamilialesIn.t
|
||||
(fun (_: unit) -> true))|])
|
||||
(fun (_: unit) -> (log_decision_taken
|
||||
{filename = "examples/allocations_familiales/securite_sociale_L.catala_fr";
|
||||
start_line=49; start_column=5;
|
||||
end_line=50; end_column=50;
|
||||
start_line=54; start_column=5;
|
||||
end_line=55; end_column=50;
|
||||
law_headings=["Article L512-3";
|
||||
"Chapitre 2 : Champ d'application";
|
||||
"Titre 1 : Champ d'application - Généralités";
|
||||
@ -1444,8 +1460,8 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t
|
||||
[||])
|
||||
(fun (_: unit) -> (log_decision_taken
|
||||
{filename = "examples/allocations_familiales/securite_sociale_L.catala_fr";
|
||||
start_line=215; start_column=5;
|
||||
end_line=215; end_column=70;
|
||||
start_line=233; start_column=5;
|
||||
end_line=233; end_column=70;
|
||||
law_headings=["Article L521-2";
|
||||
"Chapitre 1er : Allocations familiales";
|
||||
"Titre 2 : Prestations générales d'entretien";
|
||||
@ -1471,8 +1487,8 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t
|
||||
[||])
|
||||
(fun (_: unit) -> (log_decision_taken
|
||||
{filename = "examples/allocations_familiales/securite_sociale_L.catala_fr";
|
||||
start_line=254; start_column=5;
|
||||
end_line=255; end_column=56;
|
||||
start_line=271; start_column=5;
|
||||
end_line=272; end_column=56;
|
||||
law_headings=["Article L521-2";
|
||||
"Chapitre 1er : Allocations familiales";
|
||||
"Titre 2 : Prestations générales d'entretien";
|
||||
@ -1509,8 +1525,8 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t
|
||||
(fun (_: unit) ->
|
||||
(log_decision_taken
|
||||
{filename = "examples/allocations_familiales/securite_sociale_L.catala_fr";
|
||||
start_line=264; start_column=5;
|
||||
end_line=265; end_column=48;
|
||||
start_line=281; start_column=5;
|
||||
end_line=282; end_column=48;
|
||||
law_headings=["Article L521-2";
|
||||
"Chapitre 1er : Allocations familiales";
|
||||
"Titre 2 : Prestations générales d'entretien";
|
||||
@ -1534,8 +1550,8 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t
|
||||
PriseEnCompte.Complete ()))|])
|
||||
(fun (_: unit) -> (log_decision_taken
|
||||
{filename = "examples/allocations_familiales/securite_sociale_L.catala_fr";
|
||||
start_line=205; start_column=5;
|
||||
end_line=205; end_column=69;
|
||||
start_line=223; start_column=5;
|
||||
end_line=223; end_column=69;
|
||||
law_headings=["Article L521-2";
|
||||
"Chapitre 1er : Allocations familiales";
|
||||
"Titre 2 : Prestations générales d'entretien";
|
||||
@ -1557,8 +1573,8 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t
|
||||
(fun (_: unit) -> PriseEnCompte.Complete ()))|])
|
||||
(fun (_: unit) -> (log_decision_taken
|
||||
{filename = "examples/allocations_familiales/securite_sociale_L.catala_fr";
|
||||
start_line=185; start_column=5;
|
||||
end_line=185; end_column=60;
|
||||
start_line=203; start_column=5;
|
||||
end_line=203; end_column=60;
|
||||
law_headings=["Article L521-2";
|
||||
"Chapitre 1er : Allocations familiales";
|
||||
"Titre 2 : Prestations générales d'entretien";
|
||||
@ -1603,8 +1619,8 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t
|
||||
[||])
|
||||
(fun (_: unit) -> (log_decision_taken
|
||||
{filename = "examples/allocations_familiales/securite_sociale_L.catala_fr";
|
||||
start_line=259; start_column=5;
|
||||
end_line=260; end_column=56;
|
||||
start_line=276; start_column=5;
|
||||
end_line=277; end_column=56;
|
||||
law_headings=["Article L521-2";
|
||||
"Chapitre 1er : Allocations familiales";
|
||||
"Titre 2 : Prestations générales d'entretien";
|
||||
@ -1651,9 +1667,9 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t
|
||||
(fun (_: unit) ->
|
||||
(log_decision_taken
|
||||
{filename = "examples/allocations_familiales/securite_sociale_L.catala_fr";
|
||||
start_line=270;
|
||||
start_line=287;
|
||||
start_column=5;
|
||||
end_line=271; end_column=48;
|
||||
end_line=288; end_column=48;
|
||||
law_headings=["Article L521-2";
|
||||
"Chapitre 1er : Allocations familiales";
|
||||
"Titre 2 : Prestations générales d'entretien";
|
||||
@ -1679,8 +1695,8 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t
|
||||
(fun (_: unit) ->
|
||||
(log_decision_taken
|
||||
{filename = "examples/allocations_familiales/securite_sociale_L.catala_fr";
|
||||
start_line=219; start_column=5;
|
||||
end_line=219; end_column=70;
|
||||
start_line=237; start_column=5;
|
||||
end_line=237; end_column=70;
|
||||
law_headings=["Article L521-2";
|
||||
"Chapitre 1er : Allocations familiales";
|
||||
"Titre 2 : Prestations générales d'entretien";
|
||||
@ -1704,8 +1720,8 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t
|
||||
VersementAllocations.Normal ()))|])
|
||||
(fun (_: unit) -> (log_decision_taken
|
||||
{filename = "examples/allocations_familiales/securite_sociale_L.catala_fr";
|
||||
start_line=209; start_column=5;
|
||||
end_line=209; end_column=69;
|
||||
start_line=227; start_column=5;
|
||||
end_line=227; end_column=69;
|
||||
law_headings=["Article L521-2";
|
||||
"Chapitre 1er : Allocations familiales";
|
||||
"Titre 2 : Prestations générales d'entretien";
|
||||
@ -1728,8 +1744,8 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t
|
||||
VersementAllocations.Normal ()))|])
|
||||
(fun (_: unit) -> (log_decision_taken
|
||||
{filename = "examples/allocations_familiales/securite_sociale_L.catala_fr";
|
||||
start_line=189; start_column=5;
|
||||
end_line=189; end_column=60;
|
||||
start_line=207; start_column=5;
|
||||
end_line=207; end_column=60;
|
||||
law_headings=["Article L521-2";
|
||||
"Chapitre 1er : Allocations familiales";
|
||||
"Titre 2 : Prestations générales d'entretien";
|
||||
@ -1762,50 +1778,45 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t
|
||||
(handle_default
|
||||
{filename = ""; start_line=0; start_column=1;
|
||||
end_line=0; end_column=1; law_headings=[]} ([||])
|
||||
(fun (_: unit) -> true)
|
||||
(fun (_: unit) ->
|
||||
handle_default
|
||||
{filename = ""; start_line=0; start_column=1;
|
||||
end_line=0; end_column=1; law_headings=[]}
|
||||
([|(fun (_: unit) ->
|
||||
handle_default
|
||||
{filename = ""; start_line=0; start_column=1;
|
||||
end_line=0; end_column=1; law_headings=[]}
|
||||
([|(fun (_: unit) ->
|
||||
handle_default
|
||||
{filename = ""; start_line=0; start_column=1;
|
||||
end_line=0; end_column=1; law_headings=
|
||||
[]} ([||])
|
||||
(fun (_: unit) -> (log_decision_taken
|
||||
{filename = "examples/allocations_familiales/securite_sociale_D.catala_fr";
|
||||
start_line=294; start_column=14;
|
||||
end_line=294; end_column=44;
|
||||
law_headings=["Article D521-2";
|
||||
"Chapitre 1er : Allocations familiales";
|
||||
"Titre 2 : Prestations générales d'entretien";
|
||||
"Livre 5 : Prestations familiales et prestations assimilées";
|
||||
"Partie réglementaire - Décrets simples";
|
||||
"Code de la sécurité sociale"]}
|
||||
true))
|
||||
(fun (_: unit) -> integer_of_string "3"))|])
|
||||
(fun (_: unit) -> (log_decision_taken
|
||||
{filename = "examples/allocations_familiales/securite_sociale_R.catala_fr";
|
||||
start_line=64; start_column=14;
|
||||
end_line=64; end_column=44;
|
||||
law_headings=["Article R521-1";
|
||||
"Chapitre 1er : Allocations familiales";
|
||||
"Titre 2 : Prestations générales d'entretien";
|
||||
"Livre 5 : Prestations familiales et prestations assimilées";
|
||||
"Partie réglementaire - Décrets en Conseil d'Etat";
|
||||
"Code de la sécurité sociale"]}
|
||||
true)) (fun (_: unit) -> integer_of_string "3"))|])
|
||||
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))
|
||||
(fun (_: unit) -> (log_decision_taken
|
||||
{filename = "examples/allocations_familiales/securite_sociale_R.catala_fr";
|
||||
start_line=64; start_column=14; end_line=64; end_column=44;
|
||||
law_headings=["Article R521-1";
|
||||
"Chapitre 1er : Allocations familiales";
|
||||
"Titre 2 : Prestations générales d'entretien";
|
||||
"Livre 5 : Prestations familiales et prestations assimilées";
|
||||
"Partie réglementaire - Décrets en Conseil d'Etat";
|
||||
"Code de la sécurité sociale"]} true))
|
||||
(fun (_: unit) -> integer_of_string "3"))
|
||||
with
|
||||
EmptyError -> (raise (NoValueProvided
|
||||
{filename = "examples/allocations_familiales/prologue.catala_fr";
|
||||
start_line=144; start_column=11; end_line=144; end_column=41;
|
||||
law_headings=["Allocations familiales"; "Champs d'applications";
|
||||
"Prologue"]})))) in
|
||||
let nombre_enfants_alinea_2_l521_1_: integer = (log_variable_definition
|
||||
["AllocationsFamiliales"; "nombre_enfants_alinéa_2_l521_1"]
|
||||
(embed_integer) (
|
||||
try
|
||||
(handle_default
|
||||
{filename = ""; start_line=0; start_column=1;
|
||||
end_line=0; end_column=1; law_headings=[]} ([||])
|
||||
(fun (_: unit) -> (log_decision_taken
|
||||
{filename = "examples/allocations_familiales/securite_sociale_D.catala_fr";
|
||||
start_line=294; start_column=14; end_line=294; end_column=44;
|
||||
law_headings=["Article D521-2";
|
||||
"Chapitre 1er : Allocations familiales";
|
||||
"Titre 2 : Prestations générales d'entretien";
|
||||
"Livre 5 : Prestations familiales et prestations assimilées";
|
||||
"Partie réglementaire - Décrets simples";
|
||||
"Code de la sécurité sociale"]} true))
|
||||
(fun (_: unit) -> integer_of_string "3"))
|
||||
with
|
||||
EmptyError -> (raise (NoValueProvided
|
||||
{filename = "examples/allocations_familiales/prologue.catala_fr";
|
||||
start_line=145; start_column=11; end_line=145; end_column=41;
|
||||
law_headings=["Allocations familiales"; "Champs d'applications";
|
||||
"Prologue"]})))) in
|
||||
let result_: AllocationFamilialesAvril2008.t = (log_end_call
|
||||
["AllocationsFamiliales"; "version_avril_2008";
|
||||
"AllocationFamilialesAvril2008"] ((log_begin_call
|
||||
@ -1813,6 +1824,34 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t
|
||||
"AllocationFamilialesAvril2008"] allocation_familiales_avril2008)
|
||||
(()))) in
|
||||
let version_avril_2008_dot_age_minimum_alinea_1_l521_3_: duration = result_.AllocationFamilialesAvril2008.age_minimum_alinea_1_l521_3 in
|
||||
let _: unit = if (
|
||||
try
|
||||
(o_or personne_charge_effective_permanente_est_parent_
|
||||
(o_and
|
||||
(o_not
|
||||
personne_charge_effective_permanente_est_parent_)
|
||||
personne_charge_effective_permanente_remplit_titre__i_))
|
||||
with
|
||||
EmptyError -> (raise (NoValueProvided
|
||||
{filename = "examples/allocations_familiales/securite_sociale_L.catala_fr";
|
||||
start_line=249; start_column=5;
|
||||
end_line=253; end_column=6;
|
||||
law_headings=["Article L521-2";
|
||||
"Chapitre 1er : Allocations familiales";
|
||||
"Titre 2 : Prestations générales d'entretien";
|
||||
"Livre 5 : Prestations familiales et prestations assimilées";
|
||||
"Partie législative";
|
||||
"Code de la sécurité sociale"]})))
|
||||
then () else
|
||||
raise (AssertionFailed {filename = "examples/allocations_familiales/securite_sociale_L.catala_fr";
|
||||
start_line=249; start_column=5;
|
||||
end_line=253; end_column=6;
|
||||
law_headings=["Article L521-2";
|
||||
"Chapitre 1er : Allocations familiales";
|
||||
"Titre 2 : Prestations générales d'entretien";
|
||||
"Livre 5 : Prestations familiales et prestations assimilées";
|
||||
"Partie législative";
|
||||
"Code de la sécurité sociale"]}) in
|
||||
let bmaf_dot_date_courante_: date =
|
||||
try ((log_variable_definition
|
||||
["AllocationsFamiliales"; "bmaf.date_courante"] (embed_date)
|
||||
@ -1821,14 +1860,14 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t
|
||||
end_line=0; end_column=1; law_headings=[]} ([||])
|
||||
(fun (_: unit) -> (log_decision_taken
|
||||
{filename = "examples/allocations_familiales/prologue.catala_fr";
|
||||
start_line=155; start_column=14; end_line=155; end_column=32;
|
||||
start_line=156; start_column=14; end_line=156; end_column=32;
|
||||
law_headings=["Allocations familiales";
|
||||
"Champs d'applications"; "Prologue"]} true))
|
||||
(fun (_: unit) -> date_courante_))))
|
||||
with
|
||||
EmptyError -> (raise (NoValueProvided
|
||||
{filename = "examples/allocations_familiales/prologue.catala_fr";
|
||||
start_line=155; start_column=14; end_line=155; end_column=32;
|
||||
start_line=156; start_column=14; end_line=156; end_column=32;
|
||||
law_headings=["Allocations familiales"; "Champs d'applications";
|
||||
"Prologue"]})) in
|
||||
let result_: BaseMensuelleAllocationsFamiliales.t = (log_end_call
|
||||
@ -1848,14 +1887,14 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t
|
||||
end_line=0; end_column=1; law_headings=[]} ([||])
|
||||
(fun (_: unit) -> (log_decision_taken
|
||||
{filename = "examples/allocations_familiales/prologue.catala_fr";
|
||||
start_line=151; start_column=14; end_line=151; end_column=50;
|
||||
start_line=152; start_column=14; end_line=152; end_column=50;
|
||||
law_headings=["Allocations familiales";
|
||||
"Champs d'applications"; "Prologue"]} true))
|
||||
(fun (_: unit) -> date_courante_))))
|
||||
with
|
||||
EmptyError -> (raise (NoValueProvided
|
||||
{filename = "examples/allocations_familiales/prologue.catala_fr";
|
||||
start_line=151; start_column=14; end_line=151; end_column=50;
|
||||
start_line=152; start_column=14; end_line=152; end_column=50;
|
||||
law_headings=["Allocations familiales"; "Champs d'applications";
|
||||
"Prologue"]})) in
|
||||
let prestations_familiales_dot_residence_: Collectivite.t =
|
||||
@ -1867,14 +1906,14 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t
|
||||
end_line=0; end_column=1; law_headings=[]} ([||])
|
||||
(fun (_: unit) -> (log_decision_taken
|
||||
{filename = "examples/allocations_familiales/prologue.catala_fr";
|
||||
start_line=153; start_column=14; end_line=153; end_column=46;
|
||||
start_line=154; start_column=14; end_line=154; end_column=46;
|
||||
law_headings=["Allocations familiales";
|
||||
"Champs d'applications"; "Prologue"]} true))
|
||||
(fun (_: unit) -> residence_))))
|
||||
with
|
||||
EmptyError -> (raise (NoValueProvided
|
||||
{filename = "examples/allocations_familiales/prologue.catala_fr";
|
||||
start_line=153; start_column=14; end_line=153; end_column=46;
|
||||
start_line=154; start_column=14; end_line=154; end_column=46;
|
||||
law_headings=["Allocations familiales"; "Champs d'applications";
|
||||
"Prologue"]})) in
|
||||
let result_: PrestationsFamiliales.t = (log_end_call
|
||||
@ -1968,7 +2007,7 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t
|
||||
end_line=0; end_column=1; law_headings=[]} ([||])
|
||||
(fun (_: unit) -> (log_decision_taken
|
||||
{filename = "examples/allocations_familiales/securite_sociale_L.catala_fr";
|
||||
start_line=75; start_column=14; end_line=75; end_column=64;
|
||||
start_line=80; start_column=14; end_line=80; end_column=64;
|
||||
law_headings=["Article L512-3";
|
||||
"Chapitre 2 : Champ d'application";
|
||||
"Titre 1 : Champ d'application - Généralités";
|
||||
@ -2009,7 +2048,7 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t
|
||||
with
|
||||
EmptyError -> (raise (NoValueProvided
|
||||
{filename = "examples/allocations_familiales/prologue.catala_fr";
|
||||
start_line=145; start_column=11; end_line=145; end_column=33;
|
||||
start_line=146; start_column=11; end_line=146; end_column=33;
|
||||
law_headings=["Allocations familiales"; "Champs d'applications";
|
||||
"Prologue"]})))) in
|
||||
let plafond__i_i_d521_3_: money = (log_variable_definition
|
||||
@ -2144,7 +2183,7 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t
|
||||
with
|
||||
EmptyError -> (raise (NoValueProvided
|
||||
{filename = "examples/allocations_familiales/prologue.catala_fr";
|
||||
start_line=148; start_column=11; end_line=148; end_column=28;
|
||||
start_line=149; start_column=11; end_line=149; end_column=28;
|
||||
law_headings=["Allocations familiales"; "Champs d'applications";
|
||||
"Prologue"]})))) in
|
||||
let plafond__i_d521_3_: money = (log_variable_definition
|
||||
@ -2279,7 +2318,7 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t
|
||||
with
|
||||
EmptyError -> (raise (NoValueProvided
|
||||
{filename = "examples/allocations_familiales/prologue.catala_fr";
|
||||
start_line=147; start_column=11; end_line=147; end_column=27;
|
||||
start_line=148; start_column=11; end_line=148; end_column=27;
|
||||
law_headings=["Allocations familiales"; "Champs d'applications";
|
||||
"Prologue"]})))) in
|
||||
let droit_ouvert_complement_: bool = (log_variable_definition
|
||||
@ -2299,8 +2338,8 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t
|
||||
[||])
|
||||
(fun (_: unit) -> (log_decision_taken
|
||||
{filename = "examples/allocations_familiales/securite_sociale_L.catala_fr";
|
||||
start_line=429; start_column=5;
|
||||
end_line=430; end_column=71;
|
||||
start_line=462; start_column=5;
|
||||
end_line=463; end_column=71;
|
||||
law_headings=["Article L755-12";
|
||||
"Chapitre 5 : Prestations familiales et prestations assimilées";
|
||||
"Titre 5 : Dispositions particulières à la Guadeloupe, à la Guyane, à la Martinique, à La Réunion, à Saint-Barthélemy et à Saint-Martin";
|
||||
@ -2350,8 +2389,8 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t
|
||||
[]} ([||])
|
||||
(fun (_: unit) -> (log_decision_taken
|
||||
{filename = "examples/allocations_familiales/securite_sociale_L.catala_fr";
|
||||
start_line=423; start_column=6;
|
||||
end_line=424; end_column=72;
|
||||
start_line=456; start_column=6;
|
||||
end_line=457; end_column=72;
|
||||
law_headings=["Article L755-12";
|
||||
"Chapitre 5 : Prestations familiales et prestations assimilées";
|
||||
"Titre 5 : Dispositions particulières à la Guadeloupe, à la Guyane, à la Martinique, à La Réunion, à Saint-Barthélemy et à Saint-Martin";
|
||||
@ -2367,8 +2406,8 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t
|
||||
(fun (_: unit) -> false))|])
|
||||
(fun (_: unit) -> (log_decision_taken
|
||||
{filename = "examples/allocations_familiales/securite_sociale_L.catala_fr";
|
||||
start_line=119; start_column=5;
|
||||
end_line=126; end_column=59;
|
||||
start_line=137; start_column=5;
|
||||
end_line=144; end_column=59;
|
||||
law_headings=["Article L521-1";
|
||||
"Chapitre 1er : Allocations familiales";
|
||||
"Titre 2 : Prestations générales d'entretien";
|
||||
@ -2377,7 +2416,7 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t
|
||||
"Code de la sécurité sociale"]}
|
||||
(o_and
|
||||
(o_gte_int_int (o_length enfants_a_charge_)
|
||||
nombre_enfants_alinea_2_l521_3_)
|
||||
nombre_enfants_alinea_2_l521_1_)
|
||||
(o_and
|
||||
(o_lt_dur_dur
|
||||
(o_sub_dat_dat
|
||||
@ -2475,8 +2514,8 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t
|
||||
[]} ([||])
|
||||
(fun (_: unit) -> (log_decision_taken
|
||||
{filename = "examples/allocations_familiales/decrets_divers.catala_fr";
|
||||
start_line=431; start_column=5;
|
||||
end_line=431; end_column=67;
|
||||
start_line=433; start_column=5;
|
||||
end_line=433; end_column=67;
|
||||
law_headings=["Annexe";
|
||||
"Décret n°2002-423 du 29 mars 2002 relatif aux prestations familiales à Mayotte";
|
||||
"Dispositions spéciales relatives à Mayotte"]}
|
||||
@ -2504,8 +2543,8 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t
|
||||
[]} ([||])
|
||||
(fun (_: unit) -> (log_decision_taken
|
||||
{filename = "examples/allocations_familiales/decrets_divers.catala_fr";
|
||||
start_line=439; start_column=5;
|
||||
end_line=439; end_column=67;
|
||||
start_line=441; start_column=5;
|
||||
end_line=441; end_column=67;
|
||||
law_headings=["Annexe";
|
||||
"Décret n°2002-423 du 29 mars 2002 relatif aux prestations familiales à Mayotte";
|
||||
"Dispositions spéciales relatives à Mayotte"]}
|
||||
@ -2533,8 +2572,8 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t
|
||||
[]} ([||])
|
||||
(fun (_: unit) -> (log_decision_taken
|
||||
{filename = "examples/allocations_familiales/decrets_divers.catala_fr";
|
||||
start_line=447; start_column=5;
|
||||
end_line=447; end_column=67;
|
||||
start_line=449; start_column=5;
|
||||
end_line=449; end_column=67;
|
||||
law_headings=["Annexe";
|
||||
"Décret n°2002-423 du 29 mars 2002 relatif aux prestations familiales à Mayotte";
|
||||
"Dispositions spéciales relatives à Mayotte"]}
|
||||
@ -2562,8 +2601,8 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t
|
||||
[]} ([||])
|
||||
(fun (_: unit) -> (log_decision_taken
|
||||
{filename = "examples/allocations_familiales/decrets_divers.catala_fr";
|
||||
start_line=455; start_column=5;
|
||||
end_line=455; end_column=67;
|
||||
start_line=457; start_column=5;
|
||||
end_line=457; end_column=67;
|
||||
law_headings=["Annexe";
|
||||
"Décret n°2002-423 du 29 mars 2002 relatif aux prestations familiales à Mayotte";
|
||||
"Dispositions spéciales relatives à Mayotte"]}
|
||||
@ -2591,8 +2630,8 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t
|
||||
[]} ([||])
|
||||
(fun (_: unit) -> (log_decision_taken
|
||||
{filename = "examples/allocations_familiales/decrets_divers.catala_fr";
|
||||
start_line=463; start_column=5;
|
||||
end_line=463; end_column=67;
|
||||
start_line=465; start_column=5;
|
||||
end_line=465; end_column=67;
|
||||
law_headings=["Annexe";
|
||||
"Décret n°2002-423 du 29 mars 2002 relatif aux prestations familiales à Mayotte";
|
||||
"Dispositions spéciales relatives à Mayotte"]}
|
||||
@ -2620,8 +2659,8 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t
|
||||
[]} ([||])
|
||||
(fun (_: unit) -> (log_decision_taken
|
||||
{filename = "examples/allocations_familiales/decrets_divers.catala_fr";
|
||||
start_line=471; start_column=5;
|
||||
end_line=471; end_column=67;
|
||||
start_line=473; start_column=5;
|
||||
end_line=473; end_column=67;
|
||||
law_headings=["Annexe";
|
||||
"Décret n°2002-423 du 29 mars 2002 relatif aux prestations familiales à Mayotte";
|
||||
"Dispositions spéciales relatives à Mayotte"]}
|
||||
@ -2649,8 +2688,8 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t
|
||||
[]} ([||])
|
||||
(fun (_: unit) -> (log_decision_taken
|
||||
{filename = "examples/allocations_familiales/decrets_divers.catala_fr";
|
||||
start_line=479; start_column=5;
|
||||
end_line=479; end_column=67;
|
||||
start_line=481; start_column=5;
|
||||
end_line=481; end_column=67;
|
||||
law_headings=["Annexe";
|
||||
"Décret n°2002-423 du 29 mars 2002 relatif aux prestations familiales à Mayotte";
|
||||
"Dispositions spéciales relatives à Mayotte"]}
|
||||
@ -2678,8 +2717,8 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t
|
||||
[]} ([||])
|
||||
(fun (_: unit) -> (log_decision_taken
|
||||
{filename = "examples/allocations_familiales/decrets_divers.catala_fr";
|
||||
start_line=487; start_column=5;
|
||||
end_line=487; end_column=67;
|
||||
start_line=489; start_column=5;
|
||||
end_line=489; end_column=67;
|
||||
law_headings=["Annexe";
|
||||
"Décret n°2002-423 du 29 mars 2002 relatif aux prestations familiales à Mayotte";
|
||||
"Dispositions spéciales relatives à Mayotte"]}
|
||||
@ -2707,8 +2746,8 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t
|
||||
[]} ([||])
|
||||
(fun (_: unit) -> (log_decision_taken
|
||||
{filename = "examples/allocations_familiales/decrets_divers.catala_fr";
|
||||
start_line=495; start_column=5;
|
||||
end_line=495; end_column=67;
|
||||
start_line=497; start_column=5;
|
||||
end_line=497; end_column=67;
|
||||
law_headings=["Annexe";
|
||||
"Décret n°2002-423 du 29 mars 2002 relatif aux prestations familiales à Mayotte";
|
||||
"Dispositions spéciales relatives à Mayotte"]}
|
||||
@ -2736,8 +2775,8 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t
|
||||
[]} ([||])
|
||||
(fun (_: unit) -> (log_decision_taken
|
||||
{filename = "examples/allocations_familiales/decrets_divers.catala_fr";
|
||||
start_line=503; start_column=5;
|
||||
end_line=503; end_column=67;
|
||||
start_line=505; start_column=5;
|
||||
end_line=505; end_column=67;
|
||||
law_headings=["Annexe";
|
||||
"Décret n°2002-423 du 29 mars 2002 relatif aux prestations familiales à Mayotte";
|
||||
"Dispositions spéciales relatives à Mayotte"]}
|
||||
@ -2875,8 +2914,8 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t
|
||||
law_headings=[]} ([||])
|
||||
(fun (_: unit) -> (log_decision_taken
|
||||
{filename = "examples/allocations_familiales/decrets_divers.catala_fr";
|
||||
start_line=251; start_column=5;
|
||||
end_line=252; end_column=53;
|
||||
start_line=253; start_column=5;
|
||||
end_line=254; end_column=53;
|
||||
law_headings=["Annexe";
|
||||
"Décret n°2002-423 du 29 mars 2002 relatif aux prestations familiales à Mayotte";
|
||||
"Dispositions spéciales relatives à Mayotte"]}
|
||||
@ -2909,8 +2948,8 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t
|
||||
law_headings=[]} ([||])
|
||||
(fun (_: unit) -> (log_decision_taken
|
||||
{filename = "examples/allocations_familiales/decrets_divers.catala_fr";
|
||||
start_line=260; start_column=5;
|
||||
end_line=261; end_column=53;
|
||||
start_line=262; start_column=5;
|
||||
end_line=263; end_column=53;
|
||||
law_headings=["Annexe";
|
||||
"Décret n°2002-423 du 29 mars 2002 relatif aux prestations familiales à Mayotte";
|
||||
"Dispositions spéciales relatives à Mayotte"]}
|
||||
@ -2943,8 +2982,8 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t
|
||||
law_headings=[]} ([||])
|
||||
(fun (_: unit) -> (log_decision_taken
|
||||
{filename = "examples/allocations_familiales/decrets_divers.catala_fr";
|
||||
start_line=269; start_column=5;
|
||||
end_line=270; end_column=53;
|
||||
start_line=271; start_column=5;
|
||||
end_line=272; end_column=53;
|
||||
law_headings=["Annexe";
|
||||
"Décret n°2002-423 du 29 mars 2002 relatif aux prestations familiales à Mayotte";
|
||||
"Dispositions spéciales relatives à Mayotte"]}
|
||||
@ -2977,8 +3016,8 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t
|
||||
law_headings=[]} ([||])
|
||||
(fun (_: unit) -> (log_decision_taken
|
||||
{filename = "examples/allocations_familiales/decrets_divers.catala_fr";
|
||||
start_line=278; start_column=5;
|
||||
end_line=279; end_column=53;
|
||||
start_line=280; start_column=5;
|
||||
end_line=281; end_column=53;
|
||||
law_headings=["Annexe";
|
||||
"Décret n°2002-423 du 29 mars 2002 relatif aux prestations familiales à Mayotte";
|
||||
"Dispositions spéciales relatives à Mayotte"]}
|
||||
@ -3011,8 +3050,8 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t
|
||||
law_headings=[]} ([||])
|
||||
(fun (_: unit) -> (log_decision_taken
|
||||
{filename = "examples/allocations_familiales/decrets_divers.catala_fr";
|
||||
start_line=287; start_column=5;
|
||||
end_line=288; end_column=53;
|
||||
start_line=289; start_column=5;
|
||||
end_line=290; end_column=53;
|
||||
law_headings=["Annexe";
|
||||
"Décret n°2002-423 du 29 mars 2002 relatif aux prestations familiales à Mayotte";
|
||||
"Dispositions spéciales relatives à Mayotte"]}
|
||||
@ -3045,8 +3084,8 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t
|
||||
law_headings=[]} ([||])
|
||||
(fun (_: unit) -> (log_decision_taken
|
||||
{filename = "examples/allocations_familiales/decrets_divers.catala_fr";
|
||||
start_line=296; start_column=5;
|
||||
end_line=297; end_column=53;
|
||||
start_line=298; start_column=5;
|
||||
end_line=299; end_column=53;
|
||||
law_headings=["Annexe";
|
||||
"Décret n°2002-423 du 29 mars 2002 relatif aux prestations familiales à Mayotte";
|
||||
"Dispositions spéciales relatives à Mayotte"]}
|
||||
@ -3079,8 +3118,8 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t
|
||||
law_headings=[]} ([||])
|
||||
(fun (_: unit) -> (log_decision_taken
|
||||
{filename = "examples/allocations_familiales/decrets_divers.catala_fr";
|
||||
start_line=305; start_column=5;
|
||||
end_line=306; end_column=53;
|
||||
start_line=307; start_column=5;
|
||||
end_line=308; end_column=53;
|
||||
law_headings=["Annexe";
|
||||
"Décret n°2002-423 du 29 mars 2002 relatif aux prestations familiales à Mayotte";
|
||||
"Dispositions spéciales relatives à Mayotte"]}
|
||||
@ -3113,8 +3152,8 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t
|
||||
law_headings=[]} ([||])
|
||||
(fun (_: unit) -> (log_decision_taken
|
||||
{filename = "examples/allocations_familiales/decrets_divers.catala_fr";
|
||||
start_line=314; start_column=5;
|
||||
end_line=315; end_column=53;
|
||||
start_line=316; start_column=5;
|
||||
end_line=317; end_column=53;
|
||||
law_headings=["Annexe";
|
||||
"Décret n°2002-423 du 29 mars 2002 relatif aux prestations familiales à Mayotte";
|
||||
"Dispositions spéciales relatives à Mayotte"]}
|
||||
@ -3147,8 +3186,8 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t
|
||||
law_headings=[]} ([||])
|
||||
(fun (_: unit) -> (log_decision_taken
|
||||
{filename = "examples/allocations_familiales/decrets_divers.catala_fr";
|
||||
start_line=323; start_column=5;
|
||||
end_line=324; end_column=53;
|
||||
start_line=325; start_column=5;
|
||||
end_line=326; end_column=53;
|
||||
law_headings=["Annexe";
|
||||
"Décret n°2002-423 du 29 mars 2002 relatif aux prestations familiales à Mayotte";
|
||||
"Dispositions spéciales relatives à Mayotte"]}
|
||||
@ -3181,8 +3220,8 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t
|
||||
law_headings=[]} ([||])
|
||||
(fun (_: unit) -> (log_decision_taken
|
||||
{filename = "examples/allocations_familiales/decrets_divers.catala_fr";
|
||||
start_line=332; start_column=5;
|
||||
end_line=333; end_column=53;
|
||||
start_line=334; start_column=5;
|
||||
end_line=335; end_column=53;
|
||||
law_headings=["Annexe";
|
||||
"Décret n°2002-423 du 29 mars 2002 relatif aux prestations familiales à Mayotte";
|
||||
"Dispositions spéciales relatives à Mayotte"]}
|
||||
@ -3215,8 +3254,8 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t
|
||||
law_headings=[]} ([||])
|
||||
(fun (_: unit) -> (log_decision_taken
|
||||
{filename = "examples/allocations_familiales/decrets_divers.catala_fr";
|
||||
start_line=341; start_column=5;
|
||||
end_line=341; end_column=49;
|
||||
start_line=343; start_column=5;
|
||||
end_line=343; end_column=49;
|
||||
law_headings=["Annexe";
|
||||
"Décret n°2002-423 du 29 mars 2002 relatif aux prestations familiales à Mayotte";
|
||||
"Dispositions spéciales relatives à Mayotte"]}
|
||||
@ -3257,8 +3296,8 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t
|
||||
end_line=0; end_column=1; law_headings=[]} ([||])
|
||||
(fun (_: unit) -> (log_decision_taken
|
||||
{filename = "examples/allocations_familiales/securite_sociale_D.catala_fr";
|
||||
start_line=365; start_column=5;
|
||||
end_line=366; end_column=71;
|
||||
start_line=364; start_column=5;
|
||||
end_line=365; end_column=71;
|
||||
law_headings=["Article D755-5";
|
||||
"Chapitre 5 : Prestations familiales et prestations assimilées";
|
||||
"Titre 5 : Départements d'outre-mer";
|
||||
@ -3276,7 +3315,7 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t
|
||||
(decimal_of_string "0.0588")))|])
|
||||
(fun (_: unit) -> (log_decision_taken
|
||||
{filename = "examples/allocations_familiales/securite_sociale_D.catala_fr";
|
||||
start_line=362; start_column=29; end_line=362; end_column=64;
|
||||
start_line=361; start_column=29; end_line=361; end_column=64;
|
||||
law_headings=["Article D755-5";
|
||||
"Chapitre 5 : Prestations familiales et prestations assimilées";
|
||||
"Titre 5 : Départements d'outre-mer";
|
||||
@ -3343,8 +3382,8 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t
|
||||
(fun (_: unit) -> true))|])
|
||||
(fun (_: unit) -> (log_decision_taken
|
||||
{filename = "examples/allocations_familiales/securite_sociale_L.catala_fr";
|
||||
start_line=409; start_column=5;
|
||||
end_line=410; end_column=72;
|
||||
start_line=442; start_column=5;
|
||||
end_line=443; end_column=72;
|
||||
law_headings=["Article L755-12";
|
||||
"Chapitre 5 : Prestations familiales et prestations assimilées";
|
||||
"Titre 5 : Dispositions particulières à la Guadeloupe, à la Guyane, à la Martinique, à La Réunion, à Saint-Barthélemy et à Saint-Martin";
|
||||
@ -3362,8 +3401,8 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t
|
||||
(fun (_: unit) -> raise EmptyError)))|])
|
||||
(fun (_: unit) -> (log_decision_taken
|
||||
{filename = "examples/allocations_familiales/securite_sociale_L.catala_fr";
|
||||
start_line=101; start_column=5;
|
||||
end_line=101; end_column=70;
|
||||
start_line=119; start_column=5;
|
||||
end_line=119; end_column=70;
|
||||
law_headings=["Article L521-1";
|
||||
"Chapitre 1er : Allocations familiales";
|
||||
"Titre 2 : Prestations générales d'entretien";
|
||||
@ -3404,8 +3443,8 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t
|
||||
[]} ([||])
|
||||
(fun (_: unit) -> (log_decision_taken
|
||||
{filename = "examples/allocations_familiales/securite_sociale_L.catala_fr";
|
||||
start_line=315; start_column=5;
|
||||
end_line=318; end_column=21;
|
||||
start_line=340; start_column=5;
|
||||
end_line=343; end_column=21;
|
||||
law_headings=["Article L521-3";
|
||||
"Chapitre 1er : Allocations familiales";
|
||||
"Titre 2 : Prestations générales d'entretien";
|
||||
@ -3439,8 +3478,8 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t
|
||||
(fun (_: unit) -> true))|])
|
||||
(fun (_: unit) -> (log_decision_taken
|
||||
{filename = "examples/allocations_familiales/securite_sociale_L.catala_fr";
|
||||
start_line=300; start_column=5;
|
||||
end_line=302; end_column=21;
|
||||
start_line=325; start_column=5;
|
||||
end_line=327; end_column=21;
|
||||
law_headings=["Article L521-3";
|
||||
"Chapitre 1er : Allocations familiales";
|
||||
"Titre 2 : Prestations générales d'entretien";
|
||||
@ -3811,8 +3850,8 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t
|
||||
law_headings=[]} ([||])
|
||||
(fun (_: unit) -> (log_decision_taken
|
||||
{filename = "examples/allocations_familiales/decrets_divers.catala_fr";
|
||||
start_line=350; start_column=5;
|
||||
end_line=350; end_column=67;
|
||||
start_line=352; start_column=5;
|
||||
end_line=352; end_column=67;
|
||||
law_headings=["Annexe";
|
||||
"Décret n°2002-423 du 29 mars 2002 relatif aux prestations familiales à Mayotte";
|
||||
"Dispositions spéciales relatives à Mayotte"]}
|
||||
@ -3841,8 +3880,8 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t
|
||||
law_headings=[]} ([||])
|
||||
(fun (_: unit) -> (log_decision_taken
|
||||
{filename = "examples/allocations_familiales/decrets_divers.catala_fr";
|
||||
start_line=358; start_column=5;
|
||||
end_line=358; end_column=67;
|
||||
start_line=360; start_column=5;
|
||||
end_line=360; end_column=67;
|
||||
law_headings=["Annexe";
|
||||
"Décret n°2002-423 du 29 mars 2002 relatif aux prestations familiales à Mayotte";
|
||||
"Dispositions spéciales relatives à Mayotte"]}
|
||||
@ -3871,8 +3910,8 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t
|
||||
law_headings=[]} ([||])
|
||||
(fun (_: unit) -> (log_decision_taken
|
||||
{filename = "examples/allocations_familiales/decrets_divers.catala_fr";
|
||||
start_line=366; start_column=5;
|
||||
end_line=366; end_column=67;
|
||||
start_line=368; start_column=5;
|
||||
end_line=368; end_column=67;
|
||||
law_headings=["Annexe";
|
||||
"Décret n°2002-423 du 29 mars 2002 relatif aux prestations familiales à Mayotte";
|
||||
"Dispositions spéciales relatives à Mayotte"]}
|
||||
@ -3901,8 +3940,8 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t
|
||||
law_headings=[]} ([||])
|
||||
(fun (_: unit) -> (log_decision_taken
|
||||
{filename = "examples/allocations_familiales/decrets_divers.catala_fr";
|
||||
start_line=374; start_column=5;
|
||||
end_line=374; end_column=67;
|
||||
start_line=376; start_column=5;
|
||||
end_line=376; end_column=67;
|
||||
law_headings=["Annexe";
|
||||
"Décret n°2002-423 du 29 mars 2002 relatif aux prestations familiales à Mayotte";
|
||||
"Dispositions spéciales relatives à Mayotte"]}
|
||||
@ -3931,8 +3970,8 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t
|
||||
law_headings=[]} ([||])
|
||||
(fun (_: unit) -> (log_decision_taken
|
||||
{filename = "examples/allocations_familiales/decrets_divers.catala_fr";
|
||||
start_line=382; start_column=5;
|
||||
end_line=382; end_column=67;
|
||||
start_line=384; start_column=5;
|
||||
end_line=384; end_column=67;
|
||||
law_headings=["Annexe";
|
||||
"Décret n°2002-423 du 29 mars 2002 relatif aux prestations familiales à Mayotte";
|
||||
"Dispositions spéciales relatives à Mayotte"]}
|
||||
@ -3961,8 +4000,8 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t
|
||||
law_headings=[]} ([||])
|
||||
(fun (_: unit) -> (log_decision_taken
|
||||
{filename = "examples/allocations_familiales/decrets_divers.catala_fr";
|
||||
start_line=390; start_column=5;
|
||||
end_line=390; end_column=67;
|
||||
start_line=392; start_column=5;
|
||||
end_line=392; end_column=67;
|
||||
law_headings=["Annexe";
|
||||
"Décret n°2002-423 du 29 mars 2002 relatif aux prestations familiales à Mayotte";
|
||||
"Dispositions spéciales relatives à Mayotte"]}
|
||||
@ -3991,8 +4030,8 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t
|
||||
law_headings=[]} ([||])
|
||||
(fun (_: unit) -> (log_decision_taken
|
||||
{filename = "examples/allocations_familiales/decrets_divers.catala_fr";
|
||||
start_line=398; start_column=5;
|
||||
end_line=398; end_column=67;
|
||||
start_line=400; start_column=5;
|
||||
end_line=400; end_column=67;
|
||||
law_headings=["Annexe";
|
||||
"Décret n°2002-423 du 29 mars 2002 relatif aux prestations familiales à Mayotte";
|
||||
"Dispositions spéciales relatives à Mayotte"]}
|
||||
@ -4021,8 +4060,8 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t
|
||||
law_headings=[]} ([||])
|
||||
(fun (_: unit) -> (log_decision_taken
|
||||
{filename = "examples/allocations_familiales/decrets_divers.catala_fr";
|
||||
start_line=406; start_column=5;
|
||||
end_line=406; end_column=67;
|
||||
start_line=408; start_column=5;
|
||||
end_line=408; end_column=67;
|
||||
law_headings=["Annexe";
|
||||
"Décret n°2002-423 du 29 mars 2002 relatif aux prestations familiales à Mayotte";
|
||||
"Dispositions spéciales relatives à Mayotte"]}
|
||||
@ -4051,8 +4090,8 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t
|
||||
law_headings=[]} ([||])
|
||||
(fun (_: unit) -> (log_decision_taken
|
||||
{filename = "examples/allocations_familiales/decrets_divers.catala_fr";
|
||||
start_line=414; start_column=5;
|
||||
end_line=414; end_column=67;
|
||||
start_line=416; start_column=5;
|
||||
end_line=416; end_column=67;
|
||||
law_headings=["Annexe";
|
||||
"Décret n°2002-423 du 29 mars 2002 relatif aux prestations familiales à Mayotte";
|
||||
"Dispositions spéciales relatives à Mayotte"]}
|
||||
@ -4081,8 +4120,8 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t
|
||||
law_headings=[]} ([||])
|
||||
(fun (_: unit) -> (log_decision_taken
|
||||
{filename = "examples/allocations_familiales/decrets_divers.catala_fr";
|
||||
start_line=422; start_column=5;
|
||||
end_line=422; end_column=67;
|
||||
start_line=424; start_column=5;
|
||||
end_line=424; end_column=67;
|
||||
law_headings=["Annexe";
|
||||
"Décret n°2002-423 du 29 mars 2002 relatif aux prestations familiales à Mayotte";
|
||||
"Dispositions spéciales relatives à Mayotte"]}
|
||||
@ -4449,8 +4488,8 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t
|
||||
[]} ([||])
|
||||
(fun (_: unit) -> (log_decision_taken
|
||||
{filename = "examples/allocations_familiales/securite_sociale_D.catala_fr";
|
||||
start_line=356; start_column=5;
|
||||
end_line=357; end_column=69;
|
||||
start_line=355; start_column=5;
|
||||
end_line=356; end_column=69;
|
||||
law_headings=["Article D755-5";
|
||||
"Chapitre 5 : Prestations familiales et prestations assimilées";
|
||||
"Titre 5 : Départements d'outre-mer";
|
||||
@ -4529,8 +4568,8 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t
|
||||
law_headings=[]} ([||])
|
||||
(fun (_: unit) -> (log_decision_taken
|
||||
{filename = "examples/allocations_familiales/securite_sociale_D.catala_fr";
|
||||
start_line=379; start_column=5;
|
||||
end_line=383; end_column=55;
|
||||
start_line=378; start_column=5;
|
||||
end_line=382; end_column=55;
|
||||
law_headings=["Article D755-5";
|
||||
"Chapitre 5 : Prestations familiales et prestations assimilées";
|
||||
"Titre 5 : Départements d'outre-mer";
|
||||
@ -4579,8 +4618,8 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t
|
||||
law_headings=[]} ([||])
|
||||
(fun (_: unit) -> (log_decision_taken
|
||||
{filename = "examples/allocations_familiales/securite_sociale_D.catala_fr";
|
||||
start_line=389; start_column=5;
|
||||
end_line=392; end_column=56;
|
||||
start_line=388; start_column=5;
|
||||
end_line=391; end_column=56;
|
||||
law_headings=["Article D755-5";
|
||||
"Chapitre 5 : Prestations familiales et prestations assimilées";
|
||||
"Titre 5 : Départements d'outre-mer";
|
||||
@ -4959,34 +4998,6 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t
|
||||
start_line=91; start_column=12; end_line=91; end_column=25;
|
||||
law_headings=["Allocations familiales"; "Champs d'applications";
|
||||
"Prologue"]})))) in
|
||||
let _: unit = if (
|
||||
try
|
||||
(o_or personne_charge_effective_permanente_est_parent_
|
||||
(o_and
|
||||
(o_not
|
||||
personne_charge_effective_permanente_est_parent_)
|
||||
personne_charge_effective_permanente_remplit_titre__i_))
|
||||
with
|
||||
EmptyError -> (raise (NoValueProvided
|
||||
{filename = "examples/allocations_familiales/securite_sociale_L.catala_fr";
|
||||
start_line=231; start_column=5;
|
||||
end_line=235; end_column=6;
|
||||
law_headings=["Article L521-2";
|
||||
"Chapitre 1er : Allocations familiales";
|
||||
"Titre 2 : Prestations générales d'entretien";
|
||||
"Livre 5 : Prestations familiales et prestations assimilées";
|
||||
"Partie législative";
|
||||
"Code de la sécurité sociale"]})))
|
||||
then () else
|
||||
raise (AssertionFailed {filename = "examples/allocations_familiales/securite_sociale_L.catala_fr";
|
||||
start_line=231; start_column=5;
|
||||
end_line=235; end_column=6;
|
||||
law_headings=["Article L521-2";
|
||||
"Chapitre 1er : Allocations familiales";
|
||||
"Titre 2 : Prestations générales d'entretien";
|
||||
"Livre 5 : Prestations familiales et prestations assimilées";
|
||||
"Partie législative";
|
||||
"Code de la sécurité sociale"]}) in
|
||||
{AllocationsFamiliales.versement = versement_;
|
||||
AllocationsFamiliales.montant_verse = montant_verse_}
|
||||
|
||||
|
@ -62,7 +62,6 @@ def call_aides_logement() -> float:
|
||||
EnfantAPL(
|
||||
identifiant=1,
|
||||
etudes_apprentissage_stage_formation_pro_impossibilite_travail=False,
|
||||
beneficie_titre_personnel_aide_personnelle_logement=False,
|
||||
a_deja_ouvert_droit_aux_allocations_familiales=True,
|
||||
date_de_naissance=date(2015, 1, 1),
|
||||
remuneration_mensuelle=0,
|
||||
@ -75,7 +74,6 @@ def call_aides_logement() -> float:
|
||||
EnfantAPL(
|
||||
identifiant=2,
|
||||
etudes_apprentissage_stage_formation_pro_impossibilite_travail=False,
|
||||
beneficie_titre_personnel_aide_personnelle_logement=False,
|
||||
a_deja_ouvert_droit_aux_allocations_familiales=True,
|
||||
date_de_naissance=date(2016, 1, 1),
|
||||
remuneration_mensuelle=0,
|
||||
|
39224
french_law/python/src/aides_logement.py
generated
39224
french_law/python/src/aides_logement.py
generated
File diff suppressed because it is too large
Load Diff
2778
french_law/python/src/allocations_familiales.py
generated
2778
french_law/python/src/allocations_familiales.py
generated
File diff suppressed because it is too large
Load Diff
@ -66,7 +66,7 @@ class PersonneAChargeAPL(ABC):
|
||||
|
||||
|
||||
class EnfantAPL(PersonneAChargeAPL):
|
||||
def __init__(self, identifiant: int, beneficie_titre_personnel_aide_personnelle_logement: bool,
|
||||
def __init__(self, identifiant: int,
|
||||
a_deja_ouvert_droit_aux_allocations_familiales: bool,
|
||||
date_de_naissance: datetime.date,
|
||||
remuneration_mensuelle: int,
|
||||
@ -76,7 +76,6 @@ class EnfantAPL(PersonneAChargeAPL):
|
||||
nationalite: Nationalite,
|
||||
etudes_apprentissage_stage_formation_pro_impossibilite_travail: bool):
|
||||
self.identifiant = identifiant
|
||||
self.beneficie_titre_personnel_aide_personnelle_logement = beneficie_titre_personnel_aide_personnelle_logement
|
||||
self.a_deja_ouvert_droit_aux_allocations_familiales = a_deja_ouvert_droit_aux_allocations_familiales
|
||||
self.date_de_naissance = date_de_naissance,
|
||||
self.remuneration_mensuelle = remuneration_mensuelle
|
||||
@ -143,7 +142,11 @@ class InfosLogementFoyer(InfosSpecifiques):
|
||||
categorie_equivalence_loyer_d842_16: CategorieEquivalenceLoyerAllocationLogementFoyer_Code,
|
||||
conventionne_selon_regles_drom: bool,
|
||||
beneficiaire_aide_adulte_ou_enfant_handicapes: bool,
|
||||
logement_meuble_d842_2: bool):
|
||||
logement_est_chambre: bool,
|
||||
colocation: bool,
|
||||
logement_meuble_d842_2: bool,
|
||||
logement_foyer_jeunes_travailleurs: bool):
|
||||
self.logement_foyer_jeunes_travailleurs = logement_foyer_jeunes_travailleurs
|
||||
self.type = type
|
||||
self.remplit_conditions_r832_21 = remplit_conditions_r832_21
|
||||
self.conventionne_livre_III_titre_V_chap_III = conventionne_livre_III_titre_V_chap_III
|
||||
@ -154,6 +157,8 @@ class InfosLogementFoyer(InfosSpecifiques):
|
||||
self.conventionne_selon_regles_drom = conventionne_selon_regles_drom
|
||||
self.beneficiaire_aide_adulte_ou_enfant_handicapes = beneficiaire_aide_adulte_ou_enfant_handicapes
|
||||
self.logement_meuble_d842_2 = logement_meuble_d842_2
|
||||
self.logement_est_chambre = logement_est_chambre
|
||||
self.colocation = colocation
|
||||
|
||||
|
||||
class InfosAccessionPropriete(InfosSpecifiques):
|
||||
@ -258,6 +263,7 @@ def aides_logement(
|
||||
))
|
||||
) if isinstance(infos_specifiques, InfosLocation) else
|
||||
(LogementFoyer(
|
||||
logement_foyer_jeunes_travailleurs=infos_specifiques.logement_foyer_jeunes_travailleurs,
|
||||
type=TypeLogementFoyer(
|
||||
code=infos_specifiques.type, value=Unit()),
|
||||
conventionne_selon_regles_drom=infos_specifiques.conventionne_selon_regles_drom,
|
||||
@ -272,8 +278,9 @@ def aides_logement(
|
||||
infos_specifiques.redevance),
|
||||
categorie_equivalence_loyer_d842_16=CategorieEquivalenceLoyerAllocationLogementFoyer(
|
||||
code=infos_specifiques.categorie_equivalence_loyer_d842_16,
|
||||
value=Unit()
|
||||
)
|
||||
value=Unit()),
|
||||
logement_est_chambre=infos_specifiques.logement_est_chambre,
|
||||
colocation=infos_specifiques.colocation
|
||||
) if isinstance(infos_specifiques, InfosLogementFoyer) else
|
||||
(Proprietaire(
|
||||
mensualite_principale=money_of_units_int(
|
||||
@ -335,7 +342,6 @@ def aides_logement(
|
||||
etudes_apprentissage_stage_formation_pro_impossibilite_travail=personne_a_charge.etudes_apprentissage_stage_formation_pro_impossibilite_travail,
|
||||
identifiant=integer_of_int(
|
||||
personne_a_charge.identifiant),
|
||||
beneficie_titre_personnel_aide_personnelle_logement=personne_a_charge.beneficie_titre_personnel_aide_personnelle_logement,
|
||||
a_deja_ouvert_droit_aux_allocations_familiales=personne_a_charge.a_deja_ouvert_droit_aux_allocations_familiales,
|
||||
date_de_naissance=date_of_datetime(
|
||||
personne_a_charge.date_de_naissance[0]),
|
||||
|
@ -35,7 +35,7 @@ scope Money:
|
||||
$ catala Interpret -s Dec
|
||||
[WARNING] In scope "Int", the variable "i" is never used anywhere; maybe it's unnecessary?
|
||||
|
||||
┌─⯈ tests/test_arithmetic/bad/division_by_zero.catala_en:7.10-11:
|
||||
┌─⯈ tests/test_arithmetic/bad/division_by_zero.catala_en:7.11-7.12:
|
||||
└─┐
|
||||
7 │ context i content decimal
|
||||
│ ‾
|
||||
@ -43,7 +43,7 @@ $ catala Interpret -s Dec
|
||||
└─ with integers
|
||||
[WARNING] In scope "Dec", the variable "i" is never used anywhere; maybe it's unnecessary?
|
||||
|
||||
┌─⯈ tests/test_arithmetic/bad/division_by_zero.catala_en:17.10-11:
|
||||
┌─⯈ tests/test_arithmetic/bad/division_by_zero.catala_en:17.11-17.12:
|
||||
└──┐
|
||||
17 │ context i content decimal
|
||||
│ ‾
|
||||
@ -51,7 +51,7 @@ $ catala Interpret -s Dec
|
||||
└─ with decimals
|
||||
[WARNING] In scope "Money", the variable "i" is never used anywhere; maybe it's unnecessary?
|
||||
|
||||
┌─⯈ tests/test_arithmetic/bad/division_by_zero.catala_en:27.10-11:
|
||||
┌─⯈ tests/test_arithmetic/bad/division_by_zero.catala_en:27.11-27.12:
|
||||
└──┐
|
||||
27 │ context i content decimal
|
||||
│ ‾
|
||||
@ -60,7 +60,7 @@ $ catala Interpret -s Dec
|
||||
[ERROR] division by zero at runtime
|
||||
|
||||
The division operator:
|
||||
┌─⯈ tests/test_arithmetic/bad/division_by_zero.catala_en:20.22-29:
|
||||
┌─⯈ tests/test_arithmetic/bad/division_by_zero.catala_en:20.23-20.30:
|
||||
└──┐
|
||||
20 │ definition i equals 1. / 0.
|
||||
│ ‾‾‾‾‾‾‾
|
||||
@ -68,7 +68,7 @@ The division operator:
|
||||
└─ with decimals
|
||||
|
||||
The null denominator:
|
||||
┌─⯈ tests/test_arithmetic/bad/division_by_zero.catala_en:20.27-29:
|
||||
┌─⯈ tests/test_arithmetic/bad/division_by_zero.catala_en:20.28-20.30:
|
||||
└──┐
|
||||
20 │ definition i equals 1. / 0.
|
||||
│ ‾‾
|
||||
@ -81,7 +81,7 @@ The null denominator:
|
||||
$ catala Interpret -s Int
|
||||
[WARNING] In scope "Int", the variable "i" is never used anywhere; maybe it's unnecessary?
|
||||
|
||||
┌─⯈ tests/test_arithmetic/bad/division_by_zero.catala_en:7.10-11:
|
||||
┌─⯈ tests/test_arithmetic/bad/division_by_zero.catala_en:7.11-7.12:
|
||||
└─┐
|
||||
7 │ context i content decimal
|
||||
│ ‾
|
||||
@ -89,7 +89,7 @@ $ catala Interpret -s Int
|
||||
└─ with integers
|
||||
[WARNING] In scope "Dec", the variable "i" is never used anywhere; maybe it's unnecessary?
|
||||
|
||||
┌─⯈ tests/test_arithmetic/bad/division_by_zero.catala_en:17.10-11:
|
||||
┌─⯈ tests/test_arithmetic/bad/division_by_zero.catala_en:17.11-17.12:
|
||||
└──┐
|
||||
17 │ context i content decimal
|
||||
│ ‾
|
||||
@ -97,7 +97,7 @@ $ catala Interpret -s Int
|
||||
└─ with decimals
|
||||
[WARNING] In scope "Money", the variable "i" is never used anywhere; maybe it's unnecessary?
|
||||
|
||||
┌─⯈ tests/test_arithmetic/bad/division_by_zero.catala_en:27.10-11:
|
||||
┌─⯈ tests/test_arithmetic/bad/division_by_zero.catala_en:27.11-27.12:
|
||||
└──┐
|
||||
27 │ context i content decimal
|
||||
│ ‾
|
||||
@ -106,7 +106,7 @@ $ catala Interpret -s Int
|
||||
[ERROR] division by zero at runtime
|
||||
|
||||
The division operator:
|
||||
┌─⯈ tests/test_arithmetic/bad/division_by_zero.catala_en:10.22-27:
|
||||
┌─⯈ tests/test_arithmetic/bad/division_by_zero.catala_en:10.23-10.28:
|
||||
└──┐
|
||||
10 │ definition i equals 1 / 0
|
||||
│ ‾‾‾‾‾
|
||||
@ -114,7 +114,7 @@ The division operator:
|
||||
└─ with integers
|
||||
|
||||
The null denominator:
|
||||
┌─⯈ tests/test_arithmetic/bad/division_by_zero.catala_en:10.26-27:
|
||||
┌─⯈ tests/test_arithmetic/bad/division_by_zero.catala_en:10.27-10.28:
|
||||
└──┐
|
||||
10 │ definition i equals 1 / 0
|
||||
│ ‾
|
||||
@ -127,7 +127,7 @@ The null denominator:
|
||||
$ catala Interpret -s Money
|
||||
[WARNING] In scope "Int", the variable "i" is never used anywhere; maybe it's unnecessary?
|
||||
|
||||
┌─⯈ tests/test_arithmetic/bad/division_by_zero.catala_en:7.10-11:
|
||||
┌─⯈ tests/test_arithmetic/bad/division_by_zero.catala_en:7.11-7.12:
|
||||
└─┐
|
||||
7 │ context i content decimal
|
||||
│ ‾
|
||||
@ -135,7 +135,7 @@ $ catala Interpret -s Money
|
||||
└─ with integers
|
||||
[WARNING] In scope "Dec", the variable "i" is never used anywhere; maybe it's unnecessary?
|
||||
|
||||
┌─⯈ tests/test_arithmetic/bad/division_by_zero.catala_en:17.10-11:
|
||||
┌─⯈ tests/test_arithmetic/bad/division_by_zero.catala_en:17.11-17.12:
|
||||
└──┐
|
||||
17 │ context i content decimal
|
||||
│ ‾
|
||||
@ -143,7 +143,7 @@ $ catala Interpret -s Money
|
||||
└─ with decimals
|
||||
[WARNING] In scope "Money", the variable "i" is never used anywhere; maybe it's unnecessary?
|
||||
|
||||
┌─⯈ tests/test_arithmetic/bad/division_by_zero.catala_en:27.10-11:
|
||||
┌─⯈ tests/test_arithmetic/bad/division_by_zero.catala_en:27.11-27.12:
|
||||
└──┐
|
||||
27 │ context i content decimal
|
||||
│ ‾
|
||||
@ -152,7 +152,7 @@ $ catala Interpret -s Money
|
||||
[ERROR] division by zero at runtime
|
||||
|
||||
The division operator:
|
||||
┌─⯈ tests/test_arithmetic/bad/division_by_zero.catala_en:30.22-34:
|
||||
┌─⯈ tests/test_arithmetic/bad/division_by_zero.catala_en:30.23-30.35:
|
||||
└──┐
|
||||
30 │ definition i equals $10.0 / $0.0
|
||||
│ ‾‾‾‾‾‾‾‾‾‾‾‾
|
||||
@ -160,7 +160,7 @@ The division operator:
|
||||
└─ with money
|
||||
|
||||
The null denominator:
|
||||
┌─⯈ tests/test_arithmetic/bad/division_by_zero.catala_en:30.30-34:
|
||||
┌─⯈ tests/test_arithmetic/bad/division_by_zero.catala_en:30.31-30.35:
|
||||
└──┐
|
||||
30 │ definition i equals $10.0 / $0.0
|
||||
│ ‾‾‾‾
|
||||
|
@ -10,13 +10,13 @@ scope S1:
|
||||
$ catala typecheck -s S1
|
||||
[ERROR] Please add parentheses to explicit which of these operators should be applied first
|
||||
|
||||
┌─⯈ tests/test_arithmetic/bad/logical_prio.catala_en:6.27-30:
|
||||
┌─⯈ tests/test_arithmetic/bad/logical_prio.catala_en:6.28-6.31:
|
||||
└─┐
|
||||
6 │ definition o equals true and (false and true and true) or false
|
||||
│ ‾‾‾
|
||||
|
||||
|
||||
┌─⯈ tests/test_arithmetic/bad/logical_prio.catala_en:6.57-59:
|
||||
┌─⯈ tests/test_arithmetic/bad/logical_prio.catala_en:6.58-6.60:
|
||||
└─┐
|
||||
6 │ definition o equals true and (false and true and true) or false
|
||||
│ ‾‾
|
||||
|
@ -15,21 +15,21 @@ $ catala Interpret -s A
|
||||
[ERROR] I don't know how to apply operator >= on types integer and
|
||||
money
|
||||
|
||||
┌─⯈ tests/test_array/bad/fold_error.catala_en:10.49-51:
|
||||
┌─⯈ tests/test_array/bad/fold_error.catala_en:10.50-10.52:
|
||||
└──┐
|
||||
10 │ definition list_high_count equals number of (m >= $7) for m among list
|
||||
│ ‾‾
|
||||
└─ Article
|
||||
|
||||
Type integer coming from expression:
|
||||
┌─⯈ tests/test_array/bad/fold_error.catala_en:5.34-41:
|
||||
┌─⯈ tests/test_array/bad/fold_error.catala_en:5.35-5.42:
|
||||
└─┐
|
||||
5 │ context list content collection integer
|
||||
│ ‾‾‾‾‾‾‾
|
||||
└─ Article
|
||||
|
||||
Type money coming from expression:
|
||||
┌─⯈ tests/test_array/bad/fold_error.catala_en:10.52-54:
|
||||
┌─⯈ tests/test_array/bad/fold_error.catala_en:10.53-10.55:
|
||||
└──┐
|
||||
10 │ definition list_high_count equals number of (m >= $7) for m among list
|
||||
│ ‾‾
|
||||
|
@ -35,6 +35,35 @@ scope S:
|
||||
$ catala scopelang -s S
|
||||
let scope S (x: integer|internal|output) =
|
||||
let x : integer = ⟨true ⊢ 0⟩;
|
||||
assert (map (λ (i: integer) → i + 2) [ 1; 2; 3 ]) = [ 3; 4; 5 ];
|
||||
assert (filter (λ (i: integer) → i >= 2) [ 1; 2; 3 ]) = [ 2; 3 ];
|
||||
assert (map (λ (i: integer) → i + 2)
|
||||
filter (λ (i: integer) → i > 2) [ 1; 2; 3 ])
|
||||
= [ 5 ];
|
||||
assert (reduce
|
||||
(λ (sum1: integer) (sum2: integer) → sum1 + sum2),
|
||||
0,
|
||||
[ 1; 2; 3 ])
|
||||
= 6;
|
||||
assert (reduce
|
||||
(λ (sum1: integer) (sum2: integer) → sum1 + sum2),
|
||||
0,
|
||||
map (λ (i: integer) → i + 2) [ 1; 2; 3 ])
|
||||
= 12;
|
||||
assert (length [ 1; 2; 3 ]) = 3;
|
||||
assert (length filter (λ (i: integer) → i >= 2) [ 1; 2; 3 ]) = 2;
|
||||
assert (reduce
|
||||
(λ (max1: integer) (max2: integer) →
|
||||
if max1 > max2 then max1 else max2),
|
||||
10,
|
||||
[ 1; 2; 3 ])
|
||||
= 3;
|
||||
assert (reduce
|
||||
(λ (max1: decimal) (max2: decimal) →
|
||||
if max1 > max2 then max1 else max2),
|
||||
10.,
|
||||
map (λ (i: integer) → to_rat i) [ 1; 2; 3 ])
|
||||
= 3.;
|
||||
assert (reduce
|
||||
(λ (i_1: integer) (i_2: integer) →
|
||||
if
|
||||
@ -46,36 +75,7 @@ let scope S (x: integer|internal|output) =
|
||||
else i_2),
|
||||
42,
|
||||
[ 1; 2; 3 ])
|
||||
= 2;
|
||||
assert (reduce
|
||||
(λ (max1: decimal) (max2: decimal) →
|
||||
if max1 > max2 then max1 else max2),
|
||||
10.,
|
||||
map (λ (i: integer) → to_rat i) [ 1; 2; 3 ])
|
||||
= 3.;
|
||||
assert (reduce
|
||||
(λ (max1: integer) (max2: integer) →
|
||||
if max1 > max2 then max1 else max2),
|
||||
10,
|
||||
[ 1; 2; 3 ])
|
||||
= 3;
|
||||
assert (length filter (λ (i: integer) → i >= 2) [ 1; 2; 3 ]) = 2;
|
||||
assert (length [ 1; 2; 3 ]) = 3;
|
||||
assert (reduce
|
||||
(λ (sum1: integer) (sum2: integer) → sum1 + sum2),
|
||||
0,
|
||||
map (λ (i: integer) → i + 2) [ 1; 2; 3 ])
|
||||
= 12;
|
||||
assert (reduce
|
||||
(λ (sum1: integer) (sum2: integer) → sum1 + sum2),
|
||||
0,
|
||||
[ 1; 2; 3 ])
|
||||
= 6;
|
||||
assert (map (λ (i: integer) → i + 2)
|
||||
filter (λ (i: integer) → i > 2) [ 1; 2; 3 ])
|
||||
= [ 5 ];
|
||||
assert (filter (λ (i: integer) → i >= 2) [ 1; 2; 3 ]) = [ 2; 3 ];
|
||||
assert (map (λ (i: integer) → i + 2) [ 1; 2; 3 ]) = [ 3; 4; 5 ]
|
||||
= 2
|
||||
```
|
||||
|
||||
```catala-test-inline
|
||||
|
@ -17,21 +17,21 @@ $ catala Interpret -s Foo
|
||||
--> bool
|
||||
|
||||
Error coming from typechecking the following expression:
|
||||
┌─⯈ tests/test_bool/bad/bad_assert.catala_en:9.12-13:
|
||||
┌─⯈ tests/test_bool/bad/bad_assert.catala_en:9.13-9.14:
|
||||
└─┐
|
||||
9 │ assertion x
|
||||
│ ‾
|
||||
└─ Test
|
||||
|
||||
Type integer coming from expression:
|
||||
┌─⯈ tests/test_bool/bad/bad_assert.catala_en:5.21-28:
|
||||
┌─⯈ tests/test_bool/bad/bad_assert.catala_en:5.22-5.29:
|
||||
└─┐
|
||||
5 │ internal x content integer
|
||||
│ ‾‾‾‾‾‾‾
|
||||
└─ Test
|
||||
|
||||
Type bool coming from expression:
|
||||
┌─⯈ tests/test_bool/bad/bad_assert.catala_en:9.12-13:
|
||||
┌─⯈ tests/test_bool/bad/bad_assert.catala_en:9.13-9.14:
|
||||
└─┐
|
||||
9 │ assertion x
|
||||
│ ‾
|
||||
|
@ -15,21 +15,21 @@ $ catala Typecheck
|
||||
--> bool
|
||||
|
||||
Error coming from typechecking the following expression:
|
||||
┌─⯈ tests/test_bool/bad/test_xor_with_int.catala_en:8.29-31:
|
||||
┌─⯈ tests/test_bool/bad/test_xor_with_int.catala_en:8.30-8.32:
|
||||
└─┐
|
||||
8 │ definition test_var equals 10 xor 20
|
||||
│ ‾‾
|
||||
└─ 'xor' should be a boolean operator
|
||||
|
||||
Type integer coming from expression:
|
||||
┌─⯈ tests/test_bool/bad/test_xor_with_int.catala_en:8.29-31:
|
||||
┌─⯈ tests/test_bool/bad/test_xor_with_int.catala_en:8.30-8.32:
|
||||
└─┐
|
||||
8 │ definition test_var equals 10 xor 20
|
||||
│ ‾‾
|
||||
└─ 'xor' should be a boolean operator
|
||||
|
||||
Type bool coming from expression:
|
||||
┌─⯈ tests/test_bool/bad/test_xor_with_int.catala_en:8.32-35:
|
||||
┌─⯈ tests/test_bool/bad/test_xor_with_int.catala_en:8.33-8.36:
|
||||
└─┐
|
||||
8 │ definition test_var equals 10 xor 20
|
||||
│ ‾‾‾
|
||||
|
@ -17,7 +17,7 @@ catala: internal error, uncaught exception:
|
||||
|
||||
[WARNING] In scope "Test", the variable "ambiguous" is never used anywhere; maybe it's unnecessary?
|
||||
|
||||
┌─⯈ tests/test_date/bad/rounding_option.catala_en:5.10-19:
|
||||
┌─⯈ tests/test_date/bad/rounding_option.catala_en:5.11-5.20:
|
||||
└─┐
|
||||
5 │ context ambiguous content boolean
|
||||
│ ‾‾‾‾‾‾‾‾‾
|
||||
|
@ -17,7 +17,7 @@ catala: internal error, uncaught exception:
|
||||
|
||||
[WARNING] In scope "Test", the variable "ambiguité" is never used anywhere; maybe it's unnecessary?
|
||||
|
||||
┌─⯈ tests/test_date/bad/rounding_option.catala_fr:5.11-20:
|
||||
┌─⯈ tests/test_date/bad/rounding_option.catala_fr:5.12-5.21:
|
||||
└─┐
|
||||
5 │ contexte ambiguité contenu booléen
|
||||
│ ‾‾‾‾‾‾‾‾‾
|
||||
|
@ -27,13 +27,13 @@ scope Test:
|
||||
$ catala Interpret -s Test
|
||||
[ERROR] You cannot set multiple date rounding modes
|
||||
|
||||
┌─⯈ tests/test_date/bad/rounding_option_conflict.catala_en:10.13-23:
|
||||
┌─⯈ tests/test_date/bad/rounding_option_conflict.catala_en:10.14-10.24:
|
||||
└──┐
|
||||
10 │ date round decreasing
|
||||
│ ‾‾‾‾‾‾‾‾‾‾
|
||||
|
||||
|
||||
┌─⯈ tests/test_date/bad/rounding_option_conflict.catala_en:12.13-23:
|
||||
┌─⯈ tests/test_date/bad/rounding_option_conflict.catala_en:12.14-12.24:
|
||||
└──┐
|
||||
12 │ date round increasing
|
||||
│ ‾‾‾‾‾‾‾‾‾‾
|
||||
|
@ -44,7 +44,7 @@ scope Ge:
|
||||
$ catala Interpret -s Ge
|
||||
[WARNING] In scope "Lt", the variable "d" is never used anywhere; maybe it's unnecessary?
|
||||
|
||||
┌─⯈ tests/test_date/bad/uncomparable_duration.catala_en:7.10-11:
|
||||
┌─⯈ tests/test_date/bad/uncomparable_duration.catala_en:7.11-7.12:
|
||||
└─┐
|
||||
7 │ context d content boolean
|
||||
│ ‾
|
||||
@ -52,7 +52,7 @@ $ catala Interpret -s Ge
|
||||
└─ `<` operator
|
||||
[WARNING] In scope "Le", the variable "d" is never used anywhere; maybe it's unnecessary?
|
||||
|
||||
┌─⯈ tests/test_date/bad/uncomparable_duration.catala_en:17.10-11:
|
||||
┌─⯈ tests/test_date/bad/uncomparable_duration.catala_en:17.11-17.12:
|
||||
└──┐
|
||||
17 │ context d content boolean
|
||||
│ ‾
|
||||
@ -60,7 +60,7 @@ $ catala Interpret -s Ge
|
||||
└─ `<=` operator
|
||||
[WARNING] In scope "Gt", the variable "d" is never used anywhere; maybe it's unnecessary?
|
||||
|
||||
┌─⯈ tests/test_date/bad/uncomparable_duration.catala_en:27.10-11:
|
||||
┌─⯈ tests/test_date/bad/uncomparable_duration.catala_en:27.11-27.12:
|
||||
└──┐
|
||||
27 │ context d content boolean
|
||||
│ ‾
|
||||
@ -68,7 +68,7 @@ $ catala Interpret -s Ge
|
||||
└─ `<=` operator
|
||||
[WARNING] In scope "Ge", the variable "d" is never used anywhere; maybe it's unnecessary?
|
||||
|
||||
┌─⯈ tests/test_date/bad/uncomparable_duration.catala_en:37.10-11:
|
||||
┌─⯈ tests/test_date/bad/uncomparable_duration.catala_en:37.11-37.12:
|
||||
└──┐
|
||||
37 │ context d content boolean
|
||||
│ ‾
|
||||
@ -76,14 +76,14 @@ $ catala Interpret -s Ge
|
||||
└─ `>=` operator
|
||||
[ERROR] Cannot compare together durations that cannot be converted to a precise number of days
|
||||
|
||||
┌─⯈ tests/test_date/bad/uncomparable_duration.catala_en:40.22-29:
|
||||
┌─⯈ tests/test_date/bad/uncomparable_duration.catala_en:40.23-40.30:
|
||||
└──┐
|
||||
40 │ definition d equals 1 month >= 2 day
|
||||
│ ‾‾‾‾‾‾‾
|
||||
└┬ `UncomparableDurations` exception management
|
||||
└─ `>=` operator
|
||||
|
||||
┌─⯈ tests/test_date/bad/uncomparable_duration.catala_en:40.33-38:
|
||||
┌─⯈ tests/test_date/bad/uncomparable_duration.catala_en:40.34-40.39:
|
||||
└──┐
|
||||
40 │ definition d equals 1 month >= 2 day
|
||||
│ ‾‾‾‾‾
|
||||
@ -96,7 +96,7 @@ $ catala Interpret -s Ge
|
||||
$ catala Interpret -s Gt
|
||||
[WARNING] In scope "Lt", the variable "d" is never used anywhere; maybe it's unnecessary?
|
||||
|
||||
┌─⯈ tests/test_date/bad/uncomparable_duration.catala_en:7.10-11:
|
||||
┌─⯈ tests/test_date/bad/uncomparable_duration.catala_en:7.11-7.12:
|
||||
└─┐
|
||||
7 │ context d content boolean
|
||||
│ ‾
|
||||
@ -104,7 +104,7 @@ $ catala Interpret -s Gt
|
||||
└─ `<` operator
|
||||
[WARNING] In scope "Le", the variable "d" is never used anywhere; maybe it's unnecessary?
|
||||
|
||||
┌─⯈ tests/test_date/bad/uncomparable_duration.catala_en:17.10-11:
|
||||
┌─⯈ tests/test_date/bad/uncomparable_duration.catala_en:17.11-17.12:
|
||||
└──┐
|
||||
17 │ context d content boolean
|
||||
│ ‾
|
||||
@ -112,7 +112,7 @@ $ catala Interpret -s Gt
|
||||
└─ `<=` operator
|
||||
[WARNING] In scope "Gt", the variable "d" is never used anywhere; maybe it's unnecessary?
|
||||
|
||||
┌─⯈ tests/test_date/bad/uncomparable_duration.catala_en:27.10-11:
|
||||
┌─⯈ tests/test_date/bad/uncomparable_duration.catala_en:27.11-27.12:
|
||||
└──┐
|
||||
27 │ context d content boolean
|
||||
│ ‾
|
||||
@ -120,7 +120,7 @@ $ catala Interpret -s Gt
|
||||
└─ `<=` operator
|
||||
[WARNING] In scope "Ge", the variable "d" is never used anywhere; maybe it's unnecessary?
|
||||
|
||||
┌─⯈ tests/test_date/bad/uncomparable_duration.catala_en:37.10-11:
|
||||
┌─⯈ tests/test_date/bad/uncomparable_duration.catala_en:37.11-37.12:
|
||||
└──┐
|
||||
37 │ context d content boolean
|
||||
│ ‾
|
||||
@ -128,14 +128,14 @@ $ catala Interpret -s Gt
|
||||
└─ `>=` operator
|
||||
[ERROR] Cannot compare together durations that cannot be converted to a precise number of days
|
||||
|
||||
┌─⯈ tests/test_date/bad/uncomparable_duration.catala_en:30.22-29:
|
||||
┌─⯈ tests/test_date/bad/uncomparable_duration.catala_en:30.23-30.30:
|
||||
└──┐
|
||||
30 │ definition d equals 1 month > 2 day
|
||||
│ ‾‾‾‾‾‾‾
|
||||
└┬ `UncomparableDurations` exception management
|
||||
└─ `<=` operator
|
||||
|
||||
┌─⯈ tests/test_date/bad/uncomparable_duration.catala_en:30.32-37:
|
||||
┌─⯈ tests/test_date/bad/uncomparable_duration.catala_en:30.33-30.38:
|
||||
└──┐
|
||||
30 │ definition d equals 1 month > 2 day
|
||||
│ ‾‾‾‾‾
|
||||
@ -148,7 +148,7 @@ $ catala Interpret -s Gt
|
||||
$ catala Interpret -s Le
|
||||
[WARNING] In scope "Lt", the variable "d" is never used anywhere; maybe it's unnecessary?
|
||||
|
||||
┌─⯈ tests/test_date/bad/uncomparable_duration.catala_en:7.10-11:
|
||||
┌─⯈ tests/test_date/bad/uncomparable_duration.catala_en:7.11-7.12:
|
||||
└─┐
|
||||
7 │ context d content boolean
|
||||
│ ‾
|
||||
@ -156,7 +156,7 @@ $ catala Interpret -s Le
|
||||
└─ `<` operator
|
||||
[WARNING] In scope "Le", the variable "d" is never used anywhere; maybe it's unnecessary?
|
||||
|
||||
┌─⯈ tests/test_date/bad/uncomparable_duration.catala_en:17.10-11:
|
||||
┌─⯈ tests/test_date/bad/uncomparable_duration.catala_en:17.11-17.12:
|
||||
└──┐
|
||||
17 │ context d content boolean
|
||||
│ ‾
|
||||
@ -164,7 +164,7 @@ $ catala Interpret -s Le
|
||||
└─ `<=` operator
|
||||
[WARNING] In scope "Gt", the variable "d" is never used anywhere; maybe it's unnecessary?
|
||||
|
||||
┌─⯈ tests/test_date/bad/uncomparable_duration.catala_en:27.10-11:
|
||||
┌─⯈ tests/test_date/bad/uncomparable_duration.catala_en:27.11-27.12:
|
||||
└──┐
|
||||
27 │ context d content boolean
|
||||
│ ‾
|
||||
@ -172,7 +172,7 @@ $ catala Interpret -s Le
|
||||
└─ `<=` operator
|
||||
[WARNING] In scope "Ge", the variable "d" is never used anywhere; maybe it's unnecessary?
|
||||
|
||||
┌─⯈ tests/test_date/bad/uncomparable_duration.catala_en:37.10-11:
|
||||
┌─⯈ tests/test_date/bad/uncomparable_duration.catala_en:37.11-37.12:
|
||||
└──┐
|
||||
37 │ context d content boolean
|
||||
│ ‾
|
||||
@ -180,14 +180,14 @@ $ catala Interpret -s Le
|
||||
└─ `>=` operator
|
||||
[ERROR] Cannot compare together durations that cannot be converted to a precise number of days
|
||||
|
||||
┌─⯈ tests/test_date/bad/uncomparable_duration.catala_en:20.22-29:
|
||||
┌─⯈ tests/test_date/bad/uncomparable_duration.catala_en:20.23-20.30:
|
||||
└──┐
|
||||
20 │ definition d equals 1 month <= 2 day
|
||||
│ ‾‾‾‾‾‾‾
|
||||
└┬ `UncomparableDurations` exception management
|
||||
└─ `<=` operator
|
||||
|
||||
┌─⯈ tests/test_date/bad/uncomparable_duration.catala_en:20.33-38:
|
||||
┌─⯈ tests/test_date/bad/uncomparable_duration.catala_en:20.34-20.39:
|
||||
└──┐
|
||||
20 │ definition d equals 1 month <= 2 day
|
||||
│ ‾‾‾‾‾
|
||||
@ -200,7 +200,7 @@ $ catala Interpret -s Le
|
||||
$ catala Interpret -s Lt
|
||||
[WARNING] In scope "Lt", the variable "d" is never used anywhere; maybe it's unnecessary?
|
||||
|
||||
┌─⯈ tests/test_date/bad/uncomparable_duration.catala_en:7.10-11:
|
||||
┌─⯈ tests/test_date/bad/uncomparable_duration.catala_en:7.11-7.12:
|
||||
└─┐
|
||||
7 │ context d content boolean
|
||||
│ ‾
|
||||
@ -208,7 +208,7 @@ $ catala Interpret -s Lt
|
||||
└─ `<` operator
|
||||
[WARNING] In scope "Le", the variable "d" is never used anywhere; maybe it's unnecessary?
|
||||
|
||||
┌─⯈ tests/test_date/bad/uncomparable_duration.catala_en:17.10-11:
|
||||
┌─⯈ tests/test_date/bad/uncomparable_duration.catala_en:17.11-17.12:
|
||||
└──┐
|
||||
17 │ context d content boolean
|
||||
│ ‾
|
||||
@ -216,7 +216,7 @@ $ catala Interpret -s Lt
|
||||
└─ `<=` operator
|
||||
[WARNING] In scope "Gt", the variable "d" is never used anywhere; maybe it's unnecessary?
|
||||
|
||||
┌─⯈ tests/test_date/bad/uncomparable_duration.catala_en:27.10-11:
|
||||
┌─⯈ tests/test_date/bad/uncomparable_duration.catala_en:27.11-27.12:
|
||||
└──┐
|
||||
27 │ context d content boolean
|
||||
│ ‾
|
||||
@ -224,7 +224,7 @@ $ catala Interpret -s Lt
|
||||
└─ `<=` operator
|
||||
[WARNING] In scope "Ge", the variable "d" is never used anywhere; maybe it's unnecessary?
|
||||
|
||||
┌─⯈ tests/test_date/bad/uncomparable_duration.catala_en:37.10-11:
|
||||
┌─⯈ tests/test_date/bad/uncomparable_duration.catala_en:37.11-37.12:
|
||||
└──┐
|
||||
37 │ context d content boolean
|
||||
│ ‾
|
||||
@ -232,14 +232,14 @@ $ catala Interpret -s Lt
|
||||
└─ `>=` operator
|
||||
[ERROR] Cannot compare together durations that cannot be converted to a precise number of days
|
||||
|
||||
┌─⯈ tests/test_date/bad/uncomparable_duration.catala_en:10.22-29:
|
||||
┌─⯈ tests/test_date/bad/uncomparable_duration.catala_en:10.23-10.30:
|
||||
└──┐
|
||||
10 │ definition d equals 1 month < 2 day
|
||||
│ ‾‾‾‾‾‾‾
|
||||
└┬ `UncomparableDurations` exception management
|
||||
└─ `<` operator
|
||||
|
||||
┌─⯈ tests/test_date/bad/uncomparable_duration.catala_en:10.32-37:
|
||||
┌─⯈ tests/test_date/bad/uncomparable_duration.catala_en:10.33-10.38:
|
||||
└──┐
|
||||
10 │ definition d equals 1 month < 2 day
|
||||
│ ‾‾‾‾‾
|
||||
|
@ -13,7 +13,7 @@ scope A:
|
||||
$ catala Interpret -s A
|
||||
[WARNING] In scope "A", the variable "x" is never used anywhere; maybe it's unnecessary?
|
||||
|
||||
┌─⯈ tests/test_default/bad/conflict.catala_en:5.10-11:
|
||||
┌─⯈ tests/test_default/bad/conflict.catala_en:5.11-5.12:
|
||||
└─┐
|
||||
5 │ context x content integer
|
||||
│ ‾
|
||||
@ -21,14 +21,14 @@ $ catala Interpret -s A
|
||||
[ERROR] There is a conflict between multiple valid consequences for assigning the same variable.
|
||||
|
||||
This consequence has a valid justification:
|
||||
┌─⯈ tests/test_default/bad/conflict.catala_en:8.55-56:
|
||||
┌─⯈ tests/test_default/bad/conflict.catala_en:8.56-8.57:
|
||||
└─┐
|
||||
8 │ definition x under condition true consequence equals 1
|
||||
│ ‾
|
||||
└─ Article
|
||||
|
||||
This consequence has a valid justification:
|
||||
┌─⯈ tests/test_default/bad/conflict.catala_en:9.55-56:
|
||||
┌─⯈ tests/test_default/bad/conflict.catala_en:9.56-9.57:
|
||||
└─┐
|
||||
9 │ definition x under condition true consequence equals 0
|
||||
│ ‾
|
||||
|
@ -13,21 +13,21 @@ scope A:
|
||||
$ catala Interpret -s A
|
||||
[WARNING] In scope "A", the variable "x" is never used anywhere; maybe it's unnecessary?
|
||||
|
||||
┌─⯈ tests/test_default/bad/empty.catala_en:5.10-11:
|
||||
┌─⯈ tests/test_default/bad/empty.catala_en:5.11-5.12:
|
||||
└─┐
|
||||
5 │ context x content integer
|
||||
│ ‾
|
||||
└─ Article
|
||||
[WARNING] In scope "A", the variable "y" is never used anywhere; maybe it's unnecessary?
|
||||
|
||||
┌─⯈ tests/test_default/bad/empty.catala_en:6.10-11:
|
||||
┌─⯈ tests/test_default/bad/empty.catala_en:6.11-6.12:
|
||||
└─┐
|
||||
6 │ context y content boolean
|
||||
│ ‾
|
||||
└─ Article
|
||||
[ERROR] This variable evaluated to an empty term (no rule that defined it applied in this situation)
|
||||
|
||||
┌─⯈ tests/test_default/bad/empty.catala_en:6.10-11:
|
||||
┌─⯈ tests/test_default/bad/empty.catala_en:6.11-6.12:
|
||||
└─┐
|
||||
6 │ context y content boolean
|
||||
│ ‾
|
||||
|
@ -16,14 +16,14 @@ scope A:
|
||||
$ catala Interpret -s A
|
||||
[WARNING] In scope "A", the variable "x" is never used anywhere; maybe it's unnecessary?
|
||||
|
||||
┌─⯈ tests/test_default/bad/empty_with_rules.catala_en:5.10-11:
|
||||
┌─⯈ tests/test_default/bad/empty_with_rules.catala_en:5.11-5.12:
|
||||
└─┐
|
||||
5 │ context x content integer
|
||||
│ ‾
|
||||
└─ Article
|
||||
[ERROR] This variable evaluated to an empty term (no rule that defined it applied in this situation)
|
||||
|
||||
┌─⯈ tests/test_default/bad/empty_with_rules.catala_en:5.10-11:
|
||||
┌─⯈ tests/test_default/bad/empty_with_rules.catala_en:5.11-5.12:
|
||||
└─┐
|
||||
5 │ context x content integer
|
||||
│ ‾
|
||||
|
@ -11,6 +11,19 @@ scope A:
|
||||
|
||||
```catala-test-inline
|
||||
$ catala Interpret -s A
|
||||
[WARNING] These definitions have identical justifications and consequences; is it a mistake?
|
||||
|
||||
┌─⯈ tests/test_default/good/mutliple_definitions.catala_en:9.3-9.15:
|
||||
└─┐
|
||||
9 │ definition w equals 3
|
||||
│ ‾‾‾‾‾‾‾‾‾‾‾‾
|
||||
|
||||
|
||||
┌─⯈ tests/test_default/good/mutliple_definitions.catala_en:6.3-6.15:
|
||||
└─┐
|
||||
6 │ definition w equals 3
|
||||
│ ‾‾‾‾‾‾‾‾‾‾‾‾
|
||||
|
||||
[RESULT] Computation successful! Results:
|
||||
[RESULT] w = 3
|
||||
```
|
||||
|
@ -18,7 +18,7 @@ scope A:
|
||||
$ catala Interpret -s A
|
||||
[ERROR] This constructor name is ambiguous, it can belong to E or F. Desambiguate it by prefixing it with the enum name.
|
||||
|
||||
┌─⯈ tests/test_enum/bad/ambiguous_cases.catala_en:14.22-27:
|
||||
┌─⯈ tests/test_enum/bad/ambiguous_cases.catala_en:14.23-14.28:
|
||||
└──┐
|
||||
14 │ definition e equals Case1
|
||||
│ ‾‾‾‾‾
|
||||
|
@ -19,7 +19,7 @@ scope A:
|
||||
$ catala Interpret -s A
|
||||
[ERROR] Couldn't infer the enumeration name from lonely wildcard (wildcard cannot be used as single match case)
|
||||
|
||||
┌─⯈ tests/test_enum/bad/ambiguous_wildcard.catala_en:15.4-20:
|
||||
┌─⯈ tests/test_enum/bad/ambiguous_wildcard.catala_en:15.5-15.21:
|
||||
└──┐
|
||||
15 │ -- anything : 31
|
||||
│ ‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾
|
||||
|
@ -22,13 +22,13 @@ scope A:
|
||||
$ catala Interpret -s A
|
||||
[ERROR] The constructor Case3 has been matched twice:
|
||||
|
||||
┌─⯈ tests/test_enum/bad/duplicate_case.catala_en:18.15-19:
|
||||
┌─⯈ tests/test_enum/bad/duplicate_case.catala_en:18.16-18.20:
|
||||
└──┐
|
||||
18 │ -- Case3 : true
|
||||
│ ‾‾‾‾
|
||||
└─ Article
|
||||
|
||||
┌─⯈ tests/test_enum/bad/duplicate_case.catala_en:17.15-20:
|
||||
┌─⯈ tests/test_enum/bad/duplicate_case.catala_en:17.16-17.21:
|
||||
└──┐
|
||||
17 │ -- Case3 : false
|
||||
│ ‾‾‾‾‾
|
||||
|
@ -11,7 +11,7 @@ declaration scope Bar:
|
||||
$ catala Typecheck
|
||||
[ERROR] The enum Foo does not have any cases; give it some for Catala to be able to accept it.
|
||||
|
||||
┌─⯈ tests/test_enum/bad/empty.catala_en:4.24-27:
|
||||
┌─⯈ tests/test_enum/bad/empty.catala_en:4.25-4.28:
|
||||
└─┐
|
||||
4 │ declaration enumeration Foo:
|
||||
│ ‾‾‾
|
||||
|
@ -20,21 +20,21 @@ scope A:
|
||||
$ catala Interpret -s A
|
||||
[WARNING] In scope "A", the variable "out" is never used anywhere; maybe it's unnecessary?
|
||||
|
||||
┌─⯈ tests/test_enum/bad/missing_case.catala_en:11.10-13:
|
||||
┌─⯈ tests/test_enum/bad/missing_case.catala_en:11.11-11.14:
|
||||
└──┐
|
||||
11 │ context out content boolean
|
||||
│ ‾‾‾
|
||||
└─ Article
|
||||
[WARNING] The constructor "Case3" of enumeration "E" is never used; maybe it's unnecessary?
|
||||
|
||||
┌─⯈ tests/test_enum/bad/missing_case.catala_en:7.5-10:
|
||||
┌─⯈ tests/test_enum/bad/missing_case.catala_en:7.6-7.11:
|
||||
└─┐
|
||||
7 │ -- Case3
|
||||
│ ‾‾‾‾‾
|
||||
└─ Article
|
||||
[ERROR] The constructor Case3 of enum E is missing from this pattern matching
|
||||
|
||||
┌─⯈ tests/test_enum/bad/missing_case.catala_en:14.24-16.21:
|
||||
┌─⯈ tests/test_enum/bad/missing_case.catala_en:14.25-16.22:
|
||||
└──┐
|
||||
14 │ definition out equals match e with pattern
|
||||
│ ‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾
|
||||
|
@ -41,7 +41,7 @@ $ catala Interpret -s First_case
|
||||
[ERROR] Wildcard must be the last match case
|
||||
|
||||
Not ending wildcard:
|
||||
┌─⯈ tests/test_enum/bad/not_ending_wildcard.catala_en:19.4-20:
|
||||
┌─⯈ tests/test_enum/bad/not_ending_wildcard.catala_en:19.5-19.21:
|
||||
└──┐
|
||||
19 │ -- anything : 31
|
||||
│ ‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾
|
||||
@ -49,7 +49,7 @@ Not ending wildcard:
|
||||
└─ Wildcard can't be the first case
|
||||
|
||||
Next reachable case:
|
||||
┌─⯈ tests/test_enum/bad/not_ending_wildcard.catala_en:20.4-17:
|
||||
┌─⯈ tests/test_enum/bad/not_ending_wildcard.catala_en:20.5-20.18:
|
||||
└──┐
|
||||
20 │ -- Case2 : 42
|
||||
│ ‾‾‾‾‾‾‾‾‾‾‾‾‾
|
||||
@ -63,7 +63,7 @@ $ catala Interpret -s Middle_case
|
||||
[ERROR] Wildcard must be the last match case
|
||||
|
||||
Not ending wildcard:
|
||||
┌─⯈ tests/test_enum/bad/not_ending_wildcard.catala_en:19.4-20:
|
||||
┌─⯈ tests/test_enum/bad/not_ending_wildcard.catala_en:19.5-19.21:
|
||||
└──┐
|
||||
19 │ -- anything : 31
|
||||
│ ‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾
|
||||
@ -71,7 +71,7 @@ Not ending wildcard:
|
||||
└─ Wildcard can't be the first case
|
||||
|
||||
Next reachable case:
|
||||
┌─⯈ tests/test_enum/bad/not_ending_wildcard.catala_en:20.4-17:
|
||||
┌─⯈ tests/test_enum/bad/not_ending_wildcard.catala_en:20.5-20.18:
|
||||
└──┐
|
||||
20 │ -- Case2 : 42
|
||||
│ ‾‾‾‾‾‾‾‾‾‾‾‾‾
|
||||
|
@ -35,21 +35,21 @@ $ catala Interpret -s A
|
||||
--> F
|
||||
|
||||
Error coming from typechecking the following expression:
|
||||
┌─⯈ tests/test_enum/bad/quick_pattern_2.catala_en:28.22-23:
|
||||
┌─⯈ tests/test_enum/bad/quick_pattern_2.catala_en:28.23-28.24:
|
||||
└──┐
|
||||
28 │ definition y equals x with pattern Case3
|
||||
│ ‾
|
||||
└─ Article
|
||||
|
||||
Type E coming from expression:
|
||||
┌─⯈ tests/test_enum/bad/quick_pattern_2.catala_en:17.20-21:
|
||||
┌─⯈ tests/test_enum/bad/quick_pattern_2.catala_en:17.21-17.22:
|
||||
└──┐
|
||||
17 │ context x content E
|
||||
│ ‾
|
||||
└─ Article
|
||||
|
||||
Type F coming from expression:
|
||||
┌─⯈ tests/test_enum/bad/quick_pattern_2.catala_en:28.22-42:
|
||||
┌─⯈ tests/test_enum/bad/quick_pattern_2.catala_en:28.23-28.43:
|
||||
└──┐
|
||||
28 │ definition y equals x with pattern Case3
|
||||
│ ‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾
|
||||
|
@ -25,21 +25,21 @@ $ catala Interpret -s A
|
||||
--> F
|
||||
|
||||
Error coming from typechecking the following expression:
|
||||
┌─⯈ tests/test_enum/bad/quick_pattern_3.catala_en:18.20-21:
|
||||
┌─⯈ tests/test_enum/bad/quick_pattern_3.catala_en:18.21-18.22:
|
||||
└──┐
|
||||
18 │ definition y equals x with pattern Case3
|
||||
│ ‾
|
||||
└─ Article
|
||||
|
||||
Type E coming from expression:
|
||||
┌─⯈ tests/test_enum/bad/quick_pattern_3.catala_en:13.18-19:
|
||||
┌─⯈ tests/test_enum/bad/quick_pattern_3.catala_en:13.19-13.20:
|
||||
└──┐
|
||||
13 │ context x content E
|
||||
│ ‾
|
||||
└─ Article
|
||||
|
||||
Type F coming from expression:
|
||||
┌─⯈ tests/test_enum/bad/quick_pattern_3.catala_en:18.20-40:
|
||||
┌─⯈ tests/test_enum/bad/quick_pattern_3.catala_en:18.21-18.41:
|
||||
└──┐
|
||||
18 │ definition y equals x with pattern Case3
|
||||
│ ‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾
|
||||
|
@ -24,21 +24,21 @@ $ catala Interpret -s A
|
||||
--> F
|
||||
|
||||
Error coming from typechecking the following expression:
|
||||
┌─⯈ tests/test_enum/bad/quick_pattern_4.catala_en:17.20-21:
|
||||
┌─⯈ tests/test_enum/bad/quick_pattern_4.catala_en:17.21-17.22:
|
||||
└──┐
|
||||
17 │ definition y equals x with pattern Case3
|
||||
│ ‾
|
||||
└─ Test
|
||||
|
||||
Type E coming from expression:
|
||||
┌─⯈ tests/test_enum/bad/quick_pattern_4.catala_en:12.18-19:
|
||||
┌─⯈ tests/test_enum/bad/quick_pattern_4.catala_en:12.19-12.20:
|
||||
└──┐
|
||||
12 │ context x content E
|
||||
│ ‾
|
||||
└─ Test
|
||||
|
||||
Type F coming from expression:
|
||||
┌─⯈ tests/test_enum/bad/quick_pattern_4.catala_en:17.20-40:
|
||||
┌─⯈ tests/test_enum/bad/quick_pattern_4.catala_en:17.21-17.41:
|
||||
└──┐
|
||||
17 │ definition y equals x with pattern Case3
|
||||
│ ‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾
|
||||
|
@ -19,7 +19,7 @@ scope A:
|
||||
$ catala Interpret -s A
|
||||
[ERROR] The name of this constructor has not been defined before, maybe it is a typo?
|
||||
|
||||
┌─⯈ tests/test_enum/bad/quick_pattern_fail.catala_en:15.37-42:
|
||||
┌─⯈ tests/test_enum/bad/quick_pattern_fail.catala_en:15.38-15.43:
|
||||
└──┐
|
||||
15 │ definition y equals x with pattern Case3
|
||||
│ ‾‾‾‾‾
|
||||
|
@ -25,7 +25,7 @@ scope A:
|
||||
$ catala Interpret -s A
|
||||
[ERROR] This case matches a constructor of enumeration E but previous case were matching constructors of enumeration F
|
||||
|
||||
┌─⯈ tests/test_enum/bad/too_many_cases.catala_en:21.7-12:
|
||||
┌─⯈ tests/test_enum/bad/too_many_cases.catala_en:21.8-21.13:
|
||||
└──┐
|
||||
21 │ -- Case4 : true
|
||||
│ ‾‾‾‾‾
|
||||
|
@ -21,7 +21,7 @@ scope A:
|
||||
$ catala Interpret -s A
|
||||
[WARNING] Unreachable match case, all constructors of the enumeration E are already specified
|
||||
|
||||
┌─⯈ tests/test_enum/bad/useless_wildcard.catala_en:17.4-20:
|
||||
┌─⯈ tests/test_enum/bad/useless_wildcard.catala_en:17.5-17.21:
|
||||
└──┐
|
||||
17 │ -- anything : 31
|
||||
│ ‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾
|
||||
|
@ -18,7 +18,7 @@ $ catala Interpret -s A
|
||||
[ERROR] This exception can refer to several definitions. Try using labels to disambiguate
|
||||
|
||||
Ambiguous exception
|
||||
┌─⯈ tests/test_exception/bad/ambiguous_unlabeled_exception.catala_en:12.2-13.14:
|
||||
┌─⯈ tests/test_exception/bad/ambiguous_unlabeled_exception.catala_en:12.3-13.15:
|
||||
└──┐
|
||||
12 │ exception
|
||||
│ ‾‾‾‾‾‾‾‾‾
|
||||
@ -27,14 +27,14 @@ Ambiguous exception
|
||||
└─ Test
|
||||
|
||||
Candidate definition
|
||||
┌─⯈ tests/test_exception/bad/ambiguous_unlabeled_exception.catala_en:10.13-14:
|
||||
┌─⯈ tests/test_exception/bad/ambiguous_unlabeled_exception.catala_en:10.14-10.15:
|
||||
└──┐
|
||||
10 │ definition x equals 1
|
||||
│ ‾
|
||||
└─ Test
|
||||
|
||||
Candidate definition
|
||||
┌─⯈ tests/test_exception/bad/ambiguous_unlabeled_exception.catala_en:8.13-14:
|
||||
┌─⯈ tests/test_exception/bad/ambiguous_unlabeled_exception.catala_en:8.14-8.15:
|
||||
└─┐
|
||||
8 │ definition x equals 0
|
||||
│ ‾
|
||||
|
@ -17,7 +17,7 @@ scope A:
|
||||
$ catala Interpret -s A
|
||||
[ERROR] Unknown label for the scope variable x: "base_y"
|
||||
|
||||
┌─⯈ tests/test_exception/bad/dangling_exception.catala_en:12.12-18:
|
||||
┌─⯈ tests/test_exception/bad/dangling_exception.catala_en:12.13-12.19:
|
||||
└──┐
|
||||
12 │ exception base_y
|
||||
│ ‾‾‾‾‾‾
|
||||
|
@ -22,14 +22,14 @@ scope A:
|
||||
$ catala Interpret -s A
|
||||
[WARNING] In scope "A", the variable "x" is never used anywhere; maybe it's unnecessary?
|
||||
|
||||
┌─⯈ tests/test_exception/bad/exceptions_cycle.catala_en:5.10-11:
|
||||
┌─⯈ tests/test_exception/bad/exceptions_cycle.catala_en:5.11-5.12:
|
||||
└─┐
|
||||
5 │ context x content integer
|
||||
│ ‾
|
||||
└─ Test
|
||||
[ERROR] Exception cycle detected when defining x: each of these 3 exceptions applies over the previous one, and the first applies over the last
|
||||
|
||||
┌─⯈ tests/test_exception/bad/exceptions_cycle.catala_en:8.2-10.14:
|
||||
┌─⯈ tests/test_exception/bad/exceptions_cycle.catala_en:8.3-10.15:
|
||||
└──┐
|
||||
8 │ label base_x
|
||||
│ ‾‾‾‾‾‾‾‾‾‾‾‾
|
||||
@ -39,7 +39,7 @@ $ catala Interpret -s A
|
||||
│ ‾‾‾‾‾‾‾‾‾‾‾‾
|
||||
|
||||
|
||||
┌─⯈ tests/test_exception/bad/exceptions_cycle.catala_en:12.2-14.14:
|
||||
┌─⯈ tests/test_exception/bad/exceptions_cycle.catala_en:12.3-14.15:
|
||||
└──┐
|
||||
12 │ label exception_x
|
||||
│ ‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾
|
||||
@ -49,7 +49,7 @@ $ catala Interpret -s A
|
||||
│ ‾‾‾‾‾‾‾‾‾‾‾‾
|
||||
|
||||
|
||||
┌─⯈ tests/test_exception/bad/exceptions_cycle.catala_en:16.2-18.14:
|
||||
┌─⯈ tests/test_exception/bad/exceptions_cycle.catala_en:16.3-18.15:
|
||||
└──┐
|
||||
16 │ label exception_exception_x
|
||||
│ ‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾
|
||||
|
@ -13,7 +13,7 @@ scope A:
|
||||
$ catala Interpret -s A
|
||||
[ERROR] This exception does not have a corresponding definition
|
||||
|
||||
┌─⯈ tests/test_exception/bad/missing_unlabeled_definition.catala_en:8.2-9.14:
|
||||
┌─⯈ tests/test_exception/bad/missing_unlabeled_definition.catala_en:8.3-9.15:
|
||||
└─┐
|
||||
8 │ exception
|
||||
│ ‾‾‾‾‾‾‾‾‾
|
||||
|
@ -24,7 +24,7 @@ $ catala Interpret -s A
|
||||
[ERROR] This exception can refer to several definitions. Try using labels to disambiguate
|
||||
|
||||
Ambiguous exception
|
||||
┌─⯈ tests/test_exception/bad/one_ambiguous_exception.catala_en:18.2-19.14:
|
||||
┌─⯈ tests/test_exception/bad/one_ambiguous_exception.catala_en:18.3-19.15:
|
||||
└──┐
|
||||
18 │ exception
|
||||
│ ‾‾‾‾‾‾‾‾‾
|
||||
@ -33,14 +33,14 @@ Ambiguous exception
|
||||
└─ Test
|
||||
|
||||
Candidate definition
|
||||
┌─⯈ tests/test_exception/bad/one_ambiguous_exception.catala_en:16.13-14:
|
||||
┌─⯈ tests/test_exception/bad/one_ambiguous_exception.catala_en:16.14-16.15:
|
||||
└──┐
|
||||
16 │ definition y equals 4
|
||||
│ ‾
|
||||
└─ Test
|
||||
|
||||
Candidate definition
|
||||
┌─⯈ tests/test_exception/bad/one_ambiguous_exception.catala_en:14.13-14:
|
||||
┌─⯈ tests/test_exception/bad/one_ambiguous_exception.catala_en:14.14-14.15:
|
||||
└──┐
|
||||
14 │ definition y equals 2
|
||||
│ ‾
|
||||
|
@ -14,14 +14,14 @@ scope A:
|
||||
$ catala Interpret -s A
|
||||
[WARNING] In scope "A", the variable "y" is never used anywhere; maybe it's unnecessary?
|
||||
|
||||
┌─⯈ tests/test_exception/bad/self_exception.catala_en:5.10-11:
|
||||
┌─⯈ tests/test_exception/bad/self_exception.catala_en:5.11-5.12:
|
||||
└─┐
|
||||
5 │ context y content integer
|
||||
│ ‾
|
||||
└─ Test
|
||||
[ERROR] Cannot define rule as an exception to itself
|
||||
|
||||
┌─⯈ tests/test_exception/bad/self_exception.catala_en:9.12-18:
|
||||
┌─⯈ tests/test_exception/bad/self_exception.catala_en:9.13-9.19:
|
||||
└─┐
|
||||
9 │ exception base_y
|
||||
│ ‾‾‾‾‾‾
|
||||
|
@ -19,7 +19,7 @@ scope A:
|
||||
$ catala Interpret -s A
|
||||
[WARNING] In scope "A", the variable "x" is never used anywhere; maybe it's unnecessary?
|
||||
|
||||
┌─⯈ tests/test_exception/bad/two_exceptions.catala_en:5.10-11:
|
||||
┌─⯈ tests/test_exception/bad/two_exceptions.catala_en:5.11-5.12:
|
||||
└─┐
|
||||
5 │ context x content integer
|
||||
│ ‾
|
||||
@ -27,14 +27,14 @@ $ catala Interpret -s A
|
||||
[ERROR] There is a conflict between multiple valid consequences for assigning the same variable.
|
||||
|
||||
This consequence has a valid justification:
|
||||
┌─⯈ tests/test_exception/bad/two_exceptions.catala_en:12.22-23:
|
||||
┌─⯈ tests/test_exception/bad/two_exceptions.catala_en:12.23-12.24:
|
||||
└──┐
|
||||
12 │ definition x equals 1
|
||||
│ ‾
|
||||
└─ Test
|
||||
|
||||
This consequence has a valid justification:
|
||||
┌─⯈ tests/test_exception/bad/two_exceptions.catala_en:15.22-23:
|
||||
┌─⯈ tests/test_exception/bad/two_exceptions.catala_en:15.23-15.24:
|
||||
└──┐
|
||||
15 │ definition x equals 2
|
||||
│ ‾
|
||||
|
58
tests/test_exception/good/double_definition.catala_en
Normal file
58
tests/test_exception/good/double_definition.catala_en
Normal file
@ -0,0 +1,58 @@
|
||||
## Foo
|
||||
|
||||
```catala
|
||||
declaration scope Foo:
|
||||
output x content integer
|
||||
|
||||
scope Foo:
|
||||
definition x equals 1
|
||||
definition x equals 1
|
||||
|
||||
```
|
||||
|
||||
```catala-test-inline
|
||||
$ catala Scopelang -s Foo
|
||||
[WARNING] These definitions have identical justifications and consequences; is it a mistake?
|
||||
|
||||
┌─⯈ tests/test_exception/good/double_definition.catala_en:9.3-9.15:
|
||||
└─┐
|
||||
9 │ definition x equals 1
|
||||
│ ‾‾‾‾‾‾‾‾‾‾‾‾
|
||||
└─ Foo
|
||||
|
||||
┌─⯈ tests/test_exception/good/double_definition.catala_en:8.3-8.15:
|
||||
└─┐
|
||||
8 │ definition x equals 1
|
||||
│ ‾‾‾‾‾‾‾‾‾‾‾‾
|
||||
└─ Foo
|
||||
let scope Foo (x: integer|internal|output) =
|
||||
let x : integer = ⟨true ⊢ ⟨ ⟨true ⊢ 1⟩, ⟨true ⊢ 1⟩ | false ⊢ ∅ ⟩⟩
|
||||
```
|
||||
|
||||
In Scopelang we have what looks like conflicting exceptions. But after
|
||||
discussions related in https://github.com/CatalaLang/catala/issues/208, we
|
||||
have decided to relax this behavior when translating to Dcalc because the
|
||||
consequences of the conflicting exceptions are the same. Hence the
|
||||
Dcalc translation below.
|
||||
|
||||
```catala-test-inline
|
||||
$ catala Dcalc -s Foo
|
||||
[WARNING] These definitions have identical justifications and consequences; is it a mistake?
|
||||
|
||||
┌─⯈ tests/test_exception/good/double_definition.catala_en:9.3-9.15:
|
||||
└─┐
|
||||
9 │ definition x equals 1
|
||||
│ ‾‾‾‾‾‾‾‾‾‾‾‾
|
||||
└─ Foo
|
||||
|
||||
┌─⯈ tests/test_exception/good/double_definition.catala_en:8.3-8.15:
|
||||
└─┐
|
||||
8 │ definition x equals 1
|
||||
│ ‾‾‾‾‾‾‾‾‾‾‾‾
|
||||
└─ Foo
|
||||
let scope Foo (Foo_in: Foo_in): Foo {x: integer} =
|
||||
let set x : integer =
|
||||
error_empty ⟨true ⊢ ⟨ ⟨ ⟨true ⊢ 1⟩ | true ⊢ 1 ⟩ | false ⊢ ∅ ⟩⟩
|
||||
in
|
||||
return { Foo x = x; }
|
||||
```
|
@ -48,34 +48,34 @@ let scope Foo (y: integer|input) (x: integer|internal|output) =
|
||||
$ catala Exceptions -s Foo -v x
|
||||
[RESULT] Printing the tree of exceptions for the definitions of variable "x" of scope "Foo".
|
||||
[RESULT] Definitions with label "base":
|
||||
┌─⯈ tests/test_exception/good/groups_of_exceptions.catala_en:9.2-25:
|
||||
┌─⯈ tests/test_exception/good/groups_of_exceptions.catala_en:9.3-9.26:
|
||||
└─┐
|
||||
9 │ label base definition x under condition
|
||||
│ ‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾
|
||||
└─ Test
|
||||
┌─⯈ tests/test_exception/good/groups_of_exceptions.catala_en:13.2-25:
|
||||
┌─⯈ tests/test_exception/good/groups_of_exceptions.catala_en:13.3-13.26:
|
||||
└──┐
|
||||
13 │ label base definition x under condition
|
||||
│ ‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾
|
||||
└─ Test
|
||||
[RESULT] Definitions with label "intermediate":
|
||||
┌─⯈ tests/test_exception/good/groups_of_exceptions.catala_en:17.2-48:
|
||||
┌─⯈ tests/test_exception/good/groups_of_exceptions.catala_en:17.3-17.49:
|
||||
└──┐
|
||||
17 │ label intermediate exception base definition x under condition
|
||||
│ ‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾
|
||||
└─ Test
|
||||
┌─⯈ tests/test_exception/good/groups_of_exceptions.catala_en:21.2-48:
|
||||
┌─⯈ tests/test_exception/good/groups_of_exceptions.catala_en:21.3-21.49:
|
||||
└──┐
|
||||
21 │ label intermediate exception base definition x under condition
|
||||
│ ‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾
|
||||
└─ Test
|
||||
[RESULT] Definitions with label "exception_to_intermediate":
|
||||
┌─⯈ tests/test_exception/good/groups_of_exceptions.catala_en:25.2-37:
|
||||
┌─⯈ tests/test_exception/good/groups_of_exceptions.catala_en:25.3-25.38:
|
||||
└──┐
|
||||
25 │ exception intermediate definition x under condition
|
||||
│ ‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾
|
||||
└─ Test
|
||||
┌─⯈ tests/test_exception/good/groups_of_exceptions.catala_en:29.2-37:
|
||||
┌─⯈ tests/test_exception/good/groups_of_exceptions.catala_en:29.3-29.38:
|
||||
└──┐
|
||||
29 │ exception intermediate definition x under condition
|
||||
│ ‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾
|
||||
|
@ -32,14 +32,14 @@ $ catala Interpret -s S
|
||||
[ERROR] There is a conflict between multiple valid consequences for assigning the same variable.
|
||||
|
||||
This consequence has a valid justification:
|
||||
┌─⯈ tests/test_func/bad/bad_func.catala_en:14.64-69:
|
||||
┌─⯈ tests/test_func/bad/bad_func.catala_en:14.65-14.70:
|
||||
└──┐
|
||||
14 │ definition f of x under condition (x >= x) consequence equals x + x
|
||||
│ ‾‾‾‾‾
|
||||
└─ Article
|
||||
|
||||
This consequence has a valid justification:
|
||||
┌─⯈ tests/test_func/bad/bad_func.catala_en:15.61-66:
|
||||
┌─⯈ tests/test_func/bad/bad_func.catala_en:15.62-15.67:
|
||||
└──┐
|
||||
15 │ definition f of x under condition not b consequence equals x * x
|
||||
│ ‾‾‾‾‾
|
||||
|
@ -17,14 +17,14 @@ $ catala typecheck
|
||||
[ERROR] Function argument name mismatch between declaration ('x') and definition ('y')
|
||||
|
||||
Argument declared here:
|
||||
┌─⯈ tests/test_func/bad/param_inconsistency.catala_en:4.41-42:
|
||||
┌─⯈ tests/test_func/bad/param_inconsistency.catala_en:4.42-4.43:
|
||||
└─┐
|
||||
4 │ internal f1 content decimal depends on x content integer
|
||||
│ ‾
|
||||
|
||||
|
||||
Defined here:
|
||||
┌─⯈ tests/test_func/bad/param_inconsistency.catala_en:10.19-20:
|
||||
┌─⯈ tests/test_func/bad/param_inconsistency.catala_en:10.20-10.21:
|
||||
└──┐
|
||||
10 │ definition f1 of y under condition not cond
|
||||
│ ‾
|
||||
|
@ -16,14 +16,14 @@ $ catala typecheck
|
||||
[ERROR] Function argument name mismatch between declaration ('x') and definition ('y')
|
||||
|
||||
Argument declared here:
|
||||
┌─⯈ tests/test_func/bad/param_inconsistency2.catala_en:4.41-42:
|
||||
┌─⯈ tests/test_func/bad/param_inconsistency2.catala_en:4.42-4.43:
|
||||
└─┐
|
||||
4 │ internal f1 content decimal depends on x content integer
|
||||
│ ‾
|
||||
|
||||
|
||||
Defined here:
|
||||
┌─⯈ tests/test_func/bad/param_inconsistency2.catala_en:9.29-30:
|
||||
┌─⯈ tests/test_func/bad/param_inconsistency2.catala_en:9.30-9.31:
|
||||
└─┐
|
||||
9 │ exception definition f1 of y under condition not cond
|
||||
│ ‾
|
||||
|
@ -16,14 +16,14 @@ $ catala typecheck
|
||||
[ERROR] Function argument name mismatch between declaration ('x') and definition ('y')
|
||||
|
||||
Argument declared here:
|
||||
┌─⯈ tests/test_func/bad/param_inconsistency3.catala_en:4.41-42:
|
||||
┌─⯈ tests/test_func/bad/param_inconsistency3.catala_en:4.42-4.43:
|
||||
└─┐
|
||||
4 │ internal f1 content decimal depends on x content integer
|
||||
│ ‾
|
||||
|
||||
|
||||
Defined here:
|
||||
┌─⯈ tests/test_func/bad/param_inconsistency3.catala_en:9.29-30:
|
||||
┌─⯈ tests/test_func/bad/param_inconsistency3.catala_en:9.30-9.31:
|
||||
└─┐
|
||||
9 │ exception definition f1 of y under condition not cond
|
||||
│ ‾
|
||||
|
@ -12,7 +12,7 @@ scope RecursiveFunc:
|
||||
$ catala Interpret -s RecursiveFunc
|
||||
[ERROR] The variable f is used in one of its definitions, but recursion is forbidden in Catala
|
||||
|
||||
┌─⯈ tests/test_func/bad/recursive.catala_en:8.27-28:
|
||||
┌─⯈ tests/test_func/bad/recursive.catala_en:8.28-8.29:
|
||||
└─┐
|
||||
8 │ definition f of x equals f of x + 1
|
||||
│ ‾
|
||||
|
@ -15,7 +15,7 @@ scope S:
|
||||
$ catala Lcalc -s S --avoid_exceptions -O --closure_conversion
|
||||
[ERROR] Variable x not found in the current context
|
||||
|
||||
┌─⯈ tests/test_func/good/closure_conversion.catala_en:5.11-12:
|
||||
┌─⯈ tests/test_func/good/closure_conversion.catala_en:5.12-5.13:
|
||||
└─┐
|
||||
5 │ internal f content integer depends on y content integer
|
||||
│ ‾
|
||||
|
@ -19,7 +19,7 @@ scope B:
|
||||
$ catala Scopelang -s B
|
||||
[WARNING] In scope "A", the variable "f" is never used anywhere; maybe it's unnecessary?
|
||||
|
||||
┌─⯈ tests/test_func/good/context_func.catala_en:5.10-11:
|
||||
┌─⯈ tests/test_func/good/context_func.catala_en:5.11-5.12:
|
||||
└─┐
|
||||
5 │ context f content integer depends on x content integer
|
||||
│ ‾
|
||||
@ -33,7 +33,7 @@ let scope B (b: bool|input) =
|
||||
$ catala Dcalc -s A
|
||||
[WARNING] In scope "A", the variable "f" is never used anywhere; maybe it's unnecessary?
|
||||
|
||||
┌─⯈ tests/test_func/good/context_func.catala_en:5.10-11:
|
||||
┌─⯈ tests/test_func/good/context_func.catala_en:5.11-5.12:
|
||||
└─┐
|
||||
5 │ context f content integer depends on x content integer
|
||||
│ ‾
|
||||
@ -51,7 +51,7 @@ let scope A (A_in: A_in {f_in: integer → integer}): A =
|
||||
$ catala Dcalc -s B
|
||||
[WARNING] In scope "A", the variable "f" is never used anywhere; maybe it's unnecessary?
|
||||
|
||||
┌─⯈ tests/test_func/good/context_func.catala_en:5.10-11:
|
||||
┌─⯈ tests/test_func/good/context_func.catala_en:5.11-5.12:
|
||||
└─┐
|
||||
5 │ context f content integer depends on x content integer
|
||||
│ ‾
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user