Use `final` for template tests.

Where these tests pass or return a templated type by value, they're going to break as I implement full support for `!Unpin` by-value return and parameter types.

PiperOrigin-RevId: 460317001
diff --git a/rs_bindings_from_cc/test/templates/bridging/class_template_definition.h b/rs_bindings_from_cc/test/templates/bridging/class_template_definition.h
index 8f5106d..c5840f0 100644
--- a/rs_bindings_from_cc/test/templates/bridging/class_template_definition.h
+++ b/rs_bindings_from_cc/test/templates/bridging/class_template_definition.h
@@ -8,7 +8,7 @@
 #pragma clang lifetime_elision
 
 template <typename T>
-class MyTemplate {
+class MyTemplate final {
  public:
   static MyTemplate Create(T value) {
     MyTemplate result;
diff --git a/rs_bindings_from_cc/test/templates/definition_in_cc/definition_in_cc.h b/rs_bindings_from_cc/test/templates/definition_in_cc/definition_in_cc.h
index 00bb591..82c6f42 100644
--- a/rs_bindings_from_cc/test/templates/definition_in_cc/definition_in_cc.h
+++ b/rs_bindings_from_cc/test/templates/definition_in_cc/definition_in_cc.h
@@ -8,7 +8,7 @@
 #pragma clang lifetime_elision
 
 template <typename T>
-class MyTemplate {
+class MyTemplate final {
  public:
   static MyTemplate Create(T value);
   const T& value() const;
diff --git a/rs_bindings_from_cc/test/templates/func_return_and_param_types/func_return_and_param_types.h b/rs_bindings_from_cc/test/templates/func_return_and_param_types/func_return_and_param_types.h
index eaccb95..36f1382 100644
--- a/rs_bindings_from_cc/test/templates/func_return_and_param_types/func_return_and_param_types.h
+++ b/rs_bindings_from_cc/test/templates/func_return_and_param_types/func_return_and_param_types.h
@@ -8,7 +8,7 @@
 #pragma clang lifetime_elision
 
 template <typename T>
-class MyTemplate {
+class MyTemplate final {
  public:
   static MyTemplate Create(T value) {
     MyTemplate result;
diff --git a/rs_bindings_from_cc/test/templates/method_params/method_params.h b/rs_bindings_from_cc/test/templates/method_params/method_params.h
index 5ef6af7..26733ac 100644
--- a/rs_bindings_from_cc/test/templates/method_params/method_params.h
+++ b/rs_bindings_from_cc/test/templates/method_params/method_params.h
@@ -8,7 +8,7 @@
 #pragma clang lifetime_elision
 
 template <typename T>
-class MyTemplate {
+class MyTemplate final {
  public:
   static MyTemplate Create(T value) {
     MyTemplate result;
diff --git a/rs_bindings_from_cc/test/templates/no_instantiation_in_template_target/template_without_instantiation.h b/rs_bindings_from_cc/test/templates/no_instantiation_in_template_target/template_without_instantiation.h
index ba97a74..5033034 100644
--- a/rs_bindings_from_cc/test/templates/no_instantiation_in_template_target/template_without_instantiation.h
+++ b/rs_bindings_from_cc/test/templates/no_instantiation_in_template_target/template_without_instantiation.h
@@ -10,7 +10,7 @@
 // This template is not instantiated anywhere in this header file
 // (this is what the test scenario exercised here cares about).
 template <typename T>
-class MyTemplate {
+class MyTemplate final {
  public:
   static MyTemplate Create(T value) {
     MyTemplate result;
diff --git a/rs_bindings_from_cc/test/templates/non_type_template_params/non_type_template_params.h b/rs_bindings_from_cc/test/templates/non_type_template_params/non_type_template_params.h
index 67afd7e..1b623f6 100644
--- a/rs_bindings_from_cc/test/templates/non_type_template_params/non_type_template_params.h
+++ b/rs_bindings_from_cc/test/templates/non_type_template_params/non_type_template_params.h
@@ -8,7 +8,7 @@
 #pragma clang lifetime_elision
 
 template <int multiplier>
-class MyTemplate {
+class MyTemplate final {
  public:
   static int Multiply(int value) { return value * multiplier; }
 };
diff --git a/rs_bindings_from_cc/test/templates/out_of_line_definition/out_of_line_definition.h b/rs_bindings_from_cc/test/templates/out_of_line_definition/out_of_line_definition.h
index ab21f17..0adc65a 100644
--- a/rs_bindings_from_cc/test/templates/out_of_line_definition/out_of_line_definition.h
+++ b/rs_bindings_from_cc/test/templates/out_of_line_definition/out_of_line_definition.h
@@ -8,7 +8,7 @@
 #pragma clang lifetime_elision
 
 template <typename T>
-class MyTemplate {
+class MyTemplate final {
  public:
   static MyTemplate Create(T value);
   const T& value() const;
diff --git a/rs_bindings_from_cc/test/templates/two_template_parameters/two_template_parameters.h b/rs_bindings_from_cc/test/templates/two_template_parameters/two_template_parameters.h
index 02e47e0..0252d36 100644
--- a/rs_bindings_from_cc/test/templates/two_template_parameters/two_template_parameters.h
+++ b/rs_bindings_from_cc/test/templates/two_template_parameters/two_template_parameters.h
@@ -8,7 +8,7 @@
 #pragma clang lifetime_elision
 
 template <typename T1, typename T2>
-struct TemplateWithTwoParams {
+struct TemplateWithTwoParams final {
   T1 value1;
   T2 value2;
 };
diff --git a/rs_bindings_from_cc/test/templates/type_alias/type_alias.h b/rs_bindings_from_cc/test/templates/type_alias/type_alias.h
index e55d96d..730acab 100644
--- a/rs_bindings_from_cc/test/templates/type_alias/type_alias.h
+++ b/rs_bindings_from_cc/test/templates/type_alias/type_alias.h
@@ -8,7 +8,7 @@
 #pragma clang lifetime_elision
 
 template <typename T>
-class MyTemplate {
+class MyTemplate final {
  public:
   static MyTemplate Create(T value) {
     MyTemplate result;