blob: efe3f0fce68f8022b06719026820fbb07515acc8 [file] [log] [blame]
// 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 SyntheticLambdaMethodStackTrace implements StackTraceForTest {
@Override
public List<String> obfuscatedStackTrace() {
return Arrays.asList(
"Exception in thread \"main\" java.lang.NullPointerException",
" at a.a.a(a.java:5)",
" at a.b.a(Unknown Source)",
" 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 String mapping() {
return StringUtils.lines(
"# {'id':'com.android.tools.r8.metainf','map-version':'experimental'}",
"example.Main -> example.Main:",
" 1:1:void main(java.lang.String[]):123 -> main",
"example.Foo -> a.a:",
" 5:5:void lambda$main$0():225 -> a",
" 3:3:void runIt():218 -> b",
" 2:2:void main():223 -> c",
"example.Foo$$ExternalSyntheticLambda0 -> a.b:",
" void run(example.Foo) -> a",
" # {'id':'com.android.tools.r8.synthesized'}");
}
@Override
public int expectedWarnings() {
return 0;
}
}