[][src]Struct loa::semantics::Navigator

pub struct Navigator { /* fields omitted */ }

Methods

impl Navigator[src]

pub fn new(modules: Arc<HashMap<URI, Arc<Tree>>>) -> Navigator[src]

pub fn traverse_all<F: FnMut(&Node) -> bool>(&self, f: &mut F)[src]

pub fn traverse_all_repl_lines<F: FnMut(&Node) -> bool>(&self, f: &mut F)[src]

pub fn source(&self, uri: &URI) -> Option<Arc<Source>>[src]

pub fn sources(&self) -> Vec<Arc<Source>>[src]

pub fn all_top_level_declarations(&self) -> Vec<Node>[src]

pub fn declarations_of_repl_line(&self, repl_line: &Node) -> Vec<Node>[src]

pub fn modules(&self) -> Vec<Node>[src]

pub fn find_node(&self, id: Id) -> Option<Node>[src]

pub fn find_node_in(&self, uri: &URI, id: Id) -> Option<Node>[src]

pub fn parent(&self, child: &Node) -> Option<Node>[src]

pub fn children(&self, parent: &Node) -> Vec<Node>[src]

pub fn message_selector(&self, message: &Node) -> Option<String>[src]

pub fn message_arguments(&self, message: &Node) -> Vec<Node>[src]

pub fn symbol_of(&self, node: &Node) -> Option<(String, Node)>[src]

pub fn find_usage(
    &self,
    node: &Node,
    kind: DeclarationKind,
    types: &Types
) -> Option<Arc<Usage>>
[src]

pub fn method_from_message(&self, message: &Node, types: &Types) -> Option<Node>[src]

pub fn find_method_references(&self, method: &Node, types: &Types) -> Vec<Node>[src]

pub fn find_import_directives_from_declaration(
    &self,
    declaration: &Node
) -> Vec<Node>
[src]

pub fn imports_matching(&self, qualified_name: String) -> Vec<Node>[src]

pub fn all_message_sends(&self) -> Vec<Node>[src]

pub fn all_type_parameters(&self) -> Vec<Node>[src]

pub fn all_messages(&self) -> Vec<Node>[src]

pub fn all_classes(&self) -> Vec<Node>[src]

pub fn all_initializers(&self) -> Vec<Node>[src]

pub fn all_is_directives(&self) -> Vec<Node>[src]

pub fn all_imports(&self) -> Vec<Node>[src]

pub fn usage_target_from_operator(&self, operator: &Node) -> Option<Node>[src]

pub fn namespace_of_uri(&self, uri: &URI) -> Option<(String, Node)>[src]

pub fn qualified_name_of(
    &self,
    declaration: &Node
) -> Option<(String, Option<Node>, Node)>
[src]

pub fn qualified_name_of_method(&self, method: &Node) -> Option<String>[src]

pub fn usage_target_from_symbol(&self, symbol: &Node) -> Option<Node>[src]

pub fn find_child(&self, parent: &Node, child_id: Id) -> Option<Node>[src]

pub fn find_references(
    &self,
    declaration: &Node,
    kind: DeclarationKind
) -> Vec<Node>
[src]

pub fn find_declaration(
    &self,
    reference: &Node,
    kind: DeclarationKind
) -> Option<Node>
[src]

pub fn find_declaration_above(
    &self,
    node: &Node,
    name: String,
    kind: DeclarationKind
) -> Option<Node>
[src]

pub fn find_references_through_imports(
    &self,
    module: Node,
    exported_name: String,
    kind: DeclarationKind
) -> Vec<Node>
[src]

pub fn import_directives_of_module(&self, module: &Node) -> Vec<Node>[src]

pub fn find_declaration_from_import(
    &self,
    import_directive: &Node
) -> Option<Node>
[src]

pub fn modules_in_namespace(&self, namespace: String) -> Vec<Node>[src]

pub fn namespace_of_module(&self, module: &Node) -> Option<(String, Node)>[src]

pub fn qualified_symbol_to_string(&self, qualified_symbol: &Node) -> String[src]

