Upgrade to JRuby 1.1.3 for the scripting side of things.
| local.rb |
|---|
module Duby::AST
class LocalAssignment < Node
include Named
include Valued
include Scoped
def initialize(parent, name)
@value = (children = yield(self))[0]
@name = name
super(parent, children)
end
def to_s
"LocalAssignment(name = #{name}, scope = #{scope})"
end
def infer(typer)
unless @inferred_type
@inferred_type = typer.learn_local_type(scope, name, value.infer(typer))
unless @inferred_type
typer.defer(self)
end
end
@inferred_type
end
end
class Local < Node
include Named
include Scoped
def initialize(parent, name)
super(parent, [])
@name = name
end
def to_s
"Local(name = #{name}, scope = #{scope})"
end
def infer(typer)
unless @inferred_type
@inferred_type = typer.local_type(scope, name)
unless @inferred_type
typer.defer(self)
end
end
@inferred_type
end
end
end
Check out the code: svn co jbidwatcher/trunk/lib/ruby/site_ruby/1.8/duby/ast/local.rb
