class Crystal::External

Defined in:

compiler/crystal/semantic/ast.cr

Constructors

Instance Method Summary

Instance methods inherited from class Crystal::Def

==(other : self) ==, abi_info=(abi_info : Bool) abi_info=, abi_info? : Bool abi_info?, abstract=(abstract __arg0 : Bool) abstract=, abstract? : Bool abstract?, accept_children(visitor) accept_children, add_special_var(name) add_special_var, always_inline=(always_inline : Bool) always_inline=, always_inline? : Bool always_inline?, args : Array(Arg) args, args=(args : Array(Arg)) args=, assigns_special_var=(assigns_special_var : Bool) assigns_special_var=, assigns_special_var? : Bool assigns_special_var?, autogenerated? autogenerated?, block_arg : Arg | Nil block_arg, block_arg=(block_arg : Arg | Nil) block_arg=, block_arity : Int32 | Nil block_arity, block_arity=(block_arity : Int32 | Nil) block_arity=, block_nest : Int32 block_nest, block_nest=(block_nest : Int32) block_nest=, body : ASTNode body, body=(body : ASTNode) body=, c_calling_convention : Bool? c_calling_convention, c_calling_convention=(c_calling_convention : Bool | Nil) c_calling_convention=, c_calling_convention? c_calling_convention?, call_convention call_convention, calls_initialize=(calls_initialize : Bool) calls_initialize=, calls_initialize? : Bool calls_initialize?, calls_previous_def=(calls_previous_def : Bool) calls_previous_def=, calls_previous_def? : Bool calls_previous_def?, calls_super=(calls_super : Bool) calls_super=, calls_super? : Bool calls_super?, captured_block=(captured_block : Bool) captured_block=, captured_block? : Bool captured_block?, clone_without_location clone_without_location, closure=(closure : Bool) closure=, closure? : Bool closure?, doc : String | Nil doc, doc=(doc : String | Nil) doc=, double_splat : Arg | Nil double_splat, double_splat=(double_splat : Arg | Nil) double_splat=, expand_default_arguments(program, args_size, named_args = nil) expand_default_arguments, expand_new_default_arguments(instance_type, args_size, named_args) expand_new_default_arguments, expand_new_from_initialize(instance_type) expand_new_from_initialize, expand_new_signature_from_initialize(instance_type) expand_new_signature_from_initialize, fill_body_from_initialize(instance_type) fill_body_from_initialize, free_var?(node : Path)
free_var?(any)
free_var?
, free_vars : Array(String) | Nil free_vars, free_vars=(free_vars : Array(String) | Nil) free_vars=, freeze_type : Type | Nil freeze_type, freeze_type=(freeze_type : Type | Nil) freeze_type=, has_any_args? has_any_args?, hash(hasher) hash, interpret(method : String, args : Array(ASTNode), named_args : Hash(String, ASTNode) | Nil, block : Crystal::Block | Nil, interpreter : Crystal::MacroInterpreter, name_loc : Location | Nil) interpret, llvm_intrinsic? llvm_intrinsic?, macro_def=(macro_def : Bool) macro_def=, macro_def? : Bool macro_def?, macro_owner macro_owner, macro_owner=(macro_owner : Crystal::Type | Nil) macro_owner=, macro_owner? : Crystal::Type? macro_owner?, mangled_name(program, self_type) mangled_name, map_type(type) map_type, match(objects, &) match, min_max_args_sizes min_max_args_sizes, naked=(naked : Bool) naked=, naked? : Bool naked?, name : String name, name=(name : String) name=, name_location : Location | Nil name_location, name_location=(name_location : Location | Nil) name_location=, name_size name_size, new=(new : Bool) new=, new? : Bool new?, next : Def | Nil next, next=(next __arg0 : Def | Nil) next=, no_inline=(no_inline : Bool) no_inline=, no_inline? : Bool no_inline?, original_name original_name, original_name=(original_name : String | Nil) original_name=, original_name? : String | Nil original_name?, original_owner : Type original_owner, original_owner=(original_owner : Type) original_owner=, original_owner? : Type | Nil original_owner?, owner : Type owner, owner=(owner : Type) owner=, owner? : Type | Nil owner?, pretty_print(pp) : Nil pretty_print, previous : DefWithMetadata | Nil previous, previous=(previous : DefWithMetadata | Nil) previous=, proc_c_calling_convention? proc_c_calling_convention?, raises=(raises : Bool) raises=, raises? : Bool raises?, receiver : ASTNode | Nil receiver, receiver=(receiver : ASTNode | Nil) receiver=, return_type : ASTNode | Nil return_type, return_type=(return_type : ASTNode | Nil) return_type=, returns_twice=(returns_twice : Bool) returns_twice=, returns_twice? : Bool returns_twice?, self_closured=(self_closured : Bool) self_closured=, self_closured? : Bool self_closured?, self_restriction_type : Type | Nil self_restriction_type, self_restriction_type=(self_restriction_type : Type | Nil) self_restriction_type=, short_reference short_reference, special_vars : Set(String) | Nil special_vars, special_vars=(special_vars : Set(String) | Nil) special_vars=, splat_index : Int32 | Nil splat_index, splat_index=(splat_index : Int32 | Nil) splat_index=, target_cpu : String | Nil target_cpu, target_cpu=(target_cpu : String | Nil) target_cpu=, target_features : String | Nil target_features, target_features=(target_features : String | Nil) target_features=, to_json(builder : JSON::Builder) to_json, uses_block_arg=(uses_block_arg : Bool) uses_block_arg=, uses_block_arg? : Bool uses_block_arg?, varargs? varargs?, vars : MetaVars | Nil vars, vars=(vars : MetaVars | Nil) vars=, visibility : Crystal::Visibility visibility, visibility=(visibility : Crystal::Visibility) visibility=, yield_vars : Array(Var) | Nil yield_vars, yield_vars=(yield_vars : Array(Var) | Nil) yield_vars=

