1*6777b538SAndroid Build Coastguard Worker// Copyright 2021 The Chromium Authors 2*6777b538SAndroid Build Coastguard Worker// Use of this source code is governed by a BSD-style license that can be 3*6777b538SAndroid Build Coastguard Worker// found in the LICENSE file. 4*6777b538SAndroid Build Coastguard Worker 5*6777b538SAndroid Build Coastguard Worker// This is a "No Compile Test" suite. 6*6777b538SAndroid Build Coastguard Worker// https://dev.chromium.org/developers/testing/no-compile-tests 7*6777b538SAndroid Build Coastguard Worker 8*6777b538SAndroid Build Coastguard Worker#include "base/containers/enum_set.h" 9*6777b538SAndroid Build Coastguard Worker 10*6777b538SAndroid Build Coastguard Workernamespace base { 11*6777b538SAndroid Build Coastguard Workernamespace { 12*6777b538SAndroid Build Coastguard Worker 13*6777b538SAndroid Build Coastguard Workersize_t LargeSparseEnum() { 14*6777b538SAndroid Build Coastguard Worker enum class TestEnumSparse { 15*6777b538SAndroid Build Coastguard Worker TEST_1 = 1, 16*6777b538SAndroid Build Coastguard Worker TEST_MIN = 1, 17*6777b538SAndroid Build Coastguard Worker TEST_50 = 50, 18*6777b538SAndroid Build Coastguard Worker TEST_100 = 100, 19*6777b538SAndroid Build Coastguard Worker TEST_MAX = TEST_100, 20*6777b538SAndroid Build Coastguard Worker }; 21*6777b538SAndroid Build Coastguard Worker using TestEnumSparseSet = EnumSet<TestEnumSparse, TestEnumSparse::TEST_MIN, 22*6777b538SAndroid Build Coastguard Worker TestEnumSparse::TEST_MAX>; 23*6777b538SAndroid Build Coastguard Worker 24*6777b538SAndroid Build Coastguard Worker // TestEnumSparseSet::All() does not compile as constexpr because there are 25*6777b538SAndroid Build Coastguard Worker // more than 64 possible values. 26*6777b538SAndroid Build Coastguard Worker constexpr auto set = TestEnumSparseSet::All(); // expected-error {{constexpr variable 'set' must be initialized by a constant expression}} 27*6777b538SAndroid Build Coastguard Worker return set.size(); 28*6777b538SAndroid Build Coastguard Worker} 29*6777b538SAndroid Build Coastguard Worker 30*6777b538SAndroid Build Coastguard Worker} // namespace 31*6777b538SAndroid Build Coastguard Worker} // namespace base 32