Add missing ToBackend implementation for Adapter

BUG=dawn:29

Change-Id: I00926dd201c7a8f24d769078540c75c25f210515
Reviewed-on: https://dawn-review.googlesource.com/c/3842
Reviewed-by: Austin Eng <enga@chromium.org>
Reviewed-by: Kai Ninomiya <kainino@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
diff --git a/src/dawn_native/Forward.h b/src/dawn_native/Forward.h
index 05b3f80..5373f66 100644
--- a/src/dawn_native/Forward.h
+++ b/src/dawn_native/Forward.h
@@ -19,6 +19,7 @@
 
 namespace dawn_native {
 
+    class AdapterBase;
     class BindGroupBase;
     class BindGroupBuilder;
     class BindGroupLayoutBase;
@@ -32,6 +33,7 @@
     class FenceBase;
     class InputStateBase;
     class InputStateBuilder;
+    class InstanceBase;
     class PipelineLayoutBase;
     class PipelineLayoutBuilder;
     class QueueBase;
diff --git a/src/dawn_native/ToBackend.h b/src/dawn_native/ToBackend.h
index 94391f3..585a40d 100644
--- a/src/dawn_native/ToBackend.h
+++ b/src/dawn_native/ToBackend.h
@@ -24,6 +24,11 @@
     struct ToBackendTraits;
 
     template <typename BackendTraits>
+    struct ToBackendTraits<AdapterBase, BackendTraits> {
+        using BackendType = typename BackendTraits::AdapterType;
+    };
+
+    template <typename BackendTraits>
     struct ToBackendTraits<BindGroupBase, BackendTraits> {
         using BackendType = typename BackendTraits::BindGroupType;
     };
diff --git a/src/dawn_native/d3d12/Forward.h b/src/dawn_native/d3d12/Forward.h
index 49d1375..d4fa333 100644
--- a/src/dawn_native/d3d12/Forward.h
+++ b/src/dawn_native/d3d12/Forward.h
@@ -19,6 +19,7 @@
 
 namespace dawn_native { namespace d3d12 {
 
+    class Adapter;
     class BindGroup;
     class BindGroupLayout;
     class Buffer;
@@ -37,6 +38,7 @@
     class TextureView;
 
     struct D3D12BackendTraits {
+        using AdapterType = Adapter;
         using BindGroupType = BindGroup;
         using BindGroupLayoutType = BindGroupLayout;
         using BufferType = Buffer;
diff --git a/src/dawn_native/metal/Forward.h b/src/dawn_native/metal/Forward.h
index 599a797..df8b1d0 100644
--- a/src/dawn_native/metal/Forward.h
+++ b/src/dawn_native/metal/Forward.h
@@ -25,6 +25,7 @@
 
 namespace dawn_native { namespace metal {
 
+    class Adapter;
     using BindGroup = BindGroupBase;
     using BindGroupLayout = BindGroupLayoutBase;
     class Buffer;
@@ -44,6 +45,7 @@
     class TextureView;
 
     struct MetalBackendTraits {
+        using AdapterType = Adapter;
         using BindGroupType = BindGroup;
         using BindGroupLayoutType = BindGroupLayout;
         using BufferType = Buffer;
diff --git a/src/dawn_native/null/DeviceNull.h b/src/dawn_native/null/DeviceNull.h
index 563d31d..dd5029a 100644
--- a/src/dawn_native/null/DeviceNull.h
+++ b/src/dawn_native/null/DeviceNull.h
@@ -35,6 +35,7 @@
 
 namespace dawn_native { namespace null {
 
+    class Adapter;
     using BindGroup = BindGroupBase;
     using BindGroupLayout = BindGroupLayoutBase;
     class Buffer;
@@ -53,6 +54,7 @@
     using TextureView = TextureViewBase;
 
     struct NullBackendTraits {
+        using AdapterType = Adapter;
         using BindGroupType = BindGroup;
         using BindGroupLayoutType = BindGroupLayout;
         using BufferType = Buffer;
diff --git a/src/dawn_native/opengl/Forward.h b/src/dawn_native/opengl/Forward.h
index 49c381c..486bb13 100644
--- a/src/dawn_native/opengl/Forward.h
+++ b/src/dawn_native/opengl/Forward.h
@@ -25,6 +25,7 @@
 
 namespace dawn_native { namespace opengl {
 
+    class Adapter;
     using BindGroup = BindGroupBase;
     using BindGroupLayout = BindGroupLayoutBase;
     class Buffer;
@@ -44,6 +45,7 @@
     class TextureView;
 
     struct OpenGLBackendTraits {
+        using AdapterType = Adapter;
         using BindGroupType = BindGroup;
         using BindGroupLayoutType = BindGroupLayout;
         using BufferType = Buffer;
diff --git a/src/dawn_native/vulkan/Forward.h b/src/dawn_native/vulkan/Forward.h
index 36b35ce..aade94e 100644
--- a/src/dawn_native/vulkan/Forward.h
+++ b/src/dawn_native/vulkan/Forward.h
@@ -19,6 +19,7 @@
 
 namespace dawn_native { namespace vulkan {
 
+    class Adapter;
     class BindGroup;
     class BindGroupLayout;
     class Buffer;
@@ -37,6 +38,7 @@
     class TextureView;
 
     struct VulkanBackendTraits {
+        using AdapterType = Adapter;
         using BindGroupType = BindGroup;
         using BindGroupLayoutType = BindGroupLayout;
         using BufferType = Buffer;