Mercurial > vim
view runtime/indent/testdir/vb.in @ 32816:939396a5711c v9.0.1722
patch 9.0.1722: wrong error messages when passing wrong types to count()
Commit: https://github.com/vim/vim/commit/4f389e7c0fe7dfeccfa512a72fa36f9028d57159
Author: zeertzjq <zeertzjq@outlook.com>
Date: Thu Aug 17 22:10:40 2023 +0200
patch 9.0.1722: wrong error messages when passing wrong types to count()
Problem: wrong error messages when passing wrong types to count()
Solution: fix it
This fixes two problems:
1. When passing wrong type to {ic} argument of count(), two error
messages are given, the second of which is misleading.
2. When passing wrong type to {comp} argument of count(), the error
message doesn't mention that {comp} may be a String.
closes: #12825
Signed-off-by: Christian Brabandt <cb@256bit.org>
Co-authored-by: zeertzjq <zeertzjq@outlook.com>
author | Christian Brabandt <cb@256bit.org> |
---|---|
date | Thu, 17 Aug 2023 22:15:03 +0200 |
parents | 7d68a90cbf5c |
children | f8e7e00787b5 |
line wrap: on
line source
' vim: filetype=vb shiftwidth=4 expandtab ' ' START_INDENT Public Type GEmployeeRecord ' Create user-defined type. ID As Integer ' Define elements of data type. Name As String * 20 Address As String * 30 Phone As Long HireDate As Date End Type Public Enum InterfaceColors icMistyRose = &HE1E4FF& icSlateGray = &H908070& icDodgerBlue = &HFF901E& icDeepSkyBlue = &HFFBF00& icSpringGreen = &H7FFF00& icForestGreen = &H228B22& icGoldenrod = &H20A5DA& icFirebrick = &H2222B2& End Enum Enum SecurityLevel IllegalEntry = -1 SecurityLevel1 = 0 SecurityLevel2 = 1 End Enum Public Function TestConditional (number As Integer, ext As String) As Boolean Dim inRange As Boolean Select Case number Case <= 0 inRange = False Case > 10 inRange = False Case Else inRange = True End Select ' This is a special case identified in the indent script. Select Case number End Select If ext = ".xlm" Then If inRange Then TestConditional = True Else TestConditional = False End If ElseIf ext = ".xlsx" Then If inRange Then TestConditional = False Else TestConditional = True End If Else TestConditional = False End If End Function Private Sub TestIterators (lLimit As Integer, uLimit As Integer) Dim a() As Variant Dim elmt As Variant Dim found As Boolean Dim indx As Integer Const specialValue As Integer = 5 If uLimit < lLimit Then Exit Sub End If ReDim a(lLimit To uLimit) For indx=lLimit To Ulimit a(indx) = 2 * indx Next indx found = False For Each elmt in a If elmt = specialValue Then found = True End If Next elmt If found then indx = uLimit Do While indx >= lLimit indx = indx - 1 Loop End If End Sub Public Sub TestMultiline (cellAddr As String, rowNbr As Long) Dim rng As Range Set rng = Range(cellAddr) With rng .Cells(1,1).Value = _ "Line 1 of multiline string; " & _ "Line 2 of multiline string; " & _ "Line 3 of multiline string" End With ' The following lines have whitespace after the underscore character ' and therefore do not form a valid multiline statement. The indent ' script correctly treats them as four single line statements contrary ' to the author's obvious indent. rng..Cells(1,1).Value = _ "Line 1 of multiline string; " & _ "Line 2 of multiline string; " & _ "Line 3 of multiline string" End Sub Private Sub TestStmtLabel() GoTo stmtLabel ' Statement labels are never indented stmtLabel: End Sub Sub TestTypeKeyword() Type EmployeeRecord ' Create user-defined type. ID As Integer ' Define elements of data type. Name As String * 20 Address As String * 30 Phone As Long HireDate As Date End Type Dim varType As EmployeeRecord End Sub ' END_INDENT