Module: Jade::Frontend::ForwardDeclaration

Extended by:
ForwardDeclaration
Included in:
ForwardDeclaration
Defined in:
lib/jade/frontend/forward_declaration.rb,
lib/jade/frontend/forward_declaration/body.rb,
lib/jade/frontend/forward_declaration/helper.rb,
lib/jade/frontend/forward_declaration/module.rb,
lib/jade/frontend/forward_declaration/implementation.rb,
lib/jade/frontend/forward_declaration/error/bad_import.rb,
lib/jade/frontend/forward_declaration/type_declaration.rb,
lib/jade/frontend/forward_declaration/import_declaration.rb,
lib/jade/frontend/forward_declaration/struct_declaration.rb,
lib/jade/frontend/forward_declaration/error/type_not_found.rb,
lib/jade/frontend/forward_declaration/function_declaration.rb,
lib/jade/frontend/forward_declaration/interface_declaration.rb,
lib/jade/frontend/forward_declaration/error/module_not_found.rb,
lib/jade/frontend/forward_declaration/implementation_function.rb,
lib/jade/frontend/forward_declaration/error/type_not_lowerable.rb,
lib/jade/frontend/forward_declaration/error/tuple_arity_overflow.rb,
lib/jade/frontend/forward_declaration/interop_import_declaration.rb,
lib/jade/frontend/forward_declaration/error/exposed_type_not_found.rb,
lib/jade/frontend/forward_declaration/error/private_type_expansion.rb,
lib/jade/frontend/forward_declaration/error/exposed_value_not_found.rb,
lib/jade/frontend/forward_declaration/error/unknown_extends_interface.rb

Defined Under Namespace

Modules: Body, Error, FunctionDeclaration, Helper, Implementation, ImplementationFunction, ImportDeclaration, InterfaceDeclaration, InteropImportDeclaration, Module, StructDeclaration, TypeDeclaration Classes: Result

Instance Method Summary collapse

Instance Method Details

#declare(node, registry, entry) ⇒ Object



32
33
34
35
36
# File 'lib/jade/frontend/forward_declaration.rb', line 32

def declare(node, registry, entry)
  shallow_declare_node(node, registry, entry)
    .then { deep_declare_node(node, it.entry, registry).add_errors(it.errors) }
    .to_result
end

#declare_entry(entry, registry) ⇒ Object



38
39
40
# File 'lib/jade/frontend/forward_declaration.rb', line 38

def declare_entry(entry, registry)
  declare(entry.ast, registry, entry)
end

#deep_declare_node(node, entry, registry) ⇒ Object



47
48
49
50
# File 'lib/jade/frontend/forward_declaration.rb', line 47

def deep_declare_node(node, entry, registry)
  resolver(node, entry)
    &.deep(node, entry, registry) || Result[entry, []]
end

#shallow_declare_node(node, registry, entry) ⇒ Object



42
43
44
45
# File 'lib/jade/frontend/forward_declaration.rb', line 42

def shallow_declare_node(node, registry, entry)
  resolver(node, entry)
    &.shallow(node, registry, entry) || Result[entry, []]
end