office-gobmx/forms/source/component
Stephan Bergmann b512ce255f Make upcasting css::uno::Reference ctor require complete types
The main reason for the "home-grown" UpCast introduced with
904b3d1fce "Up-cast conversion constructor for
css::uno::Reference" in 2013 was probably that we could not yet rely on C++11
std::is_base_of back then.  A (welcome) side effect was that the derived class
could be incomplete.

However, specializations of UpCast relying on whether or not T2 is incomplete
are obviously an ODR violation if the type is incomplete in some TUs and
complete (and derived from T1) in others.  And even if UpCast had internal
linkage, it would still be brittle that its behavior depends on the completeness
of T2 at the point of the template's instantiation, and not necessarily at the
point of use.

That means we should better base that ctor on std::is_base_of (which we can do
now since 39a1edd6fe "Make css::uno::Reference
upcast ctor LIBO_INTERNAL_ONLY"), which causes a compilation error at least on
Clang and GCC if the completeness requirements are not met.  This change fixes
all the cases where types need to be complete now, plus any resulting
loplugin:referencecasting warnings ("the source reference is already a subtype
of the destination reference").

Change-Id: Ieb9e3552e90adbf2c5a5af933dcb872e20661a2f
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/92950
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2020-04-27 07:19:30 +02:00
..
BaseListBox.hxx
Button.cxx
Button.hxx
cachedrowset.cxx
cachedrowset.hxx
CheckBox.cxx
CheckBox.hxx
clickableimage.cxx
clickableimage.hxx
cloneable.cxx
Columns.cxx loplugin:flatten in forms 2020-04-14 13:33:20 +02:00
Columns.hxx
ComboBox.cxx
ComboBox.hxx
Currency.cxx loplugin:flatten in forms 2020-04-14 13:33:20 +02:00
Currency.hxx
DatabaseForm.cxx loplugin:flatten in forms 2020-04-14 13:33:20 +02:00
DatabaseForm.hxx
Date.cxx loplugin:flatten in forms 2020-04-14 13:33:20 +02:00
Date.hxx
Edit.cxx loplugin:flatten in forms 2020-04-14 13:33:20 +02:00
Edit.hxx
EditBase.cxx
EditBase.hxx
entrylisthelper.cxx loplugin:flatten in forms 2020-04-14 13:33:20 +02:00
entrylisthelper.hxx
errorbroadcaster.cxx
errorbroadcaster.hxx
EventThread.cxx loplugin:flatten in forms 2020-04-14 13:33:20 +02:00
EventThread.hxx
File.cxx
File.hxx
Filter.cxx
Filter.hxx
findpos.cxx
findpos.hxx
FixedText.cxx
FixedText.hxx
FormattedField.cxx loplugin:flatten in forms 2020-04-14 13:33:20 +02:00
FormattedField.hxx
FormattedFieldWrapper.cxx
FormattedFieldWrapper.hxx
FormComponent.cxx loplugin:flatten in forms 2020-04-14 13:33:20 +02:00
formcontrolfont.cxx
FormsCollection.cxx
FormsCollection.hxx
Grid.cxx
Grid.hxx
GroupBox.cxx
GroupBox.hxx
GroupManager.cxx
GroupManager.hxx
Hidden.cxx
Hidden.hxx
ImageButton.cxx
ImageButton.hxx
ImageControl.cxx Make upcasting css::uno::Reference ctor require complete types 2020-04-27 07:19:30 +02:00
ImageControl.hxx
imgprod.cxx loplugin:flatten in forms 2020-04-14 13:33:20 +02:00
imgprod.hxx
ListBox.cxx
ListBox.hxx
navigationbar.cxx
navigationbar.hxx
Numeric.cxx
Numeric.hxx
Pattern.cxx
Pattern.hxx
propertybaghelper.cxx
RadioButton.cxx loplugin:flatten in forms 2020-04-14 13:33:20 +02:00
RadioButton.hxx
refvaluecomponent.cxx
refvaluecomponent.hxx
scrollbar.cxx tdf#130974 replace rtl::math::isSignBitSet with std::signbit. 2020-03-14 09:10:34 +01:00
scrollbar.hxx
spinbutton.cxx
spinbutton.hxx
Time.cxx loplugin:flatten in forms 2020-04-14 13:33:20 +02:00
Time.hxx