Sha256: b729c0cee8c409e6897cdc8b3b9820d8244ce1794b0172cd87fb0b793b6b59b5
Contents?: true
Size: 1.64 KB
Versions: 4
Compression:
Stored size: 1.64 KB
Contents
# encoding: utf-8 # frozen_string_literal: true require "carbon/concrete/item/base" require "carbon/concrete/item/data" require "carbon/concrete/item/function" require "carbon/concrete/item/internal" require "carbon/concrete/item/struct" require "carbon/concrete/item/trait" module Carbon module Concrete # Items. These are buildable concepts that have dependencies. Each item # includes {Item::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}. module Item end end end
Version data entries
4 entries across 4 versions & 1 rubygems
Version | Path |
---|---|
carbon-core-0.2.1 | lib/carbon/concrete/item.rb |
carbon-core-0.2.0 | lib/carbon/concrete/item.rb |
carbon-core-0.1.1 | lib/carbon/concrete/item.rb |
carbon-core-0.1.0 | lib/carbon/concrete/item.rb |