1/* 2 * Copyright (C) 2016 The Android Open Source Project 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16bad; 17// semicolon! 18package tests.errors.syntax@1.0 19 20// bad; // can't recover from this yet 21import IBad; 22import IGood 23import 1233; 24// bad; // can't recover from this yet 25import IBad; 26import IGood2; 27import IBad; 28 29enum ForgetASemicolon { 30} 31 32bad; 33interface IEx1 { 34 35 bad; 36 enum SomeBaseEnum : uint8_t { 37 // 3 bad 33, // can't recover from this yet 38 bar = 66, 39 // foo = NonExistentEnum, // can't recover from this yet 40 baz = 77, 41 // good-day obj, // can't recover from this yet 42 boo = 88, 43 errorval = 3 + (4 + ) + 5, 44 good = errorval + 1, 45 // eat struct // can't recover from this yet 46 }; 47 48 enum SomeEnum : SomeBaseEnum { 49 }; 50 51 struct Fumble { 52 bad; 53 SomeBaseEnum myEnum; 54 8Messy; 55 SomeEnum myEnum2; 56 int32_t missMySemicolon 57 int32_t good; 58 bad; 59 }; 60 61 bad; 62 typedef Fumble Gumble; 63 64 struct Goober { 65 bad; 66 }; 67 68 typedef float[3] ThreeFloats; 69 typedef float[5] FiveFloats; 70 71 typedef bad; 72 73 typedef ref<IEx1> NotAllowed; 74 typedef mask<ForgetASemicolon> Ok; 75 typedef vec<IEx1> OkToo; 76 typedef mask<IEx1> NotAllowedToo; 77 78 struct Quux { 79 string first; 80 typedef bad; 81 string last; 82 }; 83 84 // union bad; // can't recover from this yet 85 // enum bad; // can't recover from this yet 86 87 struct MultiDimensional { 88 bad; 89 }; 90 91 doTheSame( 92 // bad, // can't recover from this yet 93 ); 94 doThat(bad bad); 95 shouldPass(); 96 missASemicolon() 97 whatAboutThis() 98 struct NotGoodWithoutSemicolon { 99 100 } 101 struct Good {}; 102 103 duplicatedArg(int32_t bar, MultiDimensional bar); 104 duplicatedResult() generates (uint32_t baz, bool baz); 105 106} // another semicolon 107