1 // This file is auto generated. Do not hand edit.
2 // See xxxREADMExxx for details.
3 #include "hphp/tools/clang-gc-tool/friend.h"
8 template <typename F> void scan(const HPHP::ResourceData& this_, F& mark) {
12 struct foobar_scanme_friend {
13 typedef int foobar::*type;
14 friend type get(foobar_scanme_friend);
16 template struct friender<foobar_scanme_friend, &foobar::scanme>;
19 template <typename F> void scan(const foobar& this_, F& mark) {
20 HPHP::ResourceData::scan(this_, mark);
21 mark(FGET(foobar, this_, scanme));
24 template <typename F> void scan(const bad_class& this_, F& mark) {
28 template <typename F> void scan(const bad_class2& this_, F& mark) {
32 template <typename F> void scan(const not_bad_class& this_, F& mark) {
36 template <typename F> void scan(const bad_template_use& this_, F& mark) {
37 HPHP::ResourceData::scan(this_, mark);
44 friend type get(X_v_friend);
46 template struct friender<X_v_friend, &X::v>;
48 typedef char * X::*type;
49 friend type get(X_s_friend);
51 template struct friender<X_s_friend, &X::s>;
54 template <typename F> void scan(const X& this_, F& mark) {
55 HPHP::ResourceData::scan(this_, mark);
56 mark(FGET(X, this_, v));
57 mark(FGET(X, this_, s));
61 template <typename F> void scan(const Y::Z& this_, F& mark) {
68 template <typename F> void scan(const voidstargc& this_, F& mark) {
73 template <typename F> void scan(const opaqueRef& this_, F& mark) {
77 template <typename F> void scan(const badcontainer& this_, F& mark) {
78 HPHP::ResourceData::scan(this_, mark);
85 struct privateParent {
90 template <typename F> void scan(const ns::privateParent& this_, F& mark) {
91 static_assert(sizeof(this_) == 4);
98 struct privateX : public HPHP::ResourceData, public ns::privateParent {
103 template <typename F> void scan(const ns::privateX& this_, F& mark) {
104 HPHP::ResourceData::scan(this_, mark);
105 ns::privateParent::scan(this_, mark);