Home | History | Annotate | Download | only in smali
      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