Envision
A visual programming IDE for object-oriented languages
|
Public Member Functions | |
CodeUnitPart (CodeUnit *parent) | |
void | calculateDependencies (QList< CodeUnit * > &allUnits) |
QSet< CodeUnitPart * > | dependencies () const |
QSet< CodeUnitPart * > | dependenciesWithinFile (QList< CodeUnit * > units) |
Export::SourceFragment * | fragment () const |
bool | isSourceFragmentEmpty () const |
returns whether there is at least one text fragment inside sourceFragment. More... | |
const QSet< Model::Node * > & | nameNodes () const |
CodeUnit * | parent () const |
const QSet< OOModel::ReferenceExpression * > & | referenceNodes () const |
void | setFragment (Export::SourceFragment *sourceFragment) |
QSet< DependencyTarget > | softDependencies () const |
Private Member Functions | |
void | assertForcedDependencyNecessary (OOModel::ReferenceExpression *reference) |
checks whether the provided reference is "Type" in constructs of the form: (void)(Type*)nullptr; this construct is used to force dependencies when Envision's reference resolution system is not yet good enough to properly detect the dependency, causing the export to C++ to omit a necessary #include. More... | |
Static Private Member Functions | |
static Model::Node * | fixedTarget (OOModel::ReferenceExpression *referenceExpression) |
static bool | isNameOnlyDependency (OOModel::ReferenceExpression *reference) |
static const OOModel::Type * | stripPointerOrReference (const OOModel::Type *type) |
Private Attributes | |
QSet< CodeUnitPart * > | dependencies_ |
Export::SourceFragment * | fragment_ {} |
QSet< DependencyTarget > | hardTargets_ |
QSet< Model::Node * > | nameNodes_ |
CodeUnit * | parent_ {} |
QSet< OOModel::ReferenceExpression * > | referenceNodes_ |
QSet< DependencyTarget > | softTargets_ |
CppExport::CodeUnitPart::CodeUnitPart | ( | CodeUnit * | parent | ) |
|
private |
checks whether the provided reference is "Type" in constructs of the form: (void)(Type*)nullptr; this construct is used to force dependencies when Envision's reference resolution system is not yet good enough to properly detect the dependency, causing the export to C++ to omit a necessary #include.
if the structure matches the construct then the method asserts that no hard dependency on it has been found already so in case one forced dependency becomes redundant it can be detected more easily.
void CppExport::CodeUnitPart::calculateDependencies | ( | QList< CodeUnit * > & | allUnits | ) |
|
inline |
QSet< CodeUnitPart * > CppExport::CodeUnitPart::dependenciesWithinFile | ( | QList< CodeUnit * > | units | ) |
|
staticprivate |
|
inline |
|
staticprivate |
bool CppExport::CodeUnitPart::isSourceFragmentEmpty | ( | ) | const |
returns whether there is at least one text fragment inside sourceFragment.
|
inline |
|
inline |
|
inline |
void CppExport::CodeUnitPart::setFragment | ( | Export::SourceFragment * | sourceFragment | ) |
|
inline |
|
staticprivate |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |