鍵盤上的舞者

          像寫情書一樣Coding...
          隨筆 - 20, 文章 - 0, 評論 - 15, 引用 - 0
          數(shù)據加載中……

          JavaFX編譯器編譯重載方法的一處BUG

          直接看測試代碼吧,一共2個類:BugTest.fx和A.fx,SDK版本是1.2.3。
          /*
           * BugTest.fx
           *
           * Created on 2010-2-25, 22:05:11
           
          */
          package org.jqueen.fx.bug;

          /**
           * 
          @author Leon
           
          */
          public class BugTest {

          // 取消該方法注釋編譯將拋出異常
          //    function test(a: A): Void {
          //        test(5);
          //    }

              function test(s: String): Void {
                  test(
          5);
              }

              function test(i: Integer): Void {
              }

          }
          /*
           * A.fx
           *
           * Created on 2010-2-25, 22:10:45
           
          */

          package org.jqueen.fx.bug;

          /**
           * 
          @author Leon
           
          */

          public mixin class A {}
          BugTest里實現(xiàn)了3個帶輸入參數(shù)的重載方法,第一個方法的參數(shù)是自定義類型A,A被聲明為mixin,后2個的參數(shù)是原始類型。只有在第一個方法被注釋的情況下該類才可以被編譯通過,否則編譯器會拋出異常:
          An exception has occurred in the OpenJavafx compiler. Please file a bug at the Openjfx-compiler issues home (https://openjfx-compiler.dev.java.net/Issues) after checking for duplicates. Include the following diagnostic in your report and, if possible, the source code which triggered this problem.  Thank you.
          java.lang.ClassCastException: com.sun.tools.javac.code.Symbol$ClassSymbol
                  at com.sun.tools.javafx.code.JavafxTypes.asSuper(JavafxTypes.java:202)
                  at com.sun.tools.javac.code.Types.isSubtypeUnchecked(Types.java:305)
                  at com.sun.tools.javafx.comp.JavafxResolve.argumentsAcceptable(JavafxResolve.java:421)
                  at com.sun.tools.javafx.comp.JavafxResolve.rawInstantiate(JavafxResolve.java:387)
                  at com.sun.tools.javafx.comp.JavafxResolve.selectBest(JavafxResolve.java:711)
                  at com.sun.tools.javafx.comp.JavafxResolve.findMemberWithoutAccessChecks(JavafxResolve.java:952)
                  at com.sun.tools.javafx.comp.JavafxResolve.findMember(JavafxResolve.java:906)
                  at com.sun.tools.javafx.comp.JavafxResolve.findMember(JavafxResolve.java:886)
                  at com.sun.tools.javafx.comp.JavafxResolve.findVar(JavafxResolve.java:567)
                  at com.sun.tools.javafx.comp.JavafxResolve.findIdent(JavafxResolve.java:1228)
                  at com.sun.tools.javafx.comp.JavafxResolve.resolveIdent(JavafxResolve.java:1423)
                  at com.sun.tools.javafx.comp.JavafxAttr.visitIdent(JavafxAttr.java:506)
                  at com.sun.tools.javafx.tree.JFXIdent.accept(JFXIdent.java:52)
                  at com.sun.tools.javafx.comp.JavafxAttr.attribTree(JavafxAttr.java:280)
                  at com.sun.tools.javafx.comp.JavafxAttr.attribTree(JavafxAttr.java:265)
                  at com.sun.tools.javafx.comp.JavafxAttr.attribExpr(JavafxAttr.java:311)
                  at com.sun.tools.javafx.comp.JavafxAttr.visitFunctionInvocation(JavafxAttr.java:2239)
                  at com.sun.tools.javafx.tree.JFXFunctionInvocation.accept(JFXFunctionInvocation.java:53)
                  at com.sun.tools.javafx.comp.JavafxAttr.attribTree(JavafxAttr.java:280)
                  at com.sun.tools.javafx.comp.JavafxAttr.attribTree(JavafxAttr.java:265)
                  at com.sun.tools.javafx.comp.JavafxAttr.attribExpr(JavafxAttr.java:303)
                  at com.sun.tools.javafx.comp.JavafxAttr.visitBlockExpression(JavafxAttr.java:1373)
                  at com.sun.tools.javafx.tree.JFXBlock.accept(JFXBlock.java:83)
                  at com.sun.tools.javafx.comp.JavafxAttr.attribTree(JavafxAttr.java:280)
                  at com.sun.tools.javafx.comp.JavafxAttr.attribTree(JavafxAttr.java:265)
                  at com.sun.tools.javafx.comp.JavafxAttr.attribExpr(JavafxAttr.java:311)
                  at com.sun.tools.javafx.comp.JavafxAttr.finishFunctionDefinition(JavafxAttr.java:1863)
                  at com.sun.tools.javafx.comp.JavafxMemberEnter$SymbolCompleter.complete(JavafxMemberEnter.java:646)
                  at com.sun.tools.javac.code.Symbol.complete(Symbol.java:400)
                  at com.sun.tools.javafx.comp.JavafxAttr.visitFunctionDefinition(JavafxAttr.java:1658)
                  at com.sun.tools.javafx.tree.JFXFunctionDefinition.accept(JFXFunctionDefinition.java:93)
                  at com.sun.tools.javafx.comp.JavafxAttr.attribTree(JavafxAttr.java:280)
                  at com.sun.tools.javafx.comp.JavafxAttr.attribTree(JavafxAttr.java:265)
                  at com.sun.tools.javafx.comp.JavafxAttr.attribExpr(JavafxAttr.java:321)
                  at com.sun.tools.javafx.comp.JavafxMemberEnter$SymbolCompleter.complete(JavafxMemberEnter.java:643)
                  at com.sun.tools.javac.code.Symbol.complete(Symbol.java:400)
                  at com.sun.tools.javafx.comp.JavafxResolve.findMemberWithoutAccessChecks(JavafxResolve.java:943)
                  at com.sun.tools.javafx.comp.JavafxResolve.findMember(JavafxResolve.java:906)
                  at com.sun.tools.javafx.comp.JavafxResolve.findMember(JavafxResolve.java:886)
                  at com.sun.tools.javafx.comp.JavafxResolve.findVar(JavafxResolve.java:567)
                  at com.sun.tools.javafx.comp.JavafxResolve.findIdent(JavafxResolve.java:1228)
                  at com.sun.tools.javafx.comp.JavafxResolve.resolveIdent(JavafxResolve.java:1423)
                  at com.sun.tools.javafx.comp.JavafxAttr.visitIdent(JavafxAttr.java:506)
                  at com.sun.tools.javafx.tree.JFXIdent.accept(JFXIdent.java:52)
                  at com.sun.tools.javafx.comp.JavafxAttr.attribTree(JavafxAttr.java:280)
                  at com.sun.tools.javafx.comp.JavafxAttr.attribTree(JavafxAttr.java:265)
                  at com.sun.tools.javafx.comp.JavafxAttr.attribExpr(JavafxAttr.java:311)
                  at com.sun.tools.javafx.comp.JavafxAttr.visitFunctionInvocation(JavafxAttr.java:2239)
                  at com.sun.tools.javafx.tree.JFXFunctionInvocation.accept(JFXFunctionInvocation.java:53)
                  at com.sun.tools.javafx.comp.JavafxAttr.attribTree(JavafxAttr.java:280)
                  at com.sun.tools.javafx.comp.JavafxAttr.attribTree(JavafxAttr.java:265)
                  at com.sun.tools.javafx.comp.JavafxAttr.attribExpr(JavafxAttr.java:303)
                  at com.sun.tools.javafx.comp.JavafxAttr.visitBlockExpression(JavafxAttr.java:1373)
                  at com.sun.tools.javafx.tree.JFXBlock.accept(JFXBlock.java:83)
                  at com.sun.tools.javafx.comp.JavafxAttr.attribTree(JavafxAttr.java:280)
                  at com.sun.tools.javafx.comp.JavafxAttr.attribTree(JavafxAttr.java:265)
                  at com.sun.tools.javafx.comp.JavafxAttr.attribExpr(JavafxAttr.java:311)
                  at com.sun.tools.javafx.comp.JavafxAttr.finishFunctionDefinition(JavafxAttr.java:1863)
                  at com.sun.tools.javafx.comp.JavafxMemberEnter$SymbolCompleter.complete(JavafxMemberEnter.java:646)
                  at com.sun.tools.javac.code.Symbol.complete(Symbol.java:400)
                  at com.sun.tools.javafx.comp.JavafxAttr.visitFunctionDefinition(JavafxAttr.java:1658)
                  at com.sun.tools.javafx.tree.JFXFunctionDefinition.accept(JFXFunctionDefinition.java:93)
                  at com.sun.tools.javafx.comp.JavafxAttr.attribTree(JavafxAttr.java:280)
                  at com.sun.tools.javafx.comp.JavafxAttr.attribTree(JavafxAttr.java:265)
                  at com.sun.tools.javafx.comp.JavafxAttr.attribDecl(JavafxAttr.java:334)
                  at com.sun.tools.javafx.comp.JavafxAttr.attribClassBody(JavafxAttr.java:3696)
                  at com.sun.tools.javafx.comp.JavafxAttr.attribClass(JavafxAttr.java:2808)
                  at com.sun.tools.javafx.comp.JavafxAttr.attribClass(JavafxAttr.java:2763)
                  at com.sun.tools.javafx.main.JavafxCompiler.attribute(JavafxCompiler.java:936)
                  at com.sun.tools.javafx.main.JavafxCompiler.compile2(JavafxCompiler.java:782)
                  at com.sun.tools.javafx.main.JavafxCompiler.compile(JavafxCompiler.java:685)
                  at com.sun.tools.javafx.main.Main.compile(Main.java:624)
                  at com.sun.tools.javafx.main.Main.compile(Main.java:312)
                  at com.sun.tools.javafx.Main.compile(Main.java:84)
                  at com.sun.tools.javafx.Main.main(Main.java:69)

          posted on 2010-02-25 23:35 陳維 閱讀(1600) 評論(1)  編輯  收藏 所屬分類: JavaFX

          評論

          # re: JavaFX編譯器編譯重載方法的一處BUG  回復  更多評論   

          很好123456
          2010-02-26 10:15 | 凡客誠品
          主站蜘蛛池模板: 常宁市| 五台县| 汤原县| 滦平县| 金堂县| 宜良县| 米林县| 吉首市| 威信县| 景德镇市| 香港 | 金华市| 原平市| 彭阳县| 镇康县| 宁国市| 长治市| 岳阳县| 呼和浩特市| 科尔| 延寿县| 酒泉市| 调兵山市| 建水县| 江城| 榆树市| 苍山县| 锦屏县| 石林| 西乡县| 基隆市| 梨树县| 黑龙江省| 永修县| 盱眙县| 方正县| 黎城县| 灵武市| 泾源县| 宜宾市| 溧水县|