Class: Mirah::JVM::Types::JavaFieldGetter
- Inherits:
-
JavaFieldAccessor
- Object
- JavaCallable
- JavaConstructor
- JavaMethod
- JavaFieldAccessor
- Mirah::JVM::Types::JavaFieldGetter
- Defined in:
- lib/mirah/jvm/types/methods.rb
Instance Attribute Summary
Attributes inherited from JavaCallable
Instance Method Summary collapse
- #accept(visitor, expression) ⇒ Object
- #argument_types ⇒ Object
- #call(compiler, ast, expression, parameters = nil) ⇒ Object
- #kind ⇒ Object
Methods inherited from JavaFieldAccessor
#field?, #final?, #public?, #return_type
Methods inherited from JavaMethod
#abstract?, #call_special, #constructor?, #return_type, #static?, #type_parameters, #void?
Methods inherited from JavaConstructor
#constructor?, #declaring_class, #exceptions, #isVararg, #return_type, #type_parameters, #varargs?
Methods inherited from JavaCallable
#field?, #initialize, #name, #parameter_types, #synthetic?
Methods included from ArgumentConversion
Constructor Details
This class inherits a constructor from Mirah::JVM::Types::JavaCallable
Instance Method Details
#accept(visitor, expression) ⇒ Object
428 429 430 431 432 433 434 |
# File 'lib/mirah/jvm/types/methods.rb', line 428 def accept(visitor, expression) if self.static? visitor.visitStaticFieldAccess(self, expression) else visitor.visitFieldAccess(self, expression) end end |
#argument_types ⇒ Object
409 410 411 |
# File 'lib/mirah/jvm/types/methods.rb', line 409 def argument_types [] end |
#call(compiler, ast, expression, parameters = nil) ⇒ Object
413 414 415 416 417 418 419 420 421 422 423 424 425 426 |
# File 'lib/mirah/jvm/types/methods.rb', line 413 def call(compiler, ast, expression, parameters=nil) target = compiler.inferred_type(ast.target) # TODO: assert that no args are being passed, though that should have failed lookup if expression if @member.static? compiler.method.getstatic(target, name, @member.type) else compiler.visit(ast.target, true) compiler.method.getfield(target, name, @member.type) end end end |
#kind ⇒ Object
436 437 438 439 440 441 442 |
# File 'lib/mirah/jvm/types/methods.rb', line 436 def kind if self.static? Java::OrgMirahJvmTypes::MemberKind::STATIC_FIELD_ACCESS else Java::OrgMirahJvmTypes::MemberKind::FIELD_ACCESS end end |