Constructor methods inherited from class Crystal::Def

new(name : String, args : Array(Crystal::Arg) = [] of Arg, body = nil, receiver : Crystal::ASTNode | Nil = nil, block_arg : Nil | Crystal::Arg = nil, return_type : Crystal::ASTNode | Nil = nil, macro_def : Bool = false, block_arity : Int32 | Nil = nil, abstract __arg26 : Bool = false, splat_index : Int32 | Nil = nil, double_splat : Nil | Crystal::Arg = nil, free_vars : Nil | Array(String) = nil) new

Class methods inherited from class Crystal::Def

argless_initialize(instance_type) argless_initialize, argless_new(instance_type) argless_new

Instance methods inherited from module Crystal::HookExpansionsContainer

add_hook_expansion(node) add_hook_expansion, hook_expansions : Array(ASTNode) | Nil hook_expansions

Instance methods inherited from module Crystal::Annotatable

add_annotation(annotation_type : AnnotationType, value : Annotation) add_annotation, all_annotations : Array(Annotation) | Nil all_annotations, annotation(annotation_type : AnnotationType) : Annotation | Nil annotation, annotations(annotation_type : AnnotationType) : Array(Annotation) | Nil
annotations : Hash(AnnotationType, Array(Annotation)) | Nil
annotations
, annotations=(annotations : Hash(AnnotationType, Array(Annotation)) | Nil) annotations=

Instance methods inherited from class Crystal::ASTNode

