[mono-vb] if Iter isnot nothing then generates exception during compile!

Rolf Bjarne Kvinge rolflists at ya.com
Mon Nov 16 04:28:29 EST 2009


Hi,

You're checking if a structure isnot nothing, which is an error.

MS' VB compiler shows this:

error BC31419: 'IsNot' requires operands that have reference types, but this
operand has the value type (...)

Rolf

> -----Original Message-----
> From: mono-vb-bounces at lists.ximian.com [mailto:mono-vb-
> bounces at lists.ximian.com] On Behalf Of Easy_Rider9999
> Sent: sábado, 14 de noviembre de 2009 21:43
> To: mono-vb at lists.ximian.com
> Subject: [mono-vb] if Iter isnot nothing then generates exception
> during compile!
> 
> 
> I get the following compile Error:
> 
> /home/jhmgbl/Projects/prjLinuxInfo/prjLinuxInfo/frmMain.vb (166,32) :
> Error
> VBNC99999: There was an exception during code generation.
> 
> /home/jhmgbl/Projects/prjLinuxInfo/prjLinuxInfo/<MyGenerator> (1,1) :
> Error
> VBNC99999: Unexpected error: There has been an internal error in the
> compiler caused by the line: (166,32)
> 
>   at vbnc.Is_IsNotExpression.GenerateCodeInternal (vbnc.EmitInfo Info)
> [0x0001e] in
> /media/disk/Downloads/Linux/mono-basic-
> 2.4.2/vbnc/vbnc/source/Expressions/BinaryExpressions/Is_IsNotExpression
> .vb:56
>   at vbnc.Expression.GenerateCode (vbnc.EmitInfo Info) [0x000dd] in
> /media/disk/Downloads/Linux/mono-basic-
> 2.4.2/vbnc/vbnc/source/Expressions/Expression.vb:195
> 
> Compilation took 00:00:02.8174030
> 
> 
> The Code of this procedure is:
> 
> Private Sub xvinfo
> 			Dim rIter as TreeIter = rootIter
> 			Dim Iter, lastRIter as TreeIter
> 			Dim si as new System.Diagnostics.ProcessStartInfo
> 			si.CreateNoWindow = true
> 			si.UseShellExecute = false
> 			si.RedirectStandardOutput = true
> 			si.FileName = "xvinfo"
> 			Dim p as process =
> system.diagnostics.process.start(si)
> 			Dim s as IO.StreamReader = p.StandardOutput
> 			Dim l as String
> 			Dim lastSpaces as Integer
> 			p.start
> 			Do
> 				l = s.ReadLine
> 				if l is nothing then exit Do
> 				Dim spaces as Integer = 0
> 				For I as Integer = 2 to 50 Step 2
> 					if l.startsWith (New String(" "c,I))
then
> 						spaces = I
> 					else
> 						exit For
> 					end if
> 				next I
> 				Dim Diff as Integer = spaces - lastspaces
> 				if Diff = 2 then
> 					lastSpaces = spaces
> 					if Iter isnot nothing then
> 						lastRIter = RIter
> 						rIter = Iter
> 					end if
> 
> 				elseif Diff = -2 then
> 					rIter =
> Store.Getiter(riter,Store.GetPath(riter).up)
> 					if rIter is nothing then rIter =
Iter
> 				end if
> 				iter = store.AppendValues(RIter,l)
> 
> 			Loop
> 			p.waitforexit
> 
> 
> 		End Sub
> 
> 
> Regard Hans
> --
> View this message in context: http://old.nabble.com/if-Iter-isnot-
> nothing-then---generates-exception-during-compile%21-
> tp26353710p26353710.html
> Sent from the Mono - VB mailing list archive at Nabble.com.
> 
> _______________________________________________
> Mono-vb mailing list
> Mono-vb at lists.ximian.com
> http://lists.ximian.com/mailman/listinfo/mono-vb



More information about the Mono-vb mailing list