Dimitar Dobrev
e6c4bb9cc5
Fixed a crash when overrides change the sugaring of involved types.
...
Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
10 years ago
Dimitar Dobrev
5d8ecf32d7
Extended the AST with the GCC vector type ("__attribute__").
...
Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
10 years ago
Dimitar Dobrev
50ee414799
Fixed the C++ type printer to handle const value types.
...
Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
10 years ago
Joao Matos
65fc10680a
Move SourceLocation to CppSharp.AST.
10 years ago
Joao Matos
a44da437e6
Rename AstVisitor.Options to VisitOptions.
10 years ago
Joao Matos
77b6eef89d
Extracted QualifiedNameSeparator from GetQualifiedName.
10 years ago
Joao Matos
bbfff6eec0
Improved error message for unhandled CIL type prints.
10 years ago
Joao Matos
da10dd7046
Implement const-qualified printing of CIL strings.
10 years ago
Joao Matos
3ff416b483
Updated type printer to latest changes from Mono managed to native codebase.
10 years ago
Joao Matos
a237dbf1e2
Updated build files to Premake 5 conventions.
10 years ago
Dimitar Dobrev
7d6f344324
Improved the default names of libraries for inlines and template specialisations.
...
Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
10 years ago
Dimitar Dobrev
a4dfeb94be
Moved the marking of supported template specialisations to a pass.
...
This allows custom passes to add other specialisations to support.
Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
10 years ago
Dimitar Dobrev
deea8d8cda
Removed functions made ambiguous by different qualifiers on the same type in their parameter.
...
Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
10 years ago
Dimitar Dobrev
d419cb7156
Added all system fields to the internal layouts used in the C# generator.
...
Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
10 years ago
Dimitar Dobrev
7d67f4b023
Added unary transformations and other fixes to restore the full build with all tests.
...
Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
10 years ago
Joao Matos
b7689b2d60
Added support for missing basic Clang built-in types.
10 years ago
Joao Matos
09a9d17efb
Moved type printing functionality to CppSharp.AST.
10 years ago
Joao Matos
1206b48776
Improved debugging representation of template arguments and specializations.
10 years ago
Joao Matos
4b1309f5be
Added support for C++14 variable templates and specializations.
10 years ago
Joao Matos
4b8bb474fa
Clean up template declarations visiting behavior.
10 years ago
Dimitar Dobrev
b77d2ccdde
Ensured the system module only contains units from the current run.
...
Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
10 years ago
Dimitar Dobrev
22c15789c5
Changed the searching for declarations to only return relevant ones and to work for variables.
...
Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
10 years ago
Dimitar Dobrev
32122a1bba
Properly handled enumeration items in default values of parameters.
...
Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
10 years ago
Dimitar Dobrev
3cd024cccf
Added marshalling of std::string to the C# end.
...
Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
10 years ago
Dimitar Dobrev
fc87fb6ee9
Added the desugared type, if any, of DependentNameType, to the AST.
...
Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
10 years ago
Dimitar Dobrev
7986747373
Added dependent template specialization types to the AST.
...
Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
10 years ago
Dimitar Dobrev
06410eddbc
Stored specializations in the templated class itself because ClassTemplate is not a complete declaration.
...
ClassTemplate in Clang does not actually represent a complete declaration. For example, let's see the implementation of clang::ClassTemplateDecl::isThisDeclarationADefinition:
bool isThisDeclarationADefinition() const {
return getTemplatedDecl()->isThisDeclarationADefinition();
}
(http://clang.llvm.org/doxygen/DeclTemplate_8h_source.html#l01995 at the time of this commit)
The above shows that class templates do not have definitions, instead, their "definitions" are those of the real templates classes.
In addition let's see ClassTemplateDecl::getCanonicalDecl():
const ClassTemplateDecl *getCanonicalDecl() const {
return cast<ClassTemplateDecl>(
RedeclarableTemplateDecl::getCanonicalDecl());
}
(http://clang.llvm.org/doxygen/DeclTemplate_8h_source.html#l02023 at the time of this commit)
In turn RedeclarableTemplateDecl::getCanonicalDecl() is defined as:
RedeclarableTemplateDecl *getCanonicalDecl() override {
return getFirstDecl();
}
where getFirstDecl() returns just that - the first encountered declaration which might as well be a forward one.
This means that the only complete declaration ClassTemplateDecl can point to is the template class itself,
and the latter is therefore our only choice if we want to have a full list of all specializations of that template class.
Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
10 years ago
Dimitar Dobrev
eaef452d52
Stopped ignoring system declarations so that they can be properly parsed.
...
We need this because of the upcoming support for system types, such as std::string or std::vector.
Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
10 years ago
Dimitar Dobrev
f8863f941b
Extracted the logic for getting wrapped units.
...
Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
10 years ago
Dimitar Dobrev
e57ea530e1
Avoided naming conflicts between methods of different specialisations of a template.
...
Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
10 years ago
Dimitar Dobrev
0db035f873
Fixed the names of libraries with inlines and templates when the output name-space is empty.
...
Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
10 years ago
Dimitar Dobrev
62beaddf63
Fixed the printing of class template specializations.
...
Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
10 years ago
Dimitar Dobrev
af81834b38
Added a special system module to contain all system units.
...
Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
10 years ago
Dimitar Dobrev
beb9c1c142
Changed the searching for class templates to work in depth.
...
Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
10 years ago
Dimitar Dobrev
3eb259f151
Fixed the generated code when having long doubles in the origin.
...
Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
10 years ago
Dimitar Dobrev
4ca34405dc
Fixed the wrapping of virtual members when changing access in overrides.
...
Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
10 years ago
Dimitar Dobrev
86bd7340e2
Fixed the parsing of fields with a template template parameter type.
...
Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
10 years ago
Dimitar Dobrev
6abdb764e6
Completed the exposing of type aliases in our AST.
...
Fixes https://github.com/mono/CppSharp/issues/670 .
Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
10 years ago
Joao Matos
8e703f7cb9
Handle type alias templates in TryGetClass.
10 years ago
Joao Matos
7f75246215
Added support for C++11 type alias template declarations.
...
Partial fix for https://github.com/mono/CppSharp/issues/664 .
10 years ago
Dimitar Dobrev
517b1a5ccd
Saved the offsets per base in the layout of a record.
...
Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
10 years ago
Dimitar Dobrev
c4c2ef21ce
Filled in all missing v-table pointers in record layouts.
...
Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
10 years ago
Dimitar Dobrev
e2b8f44565
Properly fixed the offsets of fields in all possible cases.
...
Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
10 years ago
Dimitar Dobrev
0c107a3bee
Fixed the comparison of template specialisation types.
...
Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
10 years ago
Dimitar Dobrev
2624c91e75
Fixed the comparison involving typedefs to use their real types.
...
Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
10 years ago
Dimitar Dobrev
162d8ebb49
Added an option whether passes should visit parameters of events.
...
Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
10 years ago
Joao Matos
c62a547655
Fixed TranslationUnit.Module getter to gracefully handle non-existing modules.
10 years ago
Dimitar Dobrev
cdc51afc0e
Extended the parser and AST to handle template template parameters.
...
For more details see the Clang documentation ( http://clang.llvm.org/doxygen/classclang_1_1TemplateTemplateParmDecl.html ).
Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
10 years ago
Dimitar Dobrev
546c32d4a7
Generated internals for template specialisations from dependent libraries.
...
Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
10 years ago
Dimitar Dobrev
b41dc261ed
Added support for directly wrapping entire sets of interdependent libraries.
...
It's realised by using modules. Users now have to define one module for each library they want wrapped while setting the driver up.
Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
10 years ago