{"id":16559736,"url":"https://github.com/psub/checker-framework-letexpr-crash","last_synced_at":"2025-12-02T15:04:24.802Z","repository":{"id":136379811,"uuid":"127193459","full_name":"pSub/checker-framework-letexpr-crash","owner":"pSub","description":"Bug is fixed! Code that triggers a crash of the checker-framework described in issue #469","archived":false,"fork":false,"pushed_at":"2018-06-19T11:45:47.000Z","size":8,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-01-15T12:13:28.412Z","etag":null,"topics":["bug","checker-framework","java"],"latest_commit_sha":null,"homepage":"https://github.com/typetools/checker-framework/issues/469","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/pSub.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-03-28T20:16:32.000Z","updated_at":"2018-06-19T11:45:48.000Z","dependencies_parsed_at":null,"dependency_job_id":"9d9d2904-2cd1-4021-8952-3a2b98e273f6","html_url":"https://github.com/pSub/checker-framework-letexpr-crash","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pSub%2Fchecker-framework-letexpr-crash","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pSub%2Fchecker-framework-letexpr-crash/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pSub%2Fchecker-framework-letexpr-crash/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pSub%2Fchecker-framework-letexpr-crash/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pSub","download_url":"https://codeload.github.com/pSub/checker-framework-letexpr-crash/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241950145,"owners_count":20047591,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bug","checker-framework","java"],"created_at":"2024-10-11T20:26:56.706Z","updated_at":"2025-12-02T15:04:19.770Z","avatar_url":"https://github.com/pSub.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"Checker Framework crash: LetExpr is not part of a public API\n============================================================\n\n**The bug has been fixed!**\n\nThis repository contains Java code that triggers the `LetExpr is not part of a public API` assertion error when running\nany checker of the [checker framework](https://checkerframework.org/). The issue was first reported in issue\n[#469](https://github.com/typetools/checker-framework/issues/469) but without a minimal working example. The code in this\nrepository provides a minimal working example using only plain java. The [tracis-ci job](https://travis-ci.org/pSub/checker-framework-letexpr-crash)\nprovides a demonstration. \n\nThe resulting error, including stacktrace, is the following:\n\n\n     SourceChecker.typeProcess: unexpected Throwable (AssertionError) while processing /home/pascal/projects/letexpr/src/main/java/simplecrash/SomeRandomClass.java; message: LetExpr is not part of a public API\n       Compilation unit: /home/pascal/projects/letexpr/src/main/java/simplecrash/SomeRandomClass.java\n       Exception: java.lang.AssertionError: LetExpr is not part of a public API; Stack trace: com.sun.tools.javac.tree.JCTree$LetExpr.getKind(JCTree.java:2429)\n       com.sun.source.util.TreePath.\u003cinit\u003e(TreePath.java:97)\n       com.sun.source.util.TreePathScanner.scan(TreePathScanner.java:66)\n       com.sun.source.util.TreePath$1PathFinder.scan(TreePath.java:70)\n       com.sun.source.util.TreePath$1PathFinder.scan(TreePath.java:65)\n       com.sun.source.util.TreeScanner.visitExpressionStatement(TreeScanner.java:243)\n       com.sun.tools.javac.tree.JCTree$JCExpressionStatement.accept(JCTree.java:1302)\n       com.sun.source.util.TreePathScanner.scan(TreePathScanner.java:50)\n       com.sun.source.util.TreePath.getPath(TreePath.java:79)\n       org.checkerframework.framework.type.AnnotatedTypeFactory.getPath(AnnotatedTypeFactory.java:2819)\n       org.checkerframework.framework.util.defaults.QualifierDefaults.nearestEnclosingExceptLocal(QualifierDefaults.java:386)\n       org.checkerframework.framework.util.defaults.QualifierDefaults.applyDefaults(QualifierDefaults.java:473)\n       org.checkerframework.framework.util.defaults.QualifierDefaults.annotate(QualifierDefaults.java:372)\n       org.checkerframework.framework.type.GenericAnnotatedTypeFactory.addComputedTypeAnnotations(GenericAnnotatedTypeFactory.java:1391)\n       org.checkerframework.framework.type.GenericAnnotatedTypeFactory.addComputedTypeAnnotations(GenericAnnotatedTypeFactory.java:1375)\n       org.checkerframework.framework.type.AnnotatedTypeFactory.getAnnotatedType(AnnotatedTypeFactory.java:995)\n       org.checkerframework.framework.type.AnnotatedTypeFactory.getAnnotatedType(AnnotatedTypeFactory.java:2364)\n       org.checkerframework.framework.type.GenericAnnotatedTypeFactory.performFlowAnalysis(GenericAnnotatedTypeFactory.java:954)\n       org.checkerframework.framework.type.GenericAnnotatedTypeFactory.checkAndPerformFlowAnalysis(GenericAnnotatedTypeFactory.java:1422)\n       org.checkerframework.framework.type.GenericAnnotatedTypeFactory.preProcessClassTree(GenericAnnotatedTypeFactory.java:247)\n       org.checkerframework.common.basetype.BaseTypeVisitor.visitClass(BaseTypeVisitor.java:295)\n       org.checkerframework.common.basetype.BaseTypeVisitor.visitClass(BaseTypeVisitor.java:166)\n       com.sun.tools.javac.tree.JCTree$JCClassDecl.accept(JCTree.java:720)\n       com.sun.source.util.TreePathScanner.scan(TreePathScanner.java:50)\n       org.checkerframework.framework.source.SourceVisitor.visit(SourceVisitor.java:66)\n       org.checkerframework.framework.source.SourceChecker.typeProcess(SourceChecker.java:967)\n       org.checkerframework.common.basetype.BaseTypeChecker.typeProcess(BaseTypeChecker.java:502)\n       org.checkerframework.javacutil.AbstractTypeProcessor$AttributionTaskListener.finished(AbstractTypeProcessor.java:185)\n       com.sun.tools.javac.api.ClientCodeWrapper$WrappedTaskListener.finished(ClientCodeWrapper.java:681)\n       com.sun.tools.javac.api.MultiTaskListener.finished(MultiTaskListener.java:111)\n       com.sun.tools.javac.main.JavaCompiler.flow(JavaCompiler.java:1342)\n       com.sun.tools.javac.main.JavaCompiler.flow(JavaCompiler.java:1296)\n       com.sun.tools.javac.main.JavaCompiler.compile2(JavaCompiler.java:901)\n       com.sun.tools.javac.main.JavaCompiler.compile(JavaCompiler.java:860)\n       com.sun.tools.javac.main.Main.compile(Main.java:523)\n       com.sun.tools.javac.api.JavacTaskImpl.doCall(JavacTaskImpl.java:129)\n       com.sun.tools.javac.api.JavacTaskImpl.call(JavacTaskImpl.java:138)\n       org.codehaus.plexus.compiler.javac.JavaxToolsCompiler.compileInProcess(JavaxToolsCompiler.java:126)\n       org.codehaus.plexus.compiler.javac.JavacCompiler.performCompile(JavacCompiler.java:174)\n       org.apache.maven.plugin.compiler.AbstractCompilerMojo.execute(AbstractCompilerMojo.java:1075)\n       org.apache.maven.plugin.compiler.CompilerMojo.execute(CompilerMojo.java:168)\n       org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:134)\n       org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:208)\n       org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:154)\n       org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:146)\n       org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:117)\n       org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:81)\n       org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.java:51)\n       org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:128)\n       org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:309)\n       org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:194)\n       org.apache.maven.DefaultMaven.execute(DefaultMaven.java:107)\n       org.apache.maven.cli.MavenCli.execute(MavenCli.java:993)\n       org.apache.maven.cli.MavenCli.doMain(MavenCli.java:345)\n       org.apache.maven.cli.MavenCli.main(MavenCli.java:191)\n       sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n       sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\n       sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n       java.lang.reflect.Method.invoke(Method.java:498)\n       org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:289)\n       org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:229)\n       org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:415)\n       org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:356)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpsub%2Fchecker-framework-letexpr-crash","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpsub%2Fchecker-framework-letexpr-crash","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpsub%2Fchecker-framework-letexpr-crash/lists"}