• Skip to content
  • Skip to link menu
KDE API Reference
  • KDE API Reference
  • kdevelop API Reference
  • KDE Home
  • Contact Us
 

kdevplatform/language/duchain

  • KDevelop
  • DelayedType
Public Types | Public Member Functions | Protected Member Functions | List of all members
KDevelop::DelayedType Class Reference

#include <delayedtype.h>

Inheritance diagram for KDevelop::DelayedType:
Inheritance graph
[legend]

Public Types

enum  { Identity = 8 }
 
using Data = DelayedTypeData
 
enum  Kind : quint8 { Delayed, Unresolved }
 
using Ptr = TypePtr< DelayedType >
 
- Public Types inherited from KDevelop::AbstractType
enum  { Identity = 1 }
 
enum  CommonModifiers : quint32 {
  NoModifiers = 0, ConstModifier = 1 << 0, VolatileModifier = 1 << 1, TransientModifier = 1 << 2,
  NewModifier = 1 << 3, SealedModifier = 1 << 4, UnsafeModifier = 1 << 5, FixedModifier = 1 << 6,
  ShortModifier = 1 << 7, LongModifier = 1 << 8, LongLongModifier = 1 << 9, SignedModifier = 1 << 10,
  UnsignedModifier = 1 << 11, LanguageSpecificModifier = 1 << 12
}
 
using Data = AbstractTypeData
 
using Ptr = TypePtr< AbstractType >
 
enum  WhichType : quint8 {
  TypeAbstract, TypeIntegral, TypePointer, TypeReference,
  TypeFunction, TypeStructure, TypeArray, TypeDelayed,
  TypeEnumeration, TypeEnumerator, TypeAlias, TypeUnsure
}
 

Public Member Functions

 DelayedType ()
 
 DelayedType (const DelayedType &rhs)
 
 DelayedType (DelayedTypeData &data)
 
 ~DelayedType () override
 
AbstractType * clone () const override
 
bool equals (const AbstractType *rhs) const override
 
uint hash () const override
 
KDevelop::IndexedTypeIdentifier identifier () const
 
Kind kind () const
 
DelayedType & operator= (const DelayedType &rhs)=delete
 
void setIdentifier (const KDevelop::IndexedTypeIdentifier &identifier)
 
void setKind (Kind kind)
 
QString toString () const override
 
WhichType whichType () const override
 
- Public Member Functions inherited from KDevelop::AbstractType
 AbstractType ()
 
 AbstractType (AbstractTypeData &dd)
 
 AbstractType (const AbstractType &rhs)=delete
 
virtual ~AbstractType ()
 
void accept (TypeVisitor *v) const
 
int64_t alignOf () const
 
virtual void exchangeTypes (TypeExchanger *exchanger)
 
IndexedType indexed () const
 
void makeDynamic ()
 
quint32 modifiers () const
 
AbstractType & operator= (const AbstractType &rhs)=delete
 
void setAlignOf (int64_t alignedTo)
 
void setModifiers (quint32 modifiers)
 
void setSizeOf (int64_t sizeOf)
 
int64_t sizeOf () const
 
- Public Member Functions inherited from QSharedData
 QSharedData ()
 
 QSharedData (const QSharedData &other)
 

Protected Member Functions

void accept0 (KDevelop::TypeVisitor *v) const override
 
- Protected Member Functions inherited from KDevelop::AbstractType
QString toString (bool spaceOnLeft) const
 

Additional Inherited Members

- Static Public Member Functions inherited from KDevelop::AbstractType
static void acceptType (AbstractType::Ptr type, TypeVisitor *v)
 
template<class Type >
static Type::Data & copyData (const typename Type::Data &rhs)
 
template<class DataType >
static DataType & copyDataDirectly (const DataType &rhs)
 
template<class Type >
static Type::Data & createData ()
 
- Protected Attributes inherited from KDevelop::AbstractType
AbstractTypeData * d_ptr
 

Detailed Description

A type which has not yet been resolved.

Delayed types can be used for any types that cannot be resolved in the moment they are encountered. They can be used for example in template-classes, or to store the names of unresolved types. In a template-class, many types can not be evaluated at the time they are used, because they depend on unknown template-parameters. Delayed types store the way the type would be searched, and can be used to find the type once the template-paremeters have values.

Definition at line 38 of file delayedtype.h.

Member Typedef Documentation

◆ Data

using KDevelop::DelayedType::Data = DelayedTypeData

Definition at line 92 of file delayedtype.h.

◆ Ptr

using KDevelop::DelayedType::Ptr = TypePtr<DelayedType>

Definition at line 42 of file delayedtype.h.

Member Enumeration Documentation

◆ anonymous enum

anonymous enum
Enumerator
Identity 

Definition at line 88 of file delayedtype.h.

◆ Kind

enum KDevelop::DelayedType::Kind : quint8

An enumeration of.

Enumerator
Delayed 

The type should be resolved later.

