Dimitar Dobrev
3cd024cccf
Added marshalling of std::string to the C# end.
...
Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
9 years ago
Dimitar Dobrev
fc87fb6ee9
Added the desugared type, if any, of DependentNameType, to the AST.
...
Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
9 years ago
Dimitar Dobrev
7986747373
Added dependent template specialization types to the AST.
...
Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
9 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>
9 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>
9 years ago
Dimitar Dobrev
f8863f941b
Extracted the logic for getting wrapped units.
...
Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
9 years ago
Dimitar Dobrev
e57ea530e1
Avoided naming conflicts between methods of different specialisations of a template.
...
Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
9 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>
9 years ago
Dimitar Dobrev
62beaddf63
Fixed the printing of class template specializations.
...
Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
9 years ago
Dimitar Dobrev
af81834b38
Added a special system module to contain all system units.
...
Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
9 years ago
Dimitar Dobrev
beb9c1c142
Changed the searching for class templates to work in depth.
...
Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
9 years ago
Dimitar Dobrev
3eb259f151
Fixed the generated code when having long doubles in the origin.
...
Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
9 years ago
Dimitar Dobrev
4ca34405dc
Fixed the wrapping of virtual members when changing access in overrides.
...
Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
9 years ago
Dimitar Dobrev
86bd7340e2
Fixed the parsing of fields with a template template parameter type.
...
Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
9 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>
9 years ago
Joao Matos
8e703f7cb9
Handle type alias templates in TryGetClass.
9 years ago
Joao Matos
7f75246215
Added support for C++11 type alias template declarations.
...
Partial fix for https://github.com/mono/CppSharp/issues/664 .
9 years ago
Dimitar Dobrev
517b1a5ccd
Saved the offsets per base in the layout of a record.
...
Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
9 years ago
Dimitar Dobrev
c4c2ef21ce
Filled in all missing v-table pointers in record layouts.
...
Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
9 years ago
Dimitar Dobrev
e2b8f44565
Properly fixed the offsets of fields in all possible cases.
...
Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
9 years ago
Dimitar Dobrev
0c107a3bee
Fixed the comparison of template specialisation types.
...
Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
9 years ago
Dimitar Dobrev
2624c91e75
Fixed the comparison involving typedefs to use their real types.
...
Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
9 years ago
Dimitar Dobrev
162d8ebb49
Added an option whether passes should visit parameters of events.
...
Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
9 years ago
Joao Matos
c62a547655
Fixed TranslationUnit.Module getter to gracefully handle non-existing modules.
9 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>
9 years ago
Dimitar Dobrev
546c32d4a7
Generated internals for template specialisations from dependent libraries.
...
Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
9 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>
9 years ago
Dimitar Dobrev
41cd6e6ab7
Fixed a regression when generating the parser bindings for OS X.
...
Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
9 years ago
Dimitar Dobrev
0d5c4539a2
Generated internals of types nested in templates.
...
Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
9 years ago
Dimitar Dobrev
e4200f4690
Fixed the wrapping of template parameters in the parser.
...
Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
9 years ago
Dimitar Dobrev
cf479f4409
Wrapped more information about comments for better generation.
...
Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
9 years ago
Dimitar Dobrev
1f105e53a8
Added support for "return" elements in code comments in the C# end.
...
Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
9 years ago
Dimitar Dobrev
e57ad1d3e9
Exposed in our AST the real comment behind a block comment.
...
Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
9 years ago
Dimitar Dobrev
192fede3f7
Connected the functions in the AST to the template functions they instantiate, if any.
...
Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
10 years ago
Dimitar Dobrev
a2fd71cc74
Enabled getting of template specialisations when type locations are invalid.
...
Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
10 years ago
Abhinav Tripathi
d753c8d637
Moved property IsImplicit to Declaration from Method.
10 years ago
Dimitar Dobrev
b3a5b88433
Removed Method.AccessDecl because it doesn't map to Clang and was buggy.
...
Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
10 years ago
Dimitar Dobrev
7d7b75a155
Changed PreprocessedEntity to a non-declaration because it isn't in Clang.
...
Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
10 years ago
Dimitar Dobrev
1ba4493bf6
Updated to LLVM/Clang 253162/253161 respectively.
...
Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
10 years ago
Dimitar Dobrev
a5a17a493e
Changed the comparer for parameter types to a singleton.
...
The class has no fields so the same value was allocated many times, it was wasteful.
Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
10 years ago
Dimitar Dobrev
d3644dcf5d
Fixed a crash with abstract overrides originating from secondary bases.
...
Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
10 years ago
Dimitar Dobrev
8ebefa1f37
Added support for call expressions in default args.
...
The conversion of an expression to a string has been moved to the generator because a function may have been renamed or converted to a property.
However, since that string is language-specific, it should be created in the generator anyway. Therefore we should (over time):
1. Move any string manipulation from the pass for default args to the printer for expressions which is in turn used only by the generator;
2. Remove the Statement.String property (when 1. is entirely complete).
Signed-off-by: Dimitar Dobrev <dpldobrev@yahoo.com>
10 years ago
Dimitar Dobrev
d0ad681a61
Extended the AST and the parser to support call expressions in default args.
...
Signed-off-by: Dimitar Dobrev <dpldobrev@yahoo.com>
10 years ago
Dimitar Dobrev
8a68d2d16c
Fixed the generation of overrides of virtuals from secondary bases.
...
Signed-off-by: Dimitar Dobrev <dpldobrev@yahoo.com>
10 years ago
Dimitar Dobrev
39a368894d
Reformatted the extension methods for classes.
...
Signed-off-by: Dimitar Dobrev <dpldobrev@yahoo.com>
10 years ago
Dimitar Dobrev
fbb2f941c4
Based on Abhinav Tripathi's work: extracted delegates in order to reuse them.
...
Signed-off-by: Dimitar Dobrev <dpldobrev@yahoo.com>
10 years ago
Dimitar Dobrev
6f8c942b0a
Adjusted pointers when calling functions from secondary or non-dynamic bases.
...
Signed-off-by: Dimitar Dobrev <dpldobrev@yahoo.com>
10 years ago
Dimitar Dobrev
4f574845fa
Made interface impls contain the interface as their original name-space.
...
Signed-off-by: Dimitar Dobrev <dpldobrev@yahoo.com>
10 years ago
Dimitar Dobrev
287ad2394d
Properly printed complex comments.
...
Signed-off-by: Dimitar Dobrev <dpldobrev@yahoo.com>
10 years ago
Dimitar Dobrev
62a0857613
Copied all entries to the patched Itanium v-table.
...
Signed-off-by: Dimitar Dobrev <dpldobrev@yahoo.com>
10 years ago