2
0
Эх сурвалжийг харах

Added warning on Struct use. Resolves #529.

Brucey 5 жил өмнө
parent
commit
b6d4b77f28
1 өөрчлөгдсөн 11 нэмэгдсэн , 1 устгасан
  1. 11 1
      stmt.bmx

+ 11 - 1
stmt.bmx

@@ -135,7 +135,17 @@ Type TAssignStmt Extends TStmt
 				If TVarExpr(lhs) Then
 					decl = TVarExpr(lhs).decl
 				Else
-					decl = TMemberVarExpr(lhs).decl
+					Local mvExpr:TMemberVarExpr = TMemberVarExpr(lhs)
+					decl = mvExpr.decl
+					
+					If TFieldDecl(decl) And (TInvokeExpr(mvExpr.expr) Or TInvokeMemberExpr(mvExpr.expr)) Then
+						If TClassDecl(decl.scope) And TClassDecl(decl.scope).IsStruct() Then
+							rhs = Null
+							Warn "Discarding Field assignment of Struct returned via invocation"
+							Return
+						End If
+					End If
+					
 				End If
 				If decl And decl.IsReadOnly() Then
 					If TFieldDecl(decl) Then