package Ġorg . elixir _ lang . psi . scope . call _ definition _ clause Ċ Ċ import Ġcom . intellij . psi . Resolve State Ċ import Ġorg . elixir _ lang . Ar ity Ċ import Ġorg . elixir _ lang . Ar ity Range Ċ import Ġorg . elixir _ lang . Name Ar ity Range Ċ import Ġorg . elixir _ lang . psi . call . name . Module . KERNEL _ SPECIAL _ FOR MS Ċ import Ġorg . elixir _ lang . psi . scope . Call Definition Clause . Companion . MOD ULAR _ CAN ON ICAL _ NAME Ċ Ċ /** Ċ Ġ* ĠWhile Ġan Ġar ity Ġrange Ġfor Ġa Ġnormal Ġfunction Ġor Ġmacro Ġis Ġrepresented Ġas Ġan Ċ Ġ* Ġ[ org . apache . commons . lang . math . Int Range ], Ġsome Ġspecial Ġforms Ġhave Ġno Ġfixed Ġar ity Ġwhen Ġused Ġbecause Ġalthough Ċ Ġ* Ġdefined Ġin Ġ` Kernel . Special Forms ` Ġas Ġ 1 - arity , Ġthat Ġone Ġargument Ġis Ġeffectively Ġa Ġspl at Ġof Ġall Ġthe Ġarguments , Ġso Ċ Ġ* Ġthere Ġneeds Ġto Ġbe Ġa Ġway Ġto Ġrepresent Ġthat Ġhalf - open Ġinterval . Ċ Ġ*/ Ċ internal Ġclass ĠAr ity Interval Ġ{ ĊĠĠĠ Ġprivate Ġval Ġminimum : ĠAr ity ĊĠĠĠ Ġprivate Ġval Ġmaximum : ĠAr ity ? ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠUn like Ġ[ org . apache . commons . lang . math . Int Range . Int Range ]}, Ġwhere Ġthe Ġargument Ġbecomes Ġthe Ġminimum ĠAND ĊĠĠĠĠ Ġ* Ġthe Ġmaximum , Ġhere Ġthe Ġargument Ġis ĠONLY Ġthe Ġminimum Ġand Ġthe Ġinterval Ġhas Ġan Ġinfinite Ġmaximum . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġminimum Ġminimum Ġar ity ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġconstructor ( minimum : ĠAr ity ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . minimum Ġ= Ġminimum ĊĠĠĠĠĠĠĠ Ġthis . maximum Ġ= Ġnull ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġconstructor ( minimum : ĠAr ity , Ġmaximum : ĠAr ity ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . minimum Ġ= Ġminimum ĊĠĠĠĠĠĠĠ Ġthis . maximum Ġ= Ġmaximum ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġconstructor ( arity Range : ĠAr ity Range ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . minimum Ġ= Ġar ity Range . first ĊĠĠĠĠĠĠĠ Ġthis . maximum Ġ= Ġar ity Range . last ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoperator Ġfun Ġcontains ( candidate : ĠAr ity ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġminimum Ġ<= Ġcandidate Ġ&& Ġ( maximum Ġ== Ġnull Ġ|| Ġcandidate Ġ<= Ġmaximum ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠtoString (): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġval ĠstringBuilder Ġ= ĠStringBuilder (" Ar ity Interval (" ). append ( minimum ) ĊĊĠĠĠĠĠĠĠ Ġif Ġ( maximum Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠstringBuilder . append (", Ġ"). append ( maximum ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠstringBuilder . append (" )") ĊĊĠĠĠĠĠĠĠ Ġreturn ĠstringBuilder . toString () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġval ĠZERO Ġ= ĠAr ity Interval ( 0 ) ĊĠĠĠĠĠĠĠ Ġprivate Ġval ĠONE Ġ= ĠAr ity Interval ( 1 ) ĊĠĠĠĠĠĠĠ Ġprivate Ġval ĠONE _ TWO Ġ= ĠAr ity Interval ( 1 , Ġ 2 ) ĊĠĠĠĠĠĠĠ Ġprivate Ġval ĠK ERNEL _ SPECIAL _ FORM _ AR ITY _ INTERVAL _ BY _ NAME Ġ= Ġmap Of ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"__ aliases __ " Ġto ĠONE , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"__ block __ " Ġto ĠONE , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" alias " Ġto ĠONE _ TWO , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" for " Ġto ĠONE , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" import " Ġto ĠONE _ TWO , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" quote " Ġto ĠONE _ TWO , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" require " Ġto ĠONE _ TWO , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" super " Ġto ĠZERO , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" with " Ġto ĠONE ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġ@ Jvm Static ĊĠĠĠĠĠĠĠ Ġfun Ġar ity Interval ( name Ar ity Range : ĠName Ar ity Range , Ġresolve State : ĠResolve State ): ĠAr ity Interval Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( resolve State . get ( MOD ULAR _ CAN ON ICAL _ NAME ) Ġ== ĠK ERNEL _ SPECIAL _ FOR MS ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠK ERNEL _ SPECIAL _ FORM _ AR ITY _ INTERVAL _ BY _ NAME [ name Ar ity Range . name ] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġ?: ĠAr ity Interval ( name Ar ity Range . arity Range ) ĊĠĠĠ Ġ} Ċ } Ċ