#ifndef TOOLS_CLANG_PLUGINS_TESTS_LAYOUT_OBJECT_METHODS_H_
#define TOOLS_CLANG_PLUGINS_TESTS_LAYOUT_OBJECT_METHODS_H_
namespace blink {
class Visitor;
void foo() {}
class LayoutObject {
public:
static void StaticMethod() {}
void CheckIsNotDestroyed() const {}
void Trace(Visitor*) const {}
int ShouldPass1() {
CheckIsNotDestroyed();
foo();
return 0;
}
int ShouldFail1() {
foo();
return 0;
}
virtual void VirtualEmptyMethod() = 0;
void EmptyMethod() {}
};
class LayoutBoxModelObject : public LayoutObject {
public:
int ShouldPass2() const {
CheckIsNotDestroyed();
return 0;
}
int ShouldFail2() const {
ShouldPass2();
CheckIsNotDestroyed();
return 0;
}
void VirtualEmptyMethod() override {}
};
class LayoutBox : public LayoutBoxModelObject {
public:
int ShouldPass3() {
CheckIsNotDestroyed();
return 0;
}
int ShouldFail3() {
foo();
CheckIsNotDestroyed();
return 0;
}
void VirtualEmptyMethod() override {}
};
}
#endif