소스 검색

Fixed non-const function arguments. Fixes #353.

woollybah 6 년 전
부모
커밋
f10f02989c
1개의 변경된 파일16개의 추가작업 그리고 1개의 파일을 삭제
  1. 16 1
      decl.bmx

+ 16 - 1
decl.bmx

@@ -682,7 +682,22 @@ Type TArgDecl Extends TLocalDecl
 	Method GetDeclPrefix:String()
 		Return ""
 	End Method
-	
+
+	Method OnSemant()
+		Super.OnSemant()
+		If init And Not TConstExpr(init) Then
+			If TCastExpr(init) Then
+				If TConstExpr(TCastExpr(init).expr) Or TNullExpr(TCastExpr(init).expr) Then
+					Return
+				End If
+			End If
+			If TInvokeExpr(init) And TFunctionPtrType(TInvokeExpr(init).exprType) Then
+				Return
+			End If
+			Err "Function defaults must be constant"
+		End If
+	End Method
+
 	Method ToString$()
 		Return Super.ToString()
 	End Method