1/*
2 * Copyright (c) 2024 Huawei Device Co., Ltd.
3 * Licensed under the Apache License, Version 2.0 (the "License");
4 * you may not use this file except in compliance with the License.
5 * You may obtain a copy of the License at
6 *
7 * http://www.apache.org/licenses/LICENSE-2.0
8 *
9 * Unless required by applicable law or agreed to in writing, software
10 * distributed under the License is distributed on an "AS IS" BASIS,
11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 * See the License for the specific language governing permissions and
13 * limitations under the License.
14 */
15
16interface I 
17{
18   field? : String | Number;
19}
20
21abstract class C implements I
22{
23   field_? : Object | String;
24   
25   get field() : Object | String | undefined {
26      return this.field_;
27   }
28   
29   set field(o : Object | String | undefined) {
30      this.field_ = o;
31   }
32}
33
34/* @@? 25:13 Error TypeError: field(): Object|undefined in C cannot override field(): undefined|String|Double in I because overriding return type is not compatible with the other return type.  */
35/* @@? 25:13 Error TypeError: Method field(): Object|undefined in C not overriding any method  */
36