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; }
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; }