OLD | NEW |
---|---|
1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 namespace not_blink { | 5 namespace not_blink { |
6 | 6 |
7 void function(int x) {} | 7 void function(int x) {} |
8 | 8 |
9 class Class { | 9 class Class { |
10 public: | 10 public: |
11 void method() {} | 11 void method() {} |
12 template <typename T> | 12 template <typename T> |
13 void methodTemplate(T) {} | 13 void methodTemplate(T) {} |
14 template <typename T> | 14 template <typename T> |
15 static void staticMethodTemplate(T) {} | 15 static void staticMethodTemplate(T) {} |
16 }; | 16 }; |
17 | 17 |
18 template <typename T> | 18 template <typename T> |
19 void functionTemplate(T x) {} | 19 void functionTemplate(T x) {} |
20 | 20 |
21 template <typename T = Class> | |
22 void functionTemplate2() { | |
23 T::staticMethodTemplate(123); | |
24 } | |
25 | |
26 template <typename T = Class> | |
27 class TemplatedClass { | |
28 public: | |
29 void anotherMethod() { T::staticMethodTemplate(123); } | |
30 }; | |
31 | |
Łukasz Anforowicz
2016/08/17 22:45:09
Test that DependentScopeDeclRefExpr and CXXDepende
| |
21 } // not_blink | 32 } // not_blink |
22 | 33 |
23 namespace blink { | 34 namespace blink { |
24 | 35 |
25 template <typename T, int number> | 36 template <typename T, int number> |
26 void F() { | 37 void F() { |
27 // We don't assert on this, and we don't end up considering it a const for | 38 // We don't assert on this, and we don't end up considering it a const for |
28 // now. | 39 // now. |
29 const int maybe_a_const = sizeof(T); | 40 const int maybe_a_const = sizeof(T); |
30 const int is_a_const = number; | 41 const int is_a_const = number; |
(...skipping 102 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
133 Class c; | 144 Class c; |
134 c.F(x); | 145 c.F(x); |
135 // Non-Blink should stay the same. | 146 // Non-Blink should stay the same. |
136 not_blink::Class c2; | 147 not_blink::Class c2; |
137 c2.method(x); | 148 c2.method(x); |
138 } | 149 } |
139 }; | 150 }; |
140 | 151 |
141 } // namespace test_template_arg_is_method_template_in_member_context | 152 } // namespace test_template_arg_is_method_template_in_member_context |
142 | 153 |
154 namespace test_new_array_bug { | |
155 | |
156 class PartitionAllocator { | |
157 public: | |
158 static void Method() {} | |
159 }; | |
160 | |
161 template <typename Allocator = PartitionAllocator> | |
162 class Vector { | |
163 public: | |
164 // https://crbug.com/584117: |method| below should be renamed to |Method|. | |
165 // |Allocator::method| is a CXXDependentScopeMemberExpr. | |
166 void AnotherMethod() { Allocator::Method(); } | |
167 }; | |
168 | |
169 template <typename Allocator = PartitionAllocator> | |
170 void Test() { | |
171 // https://crbug.com/584117: |method| below should be renamed to |Method|. | |
172 // |Allocator::method| is a DependentScopeDeclRefExpr. | |
173 Allocator::Method(); | |
174 } | |
175 | |
176 } // namespace test_new_array_bug | |
177 | |
143 } // namespace blink | 178 } // namespace blink |
OLD | NEW |