pub fn qualified_symbol_to_strings(
    &self,
    qualified_symbol: &Node
) -> Vec<String>
[src]

pub fn symbol_to_string(&self, symbol: &Node) -> Option<String>[src]

pub fn operator_to_string(&self, symbol: &Node) -> Option<String>[src]

pub fn module_declarations_in(&self, module: &Node) -> Vec<(bool, Node)>[src]

pub fn super_type_expressions(&self, class: &Node) -> Vec<Node>[src]

pub fn all_expressions(&self) -> Vec<Node>[src]

pub fn all_references(&self, kind: DeclarationKind) -> Vec<Node>[src]

pub fn all_reference_symbols(&self, kind: DeclarationKind) -> Vec<Node>[src]

pub fn all_matching<F: Fn(&Node) -> bool>(&self, f: F) -> Vec<Node>[src]

pub fn child_nodes(&self, node: &Node) -> Vec<Node>[src]

pub fn traverse<F: FnMut(&Node) -> bool>(&self, from: &Node, f: &mut F)[src]

Traverses all nodes in the tree below this point. If the callback returns true for a given node, the traversal will continue down its children. Otherwise, the traversal will not traverse down that path.

pub fn closest_upwards<F: Fn(&Node) -> bool>(
    &self,
    node: &Node,
    f: F
) -> Option<Node>
[src]

pub fn all_downwards<F: Fn(&Node) -> bool>(
    &self,
    from: &Node,
    f: &F
) -> Vec<Node>
[src]

pub fn any_downwards<F: Fn(&Node) -> bool>(&self, from: &Node, f: &F) -> bool[src]

pub fn closest_expression_upwards(&self, from: &Node) -> Option<Node>[src]

pub fn closest_message_send_upwards(&self, from: &Node) -> Option<Node>[src]

pub fn closest_message_pattern_upwards(&self, from: &Node) -> Option<Node>[src]

pub fn all_expressions_downwards(&self, from: &Node) -> Vec<Node>[src]

pub fn closest_type_expression_upwards(&self, from: &Node) -> Option<Node>[src]

pub fn all_type_expressions_downwards(&self, from: &Node) -> Vec<Node>[src]

pub fn closest_class_upwards(&self, from: &Node) -> Option<Node>[src]

pub fn closest_scope_root_upwards(&self, from: &Node) -> Option<Node>[src]

pub fn all_scope_roots_downwards(&self, from: &Node) -> Vec<Node>[src]

pub fn all_scope_roots(&self) -> Vec<Node>[src]

pub fn all_reference_type_expressions(&self) -> Vec<Node>[src]

pub fn all_number_literals(&self) -> Vec<Node>[src]

pub fn closest_declaration_upwards(
    &self,
    from: &Node,
    kind: DeclarationKind
) -> Option<Node>
[src]

pub fn all_declarations_downwards(
    &self,
    from: &Node,
    kind: DeclarationKind
) -> Vec<Node>
[src]

pub fn all_classes_downwards(&self, from: &Node) -> Vec<Node>[src]

pub fn closest_is_directive_upwards(&self, from: &Node) -> Option<Node>[src]

pub fn all_is_directives_downwards(&self, from: &Node) -> Vec<Node>[src]

pub fn closest_references_upwards(
    &self,
    from: &Node,
    kind: DeclarationKind
) -> Option<Node>
[src]

pub fn all_references_downwards(
    &self,
    from: &Node,
    kind: DeclarationKind
) -> Vec<Node>
[src]

pub fn all_declarations_in_scope(
    &self,
    scope_root: &Node,
    kind: DeclarationKind
) -> Vec<Node>
[src]

pub fn declaration_is_exported(&self, declaration: &Node) -> bool[src]

pub fn message_pattern_of_method(&self, method: &Node) -> Option<Node>[src]

pub fn message_pattern_of_initializer(&self, initializer: &Node) -> Option<Node>[src]

pub fn message_pattern_selector(&self, message_pattern: &Node) -> Option<String>[src]

