base_class_must_define_virtual_trace.h revision 6e8cce623b6e4fe0c9e4af605d675dd9d0338c38
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.
4
5#ifndef BASE_CLASS_MUST_DEFINE_VIRTUAL_TRACE_H_
6#define BASE_CLASS_MUST_DEFINE_VIRTUAL_TRACE_H_
7
8#include "heap/stubs.h"
9
10namespace blink {
11
12class PartBase {
13    DISALLOW_ALLOCATION();
14    // Missing virtual trace.
15};
16
17class PartDerived : public PartBase {
18    DISALLOW_ALLOCATION();
19public:
20    virtual void trace(Visitor*);
21};
22
23class HeapBase : public GarbageCollected<HeapBase> {
24    // Missing virtual trace.
25};
26
27
28class HeapDerived : public HeapBase {
29public:
30    virtual void trace(Visitor*);
31private:
32    PartDerived m_part;
33};
34
35
36}
37
38#endif
39