Module: Duby::JVM::Types

Included in:
Typer::JVM, Typer::JavaSource, Typer::JavaTyper
Defined in:
lib/duby/jvm/types.rb,
lib/duby/jvm/types/floats.rb,
lib/duby/jvm/types/number.rb,
lib/duby/jvm/types/boolean.rb,
lib/duby/jvm/types/factory.rb,
lib/duby/jvm/types/literals.rb,
lib/duby/jvm/types/enumerable.rb,
lib/duby/jvm/types/basic_types.rb,
lib/duby/jvm/types/intrinsics.rb,
lib/duby/jvm/types/integers.rb,
lib/duby/jvm/types/methods.rb

Defined Under Namespace

Modules: ArgumentConversion Classes: ArrayType, BooleanType, DoubleType, DubyMember, DynamicType, FixnumLiteral, FixnumLiteralNode, FloatLiteral, FloatLiteralNode, FloatType, IntegerType, InterfaceDefinition, Intrinsic, IterableType, JavaCallable, JavaConstructor, JavaDynamicMethod, JavaFieldAccessor, JavaFieldGetter, JavaFieldSetter, JavaMethod, JavaStaticMethod, LongType, MetaType, NarrowingType, NullType, Number, PrimitiveType, StringType, Type, TypeDefMeta, TypeDefinition, TypeFactory, VoidType

Constant Summary collapse

Boolean =
BooleanType.new('boolean', java.lang.Boolean)
Byte =
IntegerType.new('byte', java.lang.Byte)
Char =
IntegerType.new('char', java.lang.Character)
Short =
IntegerType.new('short', java.lang.Short)
Int =
IntegerType.new('int', java.lang.Integer)
Long =
LongType.new('long', java.lang.Long)
Float =
FloatType.new('float', java.lang.Float)
Double =
DoubleType.new('double', java.lang.Double)
Object =

TODO these shouldn’t be constants. They should be loaded from the compilation class path.

Type.new(BiteScript::ASM::ClassMirror.load('java.lang.Object'))
String =
StringType.new(
BiteScript::ASM::ClassMirror.load('java.lang.String'))
Iterable =
IterableType.new(
BiteScript::ASM::ClassMirror.load('java.lang.Iterable'))
Void =
VoidType.new
Null =
NullType.new
WIDENING_CONVERSIONS =
{
  Byte => [Byte, Short, Int, Long, Float, Double],
  Short => [Short, Int, Long, Float, Double],
  Char => [Char, Int, Long, Float, Double],
  Int => [Int, Long, Float, Double],
  Long => [Long, Float, Double],
  Float => [Float, Double],
  Double => [Double]
}
TYPE_ORDERING =
[Byte, Short, Int, Long, Float, Double]