This is the default.

Unresolved 

The type could not be resolved.

Definition at line 45 of file delayedtype.h.

Constructor & Destructor Documentation

◆ DelayedType() [1/3]

KDevelop::DelayedType::DelayedType ( )

Default constructor.

Definition at line 77 of file delayedtype.cpp.

◆ DelayedType() [2/3]

KDevelop::DelayedType::DelayedType ( const DelayedType &  rhs)

Copy constructor.

Parameters
rhstype to copy

Definition at line 82 of file delayedtype.cpp.

◆ DelayedType() [3/3]

KDevelop::DelayedType::DelayedType ( DelayedTypeData &  data)
explicit

Constructor using raw data.

Parameters
datainternal data.

Definition at line 33 of file delayedtype.cpp.

◆ ~DelayedType()

KDevelop::DelayedType::~DelayedType ( )
override

Destructor.

Definition at line 86 of file delayedtype.cpp.

Member Function Documentation

◆ accept0()

void KDevelop::DelayedType::accept0 ( KDevelop::TypeVisitor *  v) const
overrideprotectedvirtual

Visitor method, reimplement to allow visiting of types.

Parameters
vvisitor which is visiting.

Implements KDevelop::AbstractType.

Definition at line 100 of file delayedtype.cpp.

◆ clone()

AbstractType * KDevelop::DelayedType::clone ( ) const
overridevirtual

Should create a clone of the source-type, with as much data copied as possible without breaking the du-chain.

Implements KDevelop::AbstractType.

Definition at line 37 of file delayedtype.cpp.

◆ equals()

bool KDevelop::DelayedType::equals ( const AbstractType *  rhs) const
overridevirtual

Should return whether this type's content equals the given one Since this is used by the type-repository, it must compare ALL members of the data type.

Reimplemented from KDevelop::AbstractType.

Definition at line 42 of file delayedtype.cpp.

◆ hash()

uint KDevelop::DelayedType::hash ( ) const
overridevirtual

A hash-value that should have the following properties:

  • When two types match on equals(), it should be same.
  • When two types don't match on equals(), it should be different with a high probability.

Reimplemented from KDevelop::AbstractType.

Definition at line 111 of file delayedtype.cpp.

◆ identifier()

IndexedTypeIdentifier KDevelop::DelayedType::identifier ( ) const

Access the type identifier which this type represents.

Returns
the type identifier.

Definition at line 95 of file delayedtype.cpp.

◆ kind()

DelayedType::Kind KDevelop::DelayedType::kind ( ) const

Definition at line 67 of file delayedtype.cpp.

◆ operator=()

DelayedType& KDevelop::DelayedType::operator= ( const DelayedType &  rhs)
delete

◆ setIdentifier()

void KDevelop::DelayedType::setIdentifier ( const KDevelop::IndexedTypeIdentifier &  identifier)

Set the type identifier which this type represents.

Parameters
identifierthe type identifier.

Definition at line 90 of file delayedtype.cpp.

◆ setKind()

void KDevelop::DelayedType::setKind ( Kind  kind)

Definition at line 72 of file delayedtype.cpp.

◆ toString()

QString KDevelop::DelayedType::toString ( ) const
overridevirtual

Returns this type as a string, preferably the same as it is expressed in the code.

Returns
this type as a string

Reimplemented from KDevelop::AbstractType.

Definition at line 62 of file delayedtype.cpp.

◆ whichType()

AbstractType::WhichType KDevelop::DelayedType::whichType ( ) const
overridevirtual

Determine which data type this abstract type represents.

Returns
the data type represented by this type.

Reimplemented from KDevelop::AbstractType.

Definition at line 57 of file delayedtype.cpp.


The documentation for this class was generated from the following files:
  • delayedtype.h
  • delayedtype.cpp
This file is part of the KDE documentation.
Documentation copyright © 1996-2021 The KDE developers.
Generated on Wed Mar 3 2021 00:37:28 by doxygen 1.8.16 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.

kdevplatform/language/duchain

Skip menu "kdevplatform/language/duchain"
  • Main Page
  • Namespace List
  • Namespace Members
  • Alphabetical List
  • Class List
  • Class Hierarchy
  • Class Members
  • File List
  • File Members
  • Related Pages

kdevelop API Reference

Skip menu "kdevelop API Reference"
  • kdevplatform
  •   debugger
  •   documentation
  •   interfaces
  •   language
  •     assistant
  •     backgroundparser
  •     checks
  •     classmodel
  •     codecompletion
  •     codegen
  •     duchain
  •     editor
  •     highlighting
  •     interfaces
  •     util
  •   outputview
  •   project
  •   serialization
  •   shell
  •   sublime
  •   tests
  •   util
  •   vcs

Search



Report problems with this website to our bug tracking system.
Contact the specific authors with questions and comments about the page contents.

KDE® and the K Desktop Environment® logo are registered trademarks of KDE e.V. | Legal