class AdLint::Cc1::QualifiedType
Attributes
base_type[R]
Public Class Methods
new(type_tbl, base_type, *cvr_quals)
click to toggle source
Calls superclass method
AdLint::Cc1::Type::new
# File lib/adlint/cc1/type.rb, line 1687 def initialize(type_tbl, base_type, *cvr_quals) super(type_tbl, create_name(base_type, cvr_quals)) @base_type = base_type @cvr_qualifiers = cvr_quals end
Public Instance Methods
brief_image()
click to toggle source
# File lib/adlint/cc1/type.rb, line 1703 def brief_image @brief_image ||= create_brief_image(@base_type, @cvr_qualifiers) end
const?()
click to toggle source
# File lib/adlint/cc1/type.rb, line 1770 def const? @cvr_qualifiers.include?(:const) end
convertible?(to_type)
click to toggle source
# File lib/adlint/cc1/type.rb, line 1724 def convertible?(to_type) real_type.unqualify.convertible?(to_type.real_type.unqualify) end
dup()
click to toggle source
# File lib/adlint/cc1/type.rb, line 1854 def dup QualifiedType.new(type_table, @base_type.dup, *@cvr_qualifiers) end
id()
click to toggle source
# File lib/adlint/cc1/type.rb, line 1695 def id @id ||= QualifiedTypeId.new(@base_type, @cvr_qualifiers) end
image()
click to toggle source
# File lib/adlint/cc1/type.rb, line 1699 def image @image ||= create_image(@base_type, @cvr_qualifiers) end
more_cv_qualified?(than_type)
click to toggle source
# File lib/adlint/cc1/type.rb, line 1728 def more_cv_qualified?(than_type) # NOTE: The term `more cv-qualified' means: # const > none # volatile > none # const volatile > none # const volatile > const # const volatile > volatile if than_type.qualified? if than_type.const? && than_type.volatile? false else if self.const? && self.volatile? true else false end end else true end end
qualified?()
click to toggle source
# File lib/adlint/cc1/type.rb, line 1758 def qualified? true end
real_type()
click to toggle source
# File lib/adlint/cc1/type.rb, line 1715 def real_type type_table.qualified_type(@base_type.real_type, *@cvr_qualifiers) end
restrict?()
click to toggle source
# File lib/adlint/cc1/type.rb, line 1778 def restrict? @cvr_qualifiers.include?(:restrict) end
volatile?()
click to toggle source
# File lib/adlint/cc1/type.rb, line 1774 def volatile? @cvr_qualifiers.include?(:volatile) end
Private Instance Methods
append_cvr_qualifiers(type_str, cvr_quals)
click to toggle source
# File lib/adlint/cc1/type.rb, line 1871 def append_cvr_qualifiers(type_str, cvr_quals) qualed_str = type_str qualed_str = "#{qualed_str} const" if cvr_quals.include?(:const) qualed_str = "#{qualed_str} volatile" if cvr_quals.include?(:volatile) qualed_str = "#{qualed_str} restrict" if cvr_quals.include?(:restrict) qualed_str end
create_brief_image(base_type, cvr_quals)
click to toggle source
# File lib/adlint/cc1/type.rb, line 1867 def create_brief_image(base_type, cvr_quals) append_cvr_qualifiers(base_type.brief_image, cvr_quals) end
create_image(base_type, cvr_quals)
click to toggle source
# File lib/adlint/cc1/type.rb, line 1863 def create_image(base_type, cvr_quals) append_cvr_qualifiers(base_type.image, cvr_quals) end
create_name(base_type, cvr_quals)
click to toggle source
# File lib/adlint/cc1/type.rb, line 1859 def create_name(base_type, cvr_quals) append_cvr_qualifiers(base_type.name, cvr_quals) end