127e85db4f2a8740d24aa5b200edc9cbd4d7de8a9Yifan Hong/*
227e85db4f2a8740d24aa5b200edc9cbd4d7de8a9Yifan Hong * Copyright (C) 2016 The Android Open Source Project
327e85db4f2a8740d24aa5b200edc9cbd4d7de8a9Yifan Hong *
427e85db4f2a8740d24aa5b200edc9cbd4d7de8a9Yifan Hong * Licensed under the Apache License, Version 2.0 (the "License");
527e85db4f2a8740d24aa5b200edc9cbd4d7de8a9Yifan Hong * you may not use this file except in compliance with the License.
627e85db4f2a8740d24aa5b200edc9cbd4d7de8a9Yifan Hong * You may obtain a copy of the License at
727e85db4f2a8740d24aa5b200edc9cbd4d7de8a9Yifan Hong *
827e85db4f2a8740d24aa5b200edc9cbd4d7de8a9Yifan Hong *      http://www.apache.org/licenses/LICENSE-2.0
927e85db4f2a8740d24aa5b200edc9cbd4d7de8a9Yifan Hong *
1027e85db4f2a8740d24aa5b200edc9cbd4d7de8a9Yifan Hong * Unless required by applicable law or agreed to in writing, software
1127e85db4f2a8740d24aa5b200edc9cbd4d7de8a9Yifan Hong * distributed under the License is distributed on an "AS IS" BASIS,
1227e85db4f2a8740d24aa5b200edc9cbd4d7de8a9Yifan Hong * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1327e85db4f2a8740d24aa5b200edc9cbd4d7de8a9Yifan Hong * See the License for the specific language governing permissions and
1427e85db4f2a8740d24aa5b200edc9cbd4d7de8a9Yifan Hong * limitations under the License.
1527e85db4f2a8740d24aa5b200edc9cbd4d7de8a9Yifan Hong */
1627e85db4f2a8740d24aa5b200edc9cbd4d7de8a9Yifan Hong
1727e85db4f2a8740d24aa5b200edc9cbd4d7de8a9Yifan Hongpackage tests.errors.syntax@1.0;
1827e85db4f2a8740d24aa5b200edc9cbd4d7de8a9Yifan Hong
1927e85db4f2a8740d24aa5b200edc9cbd4d7de8a9Yifan Hong// c++ keyword: error
2027e85db4f2a8740d24aa5b200edc9cbd4d7de8a9Yifan Hongstruct asm {};
2127e85db4f2a8740d24aa5b200edc9cbd4d7de8a9Yifan Hong// java keyword: error
2227e85db4f2a8740d24aa5b200edc9cbd4d7de8a9Yifan Hongstruct transient {};
2327e85db4f2a8740d24aa5b200edc9cbd4d7de8a9Yifan Hong// c++ collide: error
2427e85db4f2a8740d24aa5b200edc9cbd4d7de8a9Yifan Hongstruct offsetof {};
2527e85db4f2a8740d24aa5b200edc9cbd4d7de8a9Yifan Hongstruct size_t {};
2627e85db4f2a8740d24aa5b200edc9cbd4d7de8a9Yifan Hong// hidl names: should warn
2727e85db4f2a8740d24aa5b200edc9cbd4d7de8a9Yifan Hongstruct hidl_vec{};
2827e85db4f2a8740d24aa5b200edc9cbd4d7de8a9Yifan Hong// interface reserved: should be okay
2927e85db4f2a8740d24aa5b200edc9cbd4d7de8a9Yifan Hongstruct version{};
3027e85db4f2a8740d24aa5b200edc9cbd4d7de8a9Yifan Hong
3127e85db4f2a8740d24aa5b200edc9cbd4d7de8a9Yifan Honginterface IIdentifier1 {
3227e85db4f2a8740d24aa5b200edc9cbd4d7de8a9Yifan Hong    // c++ keyword: error
3327e85db4f2a8740d24aa5b200edc9cbd4d7de8a9Yifan Hong    alignof();
3427e85db4f2a8740d24aa5b200edc9cbd4d7de8a9Yifan Hong    // java keyword: error
3527e85db4f2a8740d24aa5b200edc9cbd4d7de8a9Yifan Hong    native();
3627e85db4f2a8740d24aa5b200edc9cbd4d7de8a9Yifan Hong    // c++ collide: error
3727e85db4f2a8740d24aa5b200edc9cbd4d7de8a9Yifan Hong    IMPLEMENT_REGISTER_AND_GET_SERVICE();
3827e85db4f2a8740d24aa5b200edc9cbd4d7de8a9Yifan Hong    // interface reserved: should error
3927e85db4f2a8740d24aa5b200edc9cbd4d7de8a9Yifan Hong    dump();
4027e85db4f2a8740d24aa5b200edc9cbd4d7de8a9Yifan Hong    // struct reserved: should be okay
4127e85db4f2a8740d24aa5b200edc9cbd4d7de8a9Yifan Hong    readEmbeddedFromParcel();
4227e85db4f2a8740d24aa5b200edc9cbd4d7de8a9Yifan Hong};
4327e85db4f2a8740d24aa5b200edc9cbd4d7de8a9Yifan Hong
4427e85db4f2a8740d24aa5b200edc9cbd4d7de8a9Yifan Hongstruct GoodStruct {
4527e85db4f2a8740d24aa5b200edc9cbd4d7de8a9Yifan Hong    // java keyword: error
4627e85db4f2a8740d24aa5b200edc9cbd4d7de8a9Yifan Hong    int32_t native;
4727e85db4f2a8740d24aa5b200edc9cbd4d7de8a9Yifan Hong    // struct reserved: should error
4827e85db4f2a8740d24aa5b200edc9cbd4d7de8a9Yifan Hong    int32_t readEmbeddedFromParcel;
4927e85db4f2a8740d24aa5b200edc9cbd4d7de8a9Yifan Hong    // interface reserved: should be okay
5027e85db4f2a8740d24aa5b200edc9cbd4d7de8a9Yifan Hong    int32_t dump;
5127e85db4f2a8740d24aa5b200edc9cbd4d7de8a9Yifan Hong};
52