accept(visitor) accept, accept_children(visitor) accept_children, add_observer(observer) add_observer, at(node : ASTNode)
at(location : Location | Nil)
at
, at_end(node : ASTNode)
at_end(end_location : Location | Nil)
at_end
, bind(from = nil, &) bind, bind_to(node : ASTNode) : Nil
bind_to(nodes : Indexable) : Nil
bind_to
, class_desc class_desc, class_name class_name, clone clone, dependencies : SmallNodeList dependencies, doc doc, doc=(doc) doc=, enclosing_call : Call | Nil enclosing_call, enclosing_call=(enclosing_call : Call | Nil) enclosing_call=, end_location : Location | Nil end_location, end_location=(end_location : Location | Nil) end_location=, false_literal? false_literal?, filtered_by(filter) filtered_by, find_owner_trace(program, owner) find_owner_trace, freeze_type freeze_type, inspect(io : IO) : Nil inspect, interpret(method : String, args : Array(ASTNode), named_args : Hash(String, ASTNode) | Nil, block : Crystal::Block | Nil, interpreter : Crystal::MacroInterpreter, name_loc : Location | Nil) interpret, interpret_compare(other) interpret_compare, length : Int32 | Nil length, location : Location | Nil location, location=(location : Location | Nil) location=, macro_is_a?(macro_type : MacroType) : Bool macro_is_a?, map_type(type) map_type, name_location name_location, name_size name_size, no_returns? no_returns?, nop? nop?, notify_observers notify_observers, pretty_print(pp) pretty_print, propagate propagate, raise(message, inner = nil, exception_type = Crystal::TypeException) raise, raise_frozen_type(freeze_type, invalid_type, from) raise_frozen_type, remove_enclosing_call(enclosing_call) remove_enclosing_call, remove_observer(observer) remove_observer, restrict_type_to_freeze_type(freeze_type, type) restrict_type_to_freeze_type, restriction_of?(other : Underscore, owner, self_free_vars = nil, other_free_vars = nil)
restriction_of?(other : ASTNode, owner, self_free_vars = nil, other_free_vars = nil)
restriction_of?(other : Type, owner, self_free_vars = nil, other_free_vars = nil)
restriction_of?(other, owner, self_free_vars = nil, other_free_vars = nil)
restriction_of?
, set_enclosing_call(enclosing_call) set_enclosing_call, set_type(type : Type)
set_type(type : Nil)
set_type
, set_type_from(type, from) set_type_from, simple_literal? simple_literal?, single_expression single_expression, single_expression? single_expression?, stringify stringify, supports_autocast?(number_autocast : Bool = true) supports_autocast?, symbolize symbolize, to_macro_id to_macro_id, to_s(io : IO, macro_expansion_pragmas = nil, emit_doc = false, emit_location_pragmas : Bool = false) : Nil to_s, to_string(context) to_string, transform(transformer) transform, true_literal? true_literal?, truthy? truthy?, type
type(*, with_autocast = false)
type
, type=(type) type=, type? type?, type_from_dependencies : Type | Nil type_from_dependencies, unbind_from(nodes : Nil)
unbind_from(node : ASTNode)
unbind_from(nodes : Enumerable(ASTNode))
unbind_from
, update(from = nil) update, visibility visibility, visibility=(visibility : Visibility) visibility=, warning(message, inner = nil, exception_type = Crystal::TypeException) warning, wrong_number_of(elements, subject, given, expected)
wrong_number_of(elements, given, expected)
wrong_number_of
, wrong_number_of_arguments(subject, given, expected) wrong_number_of_arguments, wrong_number_of_message(elements, subject, given, expected)
wrong_number_of_message(elements, given, expected)
wrong_number_of_message

Class methods inherited from class Crystal::ASTNode

class_desc : String class_desc

Instance methods inherited from class Reference

==(other : self)
==(other : JSON::Any)
==(other : YAML::Any)
==(other)
==
, dup dup, hash(hasher) hash, initialize initialize, inspect(io : IO) : Nil inspect, object_id : UInt64 object_id, pretty_print(pp) : Nil pretty_print, same?(other : Reference) : Bool
same?(other : Nil)
same?
, to_s(io : IO) : Nil to_s

Constructor methods inherited from class Reference

