소스 검색

Optional is and isNot null

kindlich 6 년 전
부모
커밋
07fa6e2ccb
No known key found for this signature in database
1개의 변경된 파일16개의 추가작업 그리고 0개의 파일을 삭제
  1. 16
    0
      JavaBytecodeCompiler/src/main/java/org/openzen/zenscript/javabytecode/compiler/JavaExpressionVisitor.java

+ 16
- 0
JavaBytecodeCompiler/src/main/java/org/openzen/zenscript/javabytecode/compiler/JavaExpressionVisitor.java 파일 보기

@@ -1035,6 +1035,22 @@ public class JavaExpressionVisitor implements ExpressionVisitor<Void>, JavaNativ
1035 1035
 				break;
1036 1036
 			case AUTOOP_NOTEQUALS:
1037 1037
 				throw new UnsupportedOperationException("Not yet supported!");
1038
+			case OPTIONAL_IS_NULL:
1039
+			case OPTIONAL_IS_NOT_NULL:
1040
+				final Label isFalse = new Label();
1041
+				final Label end = new Label();
1042
+
1043
+				if(builtin == BuiltinID.OPTIONAL_IS_NULL)
1044
+					javaWriter.ifNonNull(isFalse);
1045
+				else
1046
+					javaWriter.ifNull(isFalse);
1047
+				javaWriter.iConst1();
1048
+				javaWriter.goTo(end);
1049
+				javaWriter.label(isFalse);
1050
+				javaWriter.iConst0();
1051
+				javaWriter.label(end);
1052
+				break;
1053
+
1038 1054
 			default:
1039 1055
 				throw new UnsupportedOperationException("Unknown builtin: " + builtin);
1040 1056
 		}

Loading…
취소
저장