Module: Carbon::Concrete::Item
- Defined in:
- lib/carbon/concrete/item.rb,
lib/carbon/concrete/item/base.rb,
lib/carbon/concrete/item/data.rb,
lib/carbon/concrete/item/class.rb,
lib/carbon/concrete/item/trait.rb,
lib/carbon/concrete/item/struct.rb,
lib/carbon/concrete/item/function.rb,
lib/carbon/concrete/item/internal.rb,
lib/carbon/concrete/item/class/element.rb,
lib/carbon/concrete/item/struct/element.rb,
lib/carbon/concrete/item/trait/expectation.rb
Overview
Items. These are buildable concepts that have dependencies. Each item includes Base in order to respond to the item API. The main API for items are the following set of methods:
#intern
(String
) - Returns an "interned" name of the item. See Base#intern.#name
(String
) - The full name of the item. See Base#name.#generics
(<Type::Generic>
) - The generics of the item. This is normally something like[T]
; these most likely have no correspondance to an actual type. See Base#generics.#dependencies
(Set<Request>
) - A set of dependencies that the item has. This includes the generics that the item uses. See Base#dependencies.#==
,#eql?
(Boolean
) - Comparison. Normally uses the#intern
name for a basis of comarison. See Base#==.#call
- Builds the item for compilation. This is the last stage. This should generate something for LLVM in some way. See Base#call.#corrected_dependencies
(Enumerable
) - Corrects the depdenencies of the Item. This makes it so that the generics of the passed request are matched with the generics of the dependencies, essentially resolving them. See Base#corrected_dependencies.
Defined Under Namespace
Modules: Base, Data Classes: Class, Function, Internal, Struct, Trait