| // Copyright (c) 2019, the R8 project authors. Please see the AUTHORS file |
| // for details. All rights reserved. Use of this source code is governed by a |
| // BSD-style license that can be found in the LICENSE file. |
| |
| package com.android.tools.r8.retrace.stacktraces; |
| |
| import com.android.tools.r8.utils.StringUtils; |
| import java.util.Arrays; |
| import java.util.List; |
| |
| public class SyntheticLambdaMethodWithInliningStackTrace implements StackTraceForTest { |
| |
| @Override |
| public List<String> obfuscatedStackTrace() { |
| return Arrays.asList( |
| "Exception in thread \"main\" java.lang.NullPointerException", |
| " at a.b.a(Unknown Source:4)", |
| " at a.a.b(a.java:3)", |
| " at a.a.c(a.java:2)", |
| " at example.Main.main(Main.java:1)"); |
| } |
| |
| @Override |
| public List<String> retracedStackTrace() { |
| return Arrays.asList( |
| "Exception in thread \"main\" java.lang.NullPointerException", |
| " at example.Foo.lambda$main$0(Foo.java:225)", |
| " at example.Foo.runIt(Foo.java:218)", |
| " at example.Foo.main(Foo.java:223)", |
| " at example.Main.main(Main.java:123)"); |
| } |
| |
| @Override |
| public List<String> retraceVerboseStackTrace() { |
| return Arrays.asList( |
| "Exception in thread \"main\" java.lang.NullPointerException", |
| " at example.Foo.void lambda$main$0()(Foo.java:225)", |
| " at example.Foo.void runIt()(Foo.java:218)", |
| " at example.Foo.void main()(Foo.java:223)", |
| " at example.Main.void main(java.lang.String[])(Main.java:123)"); |
| } |
| |
| @Override |
| public String mapping() { |
| return StringUtils.lines( |
| "# {'id':'com.android.tools.r8.mapping','version':'1.0'}", |
| "example.Main -> example.Main:", |
| " 1:1:void main(java.lang.String[]):123 -> main", |
| "example.Foo -> a.a:", |
| " 3:3:void runIt():218 -> b", |
| " 2:2:void main():223 -> c", |
| "example.Foo$$ExternalSyntheticLambda0 -> a.b:", |
| " 4:4:void example.Foo.lambda$main$0():225 -> a", |
| " 4:4:void run(example.Foo):0 -> a", |
| " # {'id':'com.android.tools.r8.synthesized'}"); |
| } |
| |
| @Override |
| public int expectedWarnings() { |
| return 0; |
| } |
| } |