예제 #1
0
 private boolean hasMethods(ExpressionType clzType, TreeNode m) {
   if (clzType.isPrimitiveType()) {
     diagnostics.report(
         SourceDiagnostics.error(
             tree.getOrigin(), m.getParsePosition(), "Primitives have no methods"));
     return false;
   } else if (clzType == ExpressionType.VOID) {
     diagnostics.report(
         SourceDiagnostics.error(tree.getOrigin(), m.getParsePosition(), "Void has no methods"));
     return false;
   } else if (clzType == ExpressionType.NULL) {
     diagnostics.report(
         SourceDiagnostics.error(tree.getOrigin(), m.getParsePosition(), "null has no methods"));
     return false;
   }
   return true;
 }
예제 #2
0
 private ExpressionType lub(TreeNode tn, ExpressionType et1, ExpressionType et2) {
   if (et1.isPrimitiveType()) {
     if (!et2.isPrimitiveType()) {
       diagnostics.report(
           SourceDiagnostics.error(
               tree.getOrigin(),
               tn.getParsePosition(),
               "Unable to find common parent type of %s and %s",
               et1,
               et2));
       return null;
     }
     return ExpressionType.bigger(et1, et2);
   }
   return et1;
 }