new new, unsafe_construct(address : Pointer, *args, **opts) : self unsafe_construct

Class methods inherited from class Reference

pre_initialize(address : Pointer) pre_initialize

Instance methods inherited from class Object

! : Bool !, !=(other) !=, !~(other) !~, ==(other) ==, ===(other : JSON::Any)
===(other : YAML::Any)
===(other)
===
, =~(other) =~, as(type : Class) as, as?(type : Class) as?, class class, dup dup, hash(hasher)
hash
hash
, in?(collection : Object) : Bool
in?(*values : Object) : Bool
in?
, inspect(io : IO) : Nil
inspect : String
inspect
, is_a?(type : Class) : Bool is_a?, itself itself, nil? : Bool nil?, not_nil!(message)
not_nil!
not_nil!
, pretty_inspect(width = 79, newline = "\n", indent = 0) : String pretty_inspect, pretty_print(pp : PrettyPrint) : Nil pretty_print, responds_to?(name : Symbol) : Bool responds_to?, tap(&) tap, to_json(io : IO) : Nil
to_json : String
to_json
, to_pretty_json(indent : String = " ") : String
to_pretty_json(io : IO, indent : String = " ") : Nil
to_pretty_json
, to_s(io : IO) : Nil
to_s : String
to_s
, to_yaml(io : IO) : Nil
to_yaml : String
to_yaml
, try(&) try, unsafe_as(type : T.class) forall T unsafe_as

Class methods inherited from class Object

from_json(string_or_io : String | IO, root : String)
from_json(string_or_io : String | IO)
from_json
, from_yaml(string_or_io : String | IO) from_yaml

Macros inherited from class Object

class_getter(*names, &block) class_getter, class_getter!(*names) class_getter!, class_getter?(*names, &block) class_getter?, class_property(*names, &block) class_property, class_property!(*names) class_property!, class_property?(*names, &block) class_property?, class_setter(*names) class_setter, def_clone def_clone, def_equals(*fields) def_equals, def_equals_and_hash(*fields) def_equals_and_hash, def_hash(*fields) def_hash, delegate(*methods, to object) delegate, forward_missing_to(delegate) forward_missing_to, getter(*names, &block) getter, getter!(*names) getter!, getter?(*names, &block) getter?, property(*names, &block) property, property!(*names) property!, property?(*names, &block) property?, setter(*names) setter

Constructor Detail

def self.new(name : String, args : Array(Arg), body, real_name : String) #

[View source]

Instance Method Detail

def call_convention : LLVM::CallConvention | Nil #

[View source]
def call_convention=(call_convention : LLVM::CallConvention | Nil) #

[View source]
def compatible_with?(other) #

[View source]
def dead=(dead : Bool) #

[View source]
def dead? : Bool #

[View source]
def external_var=(external_var : Bool) #

[View source]
def external_var? : Bool #

[View source]
def fun_def : FunDef #

[View source]
def fun_def=(fun_def : FunDef) #

[View source]
def fun_def? : FunDef | Nil #

[View source]
def hash(hasher) #
Description copied from class Crystal::Def

See Object#hash(hasher)


[View source]
def mangled_name(program, obj_type) #

[View source]
def real_name : String #

[View source]
def real_name=(real_name : String) #

[View source]
def thread_local=(thread_local : Bool) #

An External is also used to represent external variables such as libc's $errno, which can be annotated with @[ThreadLocal]. This property is true in that case.


[View source]
def thread_local? : Bool #

An External is also used to represent external variables such as libc's $errno, which can be annotated with @[ThreadLocal]. This property is true in that case.


[View source]
def used=(used : Bool) #

[View source]
def used? : Bool #

[View source]
def varargs=(varargs : Bool) #

[View source]
def varargs? : Bool #

[View source]
def wasm_import_module : String | Nil #

[View source]
def wasm_import_module=(wasm_import_module : String | Nil) #

[View source]