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
16
17.class public LConcreteClass;
18.super Ljava/lang/Object;
19.implements LSuperInterface;
20.implements LConflictInterface;
21
22# public class ConcreteClass implements SuperInterface, ConflictInterface {
23#     public String runReal() {
24#         return SuperInterface.super.runDefault();
25#     }
26#     public String runConflict() {
27#         return ConflictInterface.super.runDefault();
28#     }
29#     public String runDefault() {
30#         return "This is the wrong class to invoke";
31#     }
32# }
33
34.method public constructor <init>()V
35    .registers 1
36    invoke-direct {p0}, Ljava/lang/Object;-><init>()V
37    return-void
38.end method
39
40.method public runConflict()Ljava/lang/String;
41.registers 2
42    # Do an invoke super on this class, to confuse runtime/compiler.
43    invoke-super {p0}, LConflictInterface;->runDefault()Ljava/lang/String;
44    move-result-object v0
45    return-object v0
46.end method
47
48
49
50.method public runReal()Ljava/lang/String;
51.registers 2
52    # Do an invoke super on this class, to confuse runtime/compiler.
53    invoke-super {p0}, LSuperInterface;->runDefault()Ljava/lang/String;
54    move-result-object v0
55    return-object v0
56.end method
57
58.method public runDefault()Ljava/lang/String;
59.registers 2
60    const-string v0, "This is the wrong class to invoke!"
61    return-object v0
62.end method
63