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 NON_VIRTUAL_TRACE_H_ 6 #define NON_VIRTUAL_TRACE_H_ 7 8 #include "heap/stubs.h" 9 10 namespace blink { 11 12 class A : public GarbageCollected<A> { 13 public: 14 void Trace(Visitor*); 15 }; 16 17 class B : public A { 18 }; 19 20 class C : public B { 21 public: 22 void Trace(Visitor*); // Cannot override a non-virtual Trace. 23 }; 24 25 class D : public B { 26 public: 27 virtual void Trace(Visitor*); // Cannot override a non-virtual Trace. 28 }; 29 30 } 31 32 #endif 33