A Variable definition.

Associates a variable to the location of its definition.

Introduced properties

private var _location: Location

nitc :: VarDef :: _location

Location of this definition in the source code.
private var _variable: Variable

nitc :: VarDef :: _variable

Variable this definition is about.
init defaultinit(variable: Variable, location: Location)

nitc :: VarDef :: defaultinit

fun location: Location

nitc :: VarDef :: location

Location of this definition in the source code.
protected fun location=(location: Location)

nitc :: VarDef :: location=

Location of this definition in the source code.
fun variable: Variable

nitc :: VarDef :: variable

Variable this definition is about.
protected fun variable=(variable: Variable)

nitc :: VarDef :: variable=

Variable this definition is about.

Redefined properties

redef fun <=>(o: OTHER): Int

nitc $ VarDef :: <=>

-1 if <, +1 if > and 0 otherwise
redef fun ==(o: nullable Object): Bool

nitc $ VarDef :: ==

Have self and other the same value?
redef type OTHER: VarDef

nitc $ VarDef :: OTHER

What self can be compared to?
redef type SELF: VarDef

nitc $ VarDef :: SELF

Type of this instance, automatically specialized in every class
redef fun hash: Int

nitc $ VarDef :: hash

The hash code of the object.
redef fun to_s: String

nitc $ VarDef :: to_s

User readable representation of self.

All properties

fun !=(other: nullable Object): Bool

core :: Object :: !=

Have self and other different values?
abstract fun <(other: OTHER): Bool

core :: Comparable :: <

Is self lesser than other?
fun <=(other: OTHER): Bool

core :: Comparable :: <=

not other < self
fun <=>(other: OTHER): Int

core :: Comparable :: <=>

-1 if <, +1 if > and 0 otherwise
fun ==(other: nullable Object): Bool

core :: Object :: ==

Have self and other the same value?
fun >(other: OTHER): Bool

core :: Comparable :: >

other < self
fun >=(other: OTHER): Bool

core :: Comparable :: >=

not self < other
type CLASS: Class[SELF]

core :: Object :: CLASS

The type of the class of self.
type OTHER: Comparable

core :: Comparable :: OTHER

What self can be compared to?
type SELF: Object

core :: Object :: SELF

Type of this instance, automatically specialized in every class
private var _location: Location

nitc :: VarDef :: _location

Location of this definition in the source code.
private var _variable: Variable

nitc :: VarDef :: _variable

Variable this definition is about.
fun clamp(min: OTHER, max: OTHER): OTHER

core :: Comparable :: clamp

Constraint self within [min..max]
protected fun class_factory(name: String): CLASS

core :: Object :: class_factory

Implementation used by get_class to create the specific class.
fun class_name: String

core :: Object :: class_name

The class name of the object.
init defaultinit(variable: Variable, location: Location)

nitc :: VarDef :: defaultinit

fun get_class: CLASS

core :: Object :: get_class

The meta-object representing the dynamic type of self.
fun hash: Int

core :: Object :: hash

The hash code of the object.
init init

core :: Object :: init

fun inspect: String

core :: Object :: inspect

Developer readable representation of self.
protected fun inspect_head: String

core :: Object :: inspect_head

Return "CLASSNAME:#OBJECTID".
fun is_between(c: OTHER, d: OTHER): Bool

core :: Comparable :: is_between

c <= self <= d
intern fun is_same_instance(other: nullable Object): Bool

core :: Object :: is_same_instance

Return true if self and other are the same instance (i.e. same identity).
fun is_same_serialized(other: nullable Object): Bool

core :: Object :: is_same_serialized

Is self the same as other in a serialization context?
intern fun is_same_type(other: Object): Bool

core :: Object :: is_same_type

Return true if self and other have the same dynamic type.
fun location: Location

nitc :: VarDef :: location

Location of this definition in the source code.
protected fun location=(location: Location)

nitc :: VarDef :: location=

Location of this definition in the source code.
fun max(other: OTHER): OTHER

core :: Comparable :: max

The maximum between self and other (prefers self if equals).
fun min(c: OTHER): OTHER

core :: Comparable :: min

The minimum between self and c (prefer self if equals)
private intern fun native_class_name: CString

core :: Object :: native_class_name

The class name of the object in CString format.
intern fun object_id: Int

core :: Object :: object_id

An internal hash code for the object based on its identity.
fun output

core :: Object :: output

Display self on stdout (debug only).
intern fun output_class_name

core :: Object :: output_class_name

Display class name on stdout (debug only).
fun serialization_hash: Int

core :: Object :: serialization_hash

Hash value use for serialization
intern fun sys: Sys

core :: Object :: sys

Return the global sys object, the only instance of the Sys class.
abstract fun to_jvalue(env: JniEnv): JValue

core :: Object :: to_jvalue

fun to_s: String

core :: Object :: to_s

User readable representation of self.
fun variable: Variable

nitc :: VarDef :: variable

Variable this definition is about.
protected fun variable=(variable: Variable)

nitc :: VarDef :: variable=

Variable this definition is about.
package_diagram nitc::VarDef VarDef core::Comparable Comparable nitc::VarDef->core::Comparable core::Object Object core::Comparable->core::Object ...core::Object ... ...core::Object->core::Object

Ancestors

interface Object

core :: Object

The root of the class hierarchy.

Parents

interface Comparable

core :: Comparable

The ancestor of class where objects are in a total order.

Class definitions

nitc $ VarDef
# A Variable definition.
#
# Associates a variable to the location of its definition.
class VarDef
	super Comparable

	redef type OTHER: VarDef

	# Variable this definition is about.
	var variable: Variable

	# Location of this definition in the source code.
	var location: Location

	redef fun ==(o) do
		return o isa OTHER and variable == o.variable and location == o.location
	end

	redef fun <=>(o) do
		if variable.name == o.variable.name then
			return location.line_start <=> o.location.line_start
		else
			return variable.name <=> o.variable.name
		end
	end

	redef fun hash do return variable.hash + location.hash
	redef fun to_s do return "\{{variable}: {location.line_start}\}"
end
src/saf/reaching_defs.nit:117,1--145,3