pub fn root_of(&self, uri: &URI) -> Option<Node>[src]

pub fn methods_of_class(&self, class: &Node) -> Vec<Node>[src]

pub fn own_variables_of_class(&self, class: &Node) -> Vec<Node>[src]

pub fn variables_of_class(&self, class: &Node) -> Vec<Node>[src]

pub fn message_arity(&self, message: &Node) -> Option<usize>[src]

pub fn message_pattern_arity(&self, message_pattern: &Node) -> Option<usize>[src]

pub fn method_arity(&self, method: &Node) -> Option<usize>[src]

pub fn index_of_parameter(&self, parameter: &Node) -> Option<usize>[src]

pub fn all_stdlib_classes(&self) -> HashMap<String, Node>[src]

pub fn find_stdlib_class(&self, name: &str) -> Option<Node>[src]

pub fn type_arguments_of_type_argument_list(
    &self,
    type_argument_list: &Node
) -> Vec<Node>
[src]

pub fn type_arguments_of_reference_type_expression(
    &self,
    reference: &Node
) -> Vec<Node>
[src]

pub fn type_parameters_of_type_parameter_list(
    &self,
    type_parameter_list: &Node
) -> Vec<Node>
[src]

pub fn type_parameters_of_type_declaration(
    &self,
    declaration: &Node
) -> Vec<Node>
[src]

pub fn method_selector(&self, method: &Node) -> Option<String>[src]

pub fn all_super_classes_of(&self, class: &Node) -> Vec<Node>[src]

pub fn all_sub_classes_of(&self, class: &Node) -> Vec<Node>[src]

pub fn tree_of(&self, node: &Node) -> Option<&Arc<Tree>>[src]

pub fn doc_of(&self, node: &Node) -> Option<Node>[src]

pub fn blocks_of_doc(&self, doc: &Node) -> Vec<Node>[src]

pub fn visibility_of_method(&self, method: &Node) -> Option<Token>[src]

pub fn method_is_native(&self, method: &Node) -> bool[src]

pub fn method_is_visible_from(
    &self,
    method: &Node,
    source_node: &Node
) -> Option<bool>
[src]

pub fn declarations_in_scope(
    &self,
    from: Node,
    kind: DeclarationKind
) -> Vec<(String, Node)>
[src]

pub fn method_body(&self, method: &Node) -> Option<Node>[src]

pub fn keyword_pair(&self, keyword_pair: &Node) -> Option<(Node, Node)>[src]

pub fn keyword_pairs(
    &self,
    parent: &Node,
    keyword_pair_ids: &Vec<Id>
) -> Vec<(Node, Node)>
[src]

pub fn message_pattern_parameters(&self, message_pattern: &Node) -> Vec<Node>[src]

pub fn signature_parameters(&self, signature: &Node) -> Vec<Node>[src]

pub fn method_parameters(&self, method: &Node) -> Vec<Node>[src]

pub fn methods_overridden_by(&self, method: &Node) -> Vec<Node>[src]

pub fn locals_crossing_into(&self, expression: &Node) -> Vec<Node>[src]

pub fn self_crosses_into(&self, expression: &Node) -> bool[src]

pub fn is_within(&self, needle: &Node, haystack: &Node) -> bool[src]

pub fn has_class_object(&self, class: &Node) -> bool[src]

Whether a class has a class object (i.e. isn't a constant class).

pub fn initializers_of(&self, class: &Node) -> Vec<Node>[src]

pub fn initializer_selector(&self, initializer: &Node) -> Option<String>[src]

pub fn initializer_arity(&self, initializer: &Node) -> Option<usize>[src]

pub fn initializer_parameters(&self, initializer: &Node) -> Vec<Node>[src]

pub fn initializer_assignments(&self, initializer: &Node) -> Vec<(String, Node)>[src]

pub fn variable_has_const_initializer(&self, variable: &Node) -> bool[src]

Trait Implementations

impl Clone for Navigator[src]

Auto Trait Implementations

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.