In [[programming language theory]], '''flow-sensitive typing''' (or '''flow typing''') is a [[type system]] where the type of a [[Variable (computer science)|variable]] is determined by the [[control flow]].
Classically inIn [[Static typing|statically typed languages]], a variable is bound to a single type during its lifetime. However, in flow-sensitive typing, a variable's type may change inside the body of a [[Method (computer programming)|method]], while traversing control flow statements. The type is determined by using [[type inference]] and type information is carried using [[algebraic data type]]s.