131 lines
3.4 KiB
Plaintext
131 lines
3.4 KiB
Plaintext
// Copyright 2013 The Chromium Authors
|
|
// Use of this source code is governed by a BSD-style license that can be
|
|
// found in the LICENSE file.
|
|
|
|
// This is a "No Compile Test" suite.
|
|
// http://dev.chromium.org/developers/testing/no-compile-tests
|
|
|
|
#include "base/values.h"
|
|
|
|
#include <stdint.h>
|
|
|
|
namespace base {
|
|
|
|
void G(ValueView v) {}
|
|
|
|
#if defined(NCTEST_VALUE_CTOR_PTR_DOES_NOT_CONVERT_TO_BOOL) // [r"fatal error: call to deleted constructor"]
|
|
|
|
void F() {
|
|
int* ptr = nullptr;
|
|
Value v(ptr);
|
|
}
|
|
|
|
#elif defined(NCTEST_DICT_SET_PTR_DOES_NOT_CONVERT_TO_BOOL) // [r"fatal error: call to deleted member function"]
|
|
|
|
void F() {
|
|
int* ptr = nullptr;
|
|
Value::Dict dict;
|
|
dict.Set("moo", ptr);
|
|
}
|
|
|
|
#elif defined(NCTEST_DICT_SETBYDOTTEDPATH_PTR_DOES_NOT_CONVERT_TO_BOOL) // [r"fatal error: call to deleted member function"]
|
|
|
|
void F() {
|
|
int* ptr = nullptr;
|
|
Value::Dict dict;
|
|
dict.SetByDottedPath("moo.moo", ptr);
|
|
}
|
|
|
|
#elif defined(NCTEST_LIST_APPEND_PTR_DOES_NOT_CONVERT_TO_BOOL) // [r"fatal error: call to deleted member function"]
|
|
|
|
void F() {
|
|
int* ptr = nullptr;
|
|
Value::List list;
|
|
list.Append(ptr);
|
|
}
|
|
|
|
#elif defined(NCTEST_VALUE_CTOR_INT64_T) // [r"fatal error: ambiguous conversion for functional-style cast from 'int64_t' \(aka '.+?'\) to 'Value'"]
|
|
|
|
Value F(int64_t value) {
|
|
return Value(value);
|
|
}
|
|
|
|
#elif defined(NCTEST_SET_INT64_T) // [r"fatal error: call to member function 'Set' is ambiguous"]
|
|
|
|
Value::Dict F(int64_t value) {
|
|
Value::Dict dict;
|
|
dict.Set("あいうえお", value);
|
|
return dict;
|
|
}
|
|
|
|
#elif defined(NCTEST_SETBYDOTTEDPATH_INT64_T) // [r"fatal error: call to member function 'SetByDottedPath' is ambiguous"]
|
|
|
|
Value::Dict F(int64_t value) {
|
|
Value::Dict dict;
|
|
dict.SetByDottedPath("あいうえお", value);
|
|
return dict;
|
|
}
|
|
|
|
#elif defined(NCTEST_LIST_APPEND_INT64_T) // [r"fatal error: call to member function 'Append' is ambiguous"]
|
|
|
|
Value::List F(int64_t value) {
|
|
Value::List list;
|
|
list.Append(value);
|
|
return list;
|
|
}
|
|
|
|
#elif defined(NCTEST_VALUEVIEW_FROM_CONST_NON_CHAR_POINTER) // [r"fatal error: conversion function from 'const int \*' to 'ValueView' invokes a deleted function"]
|
|
|
|
void F() {
|
|
const int* ptr = nullptr;
|
|
ValueView v = ptr;
|
|
G(v);
|
|
}
|
|
|
|
#elif defined(NCTEST_VALUEVIEW_FROM_NON_CHAR_POINTER) // [r"fatal error: conversion function from 'int \*' to 'ValueView' invokes a deleted function"]
|
|
|
|
void F() {
|
|
int* ptr = nullptr;
|
|
ValueView v = ptr;
|
|
G(v);
|
|
}
|
|
|
|
#elif defined(NCTEST_VALUEVIEW_FROM_STRING_TEMPORARY) // [r"fatal error: object backing the pointer will be destroyed at the end of the full-expression"]
|
|
|
|
void F() {
|
|
ValueView v = std::string();
|
|
G(v);
|
|
}
|
|
|
|
#elif defined(NCTEST_VALUEVIEW_FROM_BLOB_TEMPORARY) // [r"fatal error: object backing the pointer will be destroyed at the end of the full-expression"]
|
|
|
|
void F() {
|
|
ValueView v = Value::BlobStorage();
|
|
G(v);
|
|
}
|
|
|
|
#elif defined(NCTEST_VALUEVIEW_FROM_DICT_TEMPORARY) // [r"fatal error: object backing the pointer will be destroyed at the end of the full-expression"]
|
|
|
|
void F() {
|
|
ValueView v = Value::Dict();
|
|
G(v);
|
|
}
|
|
|
|
#elif defined(NCTEST_VALUEVIEW_FROM_LIST_TEMPORARY) // [r"fatal error: object backing the pointer will be destroyed at the end of the full-expression"]
|
|
|
|
void F() {
|
|
ValueView v = Value::List();
|
|
G(v);
|
|
}
|
|
|
|
#elif defined(NCTEST_VALUEVIEW_FROM_VALUE_TEMPORARY) // [r"fatal error: object backing the pointer will be destroyed at the end of the full-expression"]
|
|
|
|
void F() {
|
|
ValueView v = Value();
|
|
G(v);
|
|
}
|
|
|
|
#endif
|
|
|
|
} // namespace base
|