Material throbber: use in tabstrip
[chromium-blink-merge.git] / tools / clang / blink_gc_plugin / tests / class_requires_trace_method.h
blob782d80e141dafc43feff82718ed442b9a97ada26
1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #ifndef CLASS_REQUIRES_TRACE_METHOD_H_
6 #define CLASS_REQUIRES_TRACE_METHOD_H_
8 #include "heap/stubs.h"
10 namespace blink {
12 class HeapObject;
14 class PartObject {
15 DISALLOW_ALLOCATION();
16 private:
17 Member<HeapObject> m_obj;
20 class HeapObject : public GarbageCollected<HeapObject> {
21 private:
22 PartObject m_part;
25 class Mixin : public GarbageCollectedMixin {
26 public:
27 virtual void trace(Visitor*) override;
28 Member<Mixin> m_self;
31 class HeapObjectMixin : public GarbageCollected<HeapObjectMixin>, public Mixin {
32 USING_GARBAGE_COLLECTED_MIXIN(HeapObjectMixin);
35 class Mixin2 : public Mixin {
36 public:
37 virtual void trace(Visitor*) override;
40 class HeapObjectMixin2
41 : public GarbageCollected<HeapObjectMixin2>, public Mixin2 {
42 USING_GARBAGE_COLLECTED_MIXIN(HeapObjectMixin2);
45 class Mixin3 : public Mixin {
46 public:
47 virtual void trace(Visitor*) override;
50 class HeapObjectMixin3
51 : public GarbageCollected<HeapObjectMixin3>, public Mixin {
52 USING_GARBAGE_COLLECTED_MIXIN(HeapObjectMixin2);
53 public:
54 virtual void trace(Visitor*) override;
59 #endif