Closed
Description
I don't exactly know why, but the following code crashes 5 times my rescript language server:
module Typescript = {
type project
@module("ts-morph") @new
external createProject: unit => project = "Project"
type sourceFile
@send
external createSourceFile: (project, string, string) => sourceFile = ""
type node
@send
external getChildren: (sourceFile, unit) => array<node> = ""
@unboxed
type kindNumber = KindNumber(int)
@send
external getKind: (node, unit) => kindNumber = ""
@send
external getKindName: (node, unit) => string = ""
type syntaxKind =
| Unknown
| EndOfFileToken
| SingleLineCommentTrivia
| MultiLineCommentTrivia
| NewLineTrivia
| WhitespaceTrivia
| ShebangTrivia
| ConflictMarkerTrivia
| NumericLiteral
| BigIntLiteral
| StringLiteral
| JsxText
| JsxTextAllWhiteSpaces
| RegularExpressionLiteral
| NoSubstitutionTemplateLiteral
| TemplateHead
| TemplateMiddle
| TemplateTail
| OpenBraceToken
| CloseBraceToken
| OpenParenToken
| CloseParenToken
| OpenBracketToken
| CloseBracketToken
| DotToken
| DotDotDotToken
| SemicolonToken
| CommaToken
| QuestionDotToken
| LessThanToken
| LessThanSlashToken
| GreaterThanToken
| LessThanEqualsToken
| GreaterThanEqualsToken
| EqualsEqualsToken
| ExclamationEqualsToken
| EqualsEqualsEqualsToken
| ExclamationEqualsEqualsToken
| EqualsGreaterThanToken
| PlusToken
| MinusToken
| AsteriskToken
| AsteriskAsteriskToken
| SlashToken
| PercentToken
| PlusPlusToken
| MinusMinusToken
| LessThanLessThanToken
| GreaterThanGreaterThanToken
| GreaterThanGreaterThanGreaterThanToken
| AmpersandToken
| BarToken
| CaretToken
| ExclamationToken
| TildeToken
| AmpersandAmpersandToken
| BarBarToken
| QuestionToken
| ColonToken
| AtToken
| QuestionQuestionToken
| BacktickToken
| HashToken
| EqualsToken
| PlusEqualsToken
| MinusEqualsToken
| AsteriskEqualsToken
| AsteriskAsteriskEqualsToken
| SlashEqualsToken
| PercentEqualsToken
| LessThanLessThanEqualsToken
| GreaterThanGreaterThanEqualsToken
| GreaterThanGreaterThanGreaterThanEqualsToken
| AmpersandEqualsToken
| BarEqualsToken
| BarBarEqualsToken
| AmpersandAmpersandEqualsToken
| QuestionQuestionEqualsToken
| CaretEqualsToken
| Identifier
| PrivateIdentifier
| BreakKeyword
| CaseKeyword
| CatchKeyword
| ClassKeyword
| ConstKeyword
| ContinueKeyword
| DebuggerKeyword
| DefaultKeyword
| DeleteKeyword
| DoKeyword
| ElseKeyword
| EnumKeyword
| ExportKeyword
| ExtendsKeyword
| FalseKeyword
| FinallyKeyword
| ForKeyword
| FunctionKeyword
| IfKeyword
| ImportKeyword
| InKeyword
| InstanceOfKeyword
| NewKeyword
| NullKeyword
| ReturnKeyword
| SuperKeyword
| SwitchKeyword
| ThisKeyword
| ThrowKeyword
| TrueKeyword
| TryKeyword
| TypeOfKeyword
| VarKeyword
| VoidKeyword
| WhileKeyword
| WithKeyword
| ImplementsKeyword
| InterfaceKeyword
| LetKeyword
| PackageKeyword
| PrivateKeyword
| ProtectedKeyword
| PublicKeyword
| StaticKeyword
| YieldKeyword
| AbstractKeyword
| AsKeyword
| AssertsKeyword
| AnyKeyword
| AsyncKeyword
| AwaitKeyword
| BooleanKeyword
| ConstructorKeyword
| DeclareKeyword
| GetKeyword
| InferKeyword
| IntrinsicKeyword
| IsKeyword
| KeyOfKeyword
| ModuleKeyword
| NamespaceKeyword
| NeverKeyword
| ReadonlyKeyword
| RequireKeyword
| NumberKeyword
| ObjectKeyword
| SetKeyword
| StringKeyword
| SymbolKeyword
| TypeKeyword
| UndefinedKeyword
| UniqueKeyword
| UnknownKeyword
| FromKeyword
| GlobalKeyword
| BigIntKeyword
| OverrideKeyword
| OfKeyword
| QualifiedName
| ComputedPropertyName
| TypeParameter
| Parameter
| Decorator
| PropertySignature
| PropertyDeclaration
| MethodSignature
| MethodDeclaration
| ClassStaticBlockDeclaration
| Constructor
| GetAccessor
| SetAccessor
| CallSignature
| ConstructSignature
| IndexSignature
| TypePredicate
| TypeReference
| FunctionType
| ConstructorType
| TypeQuery
| TypeLiteral
| ArrayType
| TupleType
| OptionalType
| RestType
| UnionType
| IntersectionType
| ConditionalType
| InferType
| ParenthesizedType
| ThisType
| TypeOperator
| IndexedAccessType
| MappedType
| LiteralType
| NamedTupleMember
| TemplateLiteralType
| TemplateLiteralTypeSpan
| ImportType
| ObjectBindingPattern
| ArrayBindingPattern
| BindingElement
| ArrayLiteralExpression
| ObjectLiteralExpression
| PropertyAccessExpression
| ElementAccessExpression
| CallExpression
| NewExpression
| TaggedTemplateExpression
| TypeAssertionExpression
| ParenthesizedExpression
| FunctionExpression
| ArrowFunction
| DeleteExpression
| TypeOfExpression
| VoidExpression
| AwaitExpression
| PrefixUnaryExpression
| PostfixUnaryExpression
| BinaryExpression
| ConditionalExpression
| TemplateExpression
| YieldExpression
| SpreadElement
| ClassExpression
| OmittedExpression
| ExpressionWithTypeArguments
| AsExpression
| NonNullExpression
| MetaProperty
| SyntheticExpression
| TemplateSpan
| SemicolonClassElement
| Block
| EmptyStatement
| VariableStatement
| ExpressionStatement
| IfStatement
| DoStatement
| WhileStatement
| ForStatement
| ForInStatement
| ForOfStatement
| ContinueStatement
| BreakStatement
| ReturnStatement
| WithStatement
| SwitchStatement
| LabeledStatement
| ThrowStatement
| TryStatement
| DebuggerStatement
| VariableDeclaration
| VariableDeclarationList
| FunctionDeclaration
| ClassDeclaration
| InterfaceDeclaration
| TypeAliasDeclaration
| EnumDeclaration
| ModuleDeclaration
| ModuleBlock
| CaseBlock
| NamespaceExportDeclaration
| ImportEqualsDeclaration
| ImportDeclaration
| ImportClause
| NamespaceImport
| NamedImports
| ImportSpecifier
| ExportAssignment
| ExportDeclaration
| NamedExports
| NamespaceExport
| ExportSpecifier
| MissingDeclaration
| ExternalModuleReference
| JsxElement
| JsxSelfClosingElement
| JsxOpeningElement
| JsxClosingElement
| JsxFragment
| JsxOpeningFragment
| JsxClosingFragment
| JsxAttribute
| JsxAttributes
| JsxSpreadAttribute
| JsxExpression
| CaseClause
| DefaultClause
| HeritageClause
| CatchClause
| PropertyAssignment
| ShorthandPropertyAssignment
| SpreadAssignment
| EnumMember
| UnparsedPrologue
| UnparsedPrepend
| UnparsedText
| UnparsedInternalText
| UnparsedSyntheticReference
| SourceFile
| Bundle
| UnparsedSource
| InputFiles
| JSDocTypeExpression
| JSDocNameReference
| JSDocMemberName
| JSDocAllType
| JSDocUnknownType
| JSDocNullableType
| JSDocNonNullableType
| JSDocOptionalType
| JSDocFunctionType
| JSDocVariadicType
| JSDocNamepathType
| JSDocComment
| JSDocText
| JSDocTypeLiteral
| JSDocSignature
| JSDocLink
| JSDocLinkCode
| JSDocLinkPlain
| JSDocTag
| JSDocAugmentsTag
| JSDocImplementsTag
| JSDocAuthorTag
| JSDocDeprecatedTag
| JSDocClassTag
| JSDocPublicTag
| JSDocPrivateTag
| JSDocProtectedTag
| JSDocReadonlyTag
| JSDocOverrideTag
| JSDocCallbackTag
| JSDocEnumTag
| JSDocParameterTag
| JSDocReturnTag
| JSDocThisTag
| JSDocTypeTag
| JSDocTemplateTag
| JSDocTypedefTag
| JSDocSeeTag
| JSDocPropertyTag
| SyntaxList
| NotEmittedStatement
| PartiallyEmittedExpression
| CommaListExpression
| MergeDeclarationMarker
| EndOfDeclarationMarker
| SyntheticReferenceExpression
| Count
| FirstAssignment
| LastAssignment
| FirstCompoundAssignment
| LastCompoundAssignment
| FirstReservedWord
| LastReservedWord
| FirstKeyword
| LastKeyword
| FirstFutureReservedWord
| LastFutureReservedWord
| FirstTypeNode
| LastTypeNode
| FirstPunctuation
| LastPunctuation
| FirstToken
| LastToken
| FirstTriviaToken
| LastTriviaToken
| FirstLiteralToken
| LastLiteralToken
| FirstTemplateToken
| LastTemplateToken
| FirstBinaryOperator
| LastBinaryOperator
| FirstStatement
| LastStatement
| FirstNode
| FirstJSDocNode
| LastJSDocNode
| FirstJSDocTagNode
| LastJSDocTagNode
exception UnknownSyntaxKind
let getSyntaxKind = (KindNumber(syntaxKind)) =>
switch syntaxKind {
| 0 => Unknown
| 1 => EndOfFileToken
| 2 => SingleLineCommentTrivia
| 3 => MultiLineCommentTrivia
| 4 => NewLineTrivia
| 5 => WhitespaceTrivia
| 6 => ShebangTrivia
| 7 => ConflictMarkerTrivia
| 8 => NumericLiteral
| 9 => BigIntLiteral
| 10 => StringLiteral
| 11 => JsxText
| 12 => JsxTextAllWhiteSpaces
| 13 => RegularExpressionLiteral
| 14 => NoSubstitutionTemplateLiteral
| 15 => TemplateHead
| 16 => TemplateMiddle
| 17 => TemplateTail
| 18 => OpenBraceToken
| 19 => CloseBraceToken
| 20 => OpenParenToken
| 21 => CloseParenToken
| 22 => OpenBracketToken
| 23 => CloseBracketToken
| 24 => DotToken
| 25 => DotDotDotToken
| 26 => SemicolonToken
| 27 => CommaToken
| 28 => QuestionDotToken
| 29 => LessThanToken
| 30 => LessThanSlashToken
| 31 => GreaterThanToken
| 32 => LessThanEqualsToken
| 33 => GreaterThanEqualsToken
| 34 => EqualsEqualsToken
| 35 => ExclamationEqualsToken
| 36 => EqualsEqualsEqualsToken
| 37 => ExclamationEqualsEqualsToken
| 38 => EqualsGreaterThanToken
| 39 => PlusToken
| 40 => MinusToken
| 41 => AsteriskToken
| 42 => AsteriskAsteriskToken
| 43 => SlashToken
| 44 => PercentToken
| 45 => PlusPlusToken
| 46 => MinusMinusToken
| 47 => LessThanLessThanToken
| 48 => GreaterThanGreaterThanToken
| 49 => GreaterThanGreaterThanGreaterThanToken
| 50 => AmpersandToken
| 51 => BarToken
| 52 => CaretToken
| 53 => ExclamationToken
| 54 => TildeToken
| 55 => AmpersandAmpersandToken
| 56 => BarBarToken
| 57 => QuestionToken
| 58 => ColonToken
| 59 => AtToken
| 60 => QuestionQuestionToken
| 61 => BacktickToken
| 62 => HashToken
| 63 => EqualsToken
| 64 => PlusEqualsToken
| 65 => MinusEqualsToken
| 66 => AsteriskEqualsToken
| 67 => AsteriskAsteriskEqualsToken
| 68 => SlashEqualsToken
| 69 => PercentEqualsToken
| 70 => LessThanLessThanEqualsToken
| 71 => GreaterThanGreaterThanEqualsToken
| 72 => GreaterThanGreaterThanGreaterThanEqualsToken
| 73 => AmpersandEqualsToken
| 74 => BarEqualsToken
| 75 => BarBarEqualsToken
| 76 => AmpersandAmpersandEqualsToken
| 77 => QuestionQuestionEqualsToken
| 78 => CaretEqualsToken
| 79 => Identifier
| 80 => PrivateIdentifier
| 81 => BreakKeyword
| 82 => CaseKeyword
| 83 => CatchKeyword
| 84 => ClassKeyword
| 85 => ConstKeyword
| 86 => ContinueKeyword
| 87 => DebuggerKeyword
| 88 => DefaultKeyword
| 89 => DeleteKeyword
| 90 => DoKeyword
| 91 => ElseKeyword
| 92 => EnumKeyword
| 93 => ExportKeyword
| 94 => ExtendsKeyword
| 95 => FalseKeyword
| 96 => FinallyKeyword
| 97 => ForKeyword
| 98 => FunctionKeyword
| 99 => IfKeyword
| 100 => ImportKeyword
| 101 => InKeyword
| 102 => InstanceOfKeyword
| 103 => NewKeyword
| 104 => NullKeyword
| 105 => ReturnKeyword
| 106 => SuperKeyword
| 107 => SwitchKeyword
| 108 => ThisKeyword
| 109 => ThrowKeyword
| 110 => TrueKeyword
| 111 => TryKeyword
| 112 => TypeOfKeyword
| 113 => VarKeyword
| 114 => VoidKeyword
| 115 => WhileKeyword
| 116 => WithKeyword
| 117 => ImplementsKeyword
| 118 => InterfaceKeyword
| 119 => LetKeyword
| 120 => PackageKeyword
| 121 => PrivateKeyword
| 122 => ProtectedKeyword
| 123 => PublicKeyword
| 124 => StaticKeyword
| 125 => YieldKeyword
| 126 => AbstractKeyword
| 127 => AsKeyword
| 128 => AssertsKeyword
| 129 => AnyKeyword
| 130 => AsyncKeyword
| 131 => AwaitKeyword
| 132 => BooleanKeyword
| 133 => ConstructorKeyword
| 134 => DeclareKeyword
| 135 => GetKeyword
| 136 => InferKeyword
| 137 => IntrinsicKeyword
| 138 => IsKeyword
| 139 => KeyOfKeyword
| 140 => ModuleKeyword
| 141 => NamespaceKeyword
| 142 => NeverKeyword
| 143 => ReadonlyKeyword
| 144 => RequireKeyword
| 145 => NumberKeyword
| 146 => ObjectKeyword
| 147 => SetKeyword
| 148 => StringKeyword
| 149 => SymbolKeyword
| 150 => TypeKeyword
| 151 => UndefinedKeyword
| 152 => UniqueKeyword
| 153 => UnknownKeyword
| 154 => FromKeyword
| 155 => GlobalKeyword
| 156 => BigIntKeyword
| 157 => OverrideKeyword
| 158 => OfKeyword
| 159 => QualifiedName
| 160 => ComputedPropertyName
| 161 => TypeParameter
| 162 => Parameter
| 163 => Decorator
| 164 => PropertySignature
| 165 => PropertyDeclaration
| 166 => MethodSignature
| 167 => MethodDeclaration
| 168 => ClassStaticBlockDeclaration
| 169 => Constructor
| 170 => GetAccessor
| 171 => SetAccessor
| 172 => CallSignature
| 173 => ConstructSignature
| 174 => IndexSignature
| 175 => TypePredicate
| 176 => TypeReference
| 177 => FunctionType
| 178 => ConstructorType
| 179 => TypeQuery
| 180 => TypeLiteral
| 181 => ArrayType
| 182 => TupleType
| 183 => OptionalType
| 184 => RestType
| 185 => UnionType
| 186 => IntersectionType
| 187 => ConditionalType
| 188 => InferType
| 189 => ParenthesizedType
| 190 => ThisType
| 191 => TypeOperator
| 192 => IndexedAccessType
| 193 => MappedType
| 194 => LiteralType
| 195 => NamedTupleMember
| 196 => TemplateLiteralType
| 197 => TemplateLiteralTypeSpan
| 198 => ImportType
| 199 => ObjectBindingPattern
| 200 => ArrayBindingPattern
| 201 => BindingElement
| 202 => ArrayLiteralExpression
| 203 => ObjectLiteralExpression
| 204 => PropertyAccessExpression
| 205 => ElementAccessExpression
| 206 => CallExpression
| 207 => NewExpression
| 208 => TaggedTemplateExpression
| 209 => TypeAssertionExpression
| 210 => ParenthesizedExpression
| 211 => FunctionExpression
| 212 => ArrowFunction
| 213 => DeleteExpression
| 214 => TypeOfExpression
| 215 => VoidExpression
| 216 => AwaitExpression
| 217 => PrefixUnaryExpression
| 218 => PostfixUnaryExpression
| 219 => BinaryExpression
| 220 => ConditionalExpression
| 221 => TemplateExpression
| 222 => YieldExpression
| 223 => SpreadElement
| 224 => ClassExpression
| 225 => OmittedExpression
| 226 => ExpressionWithTypeArguments
| 227 => AsExpression
| 228 => NonNullExpression
| 229 => MetaProperty
| 230 => SyntheticExpression
| 231 => TemplateSpan
| 232 => SemicolonClassElement
| 233 => Block
| 234 => EmptyStatement
| 235 => VariableStatement
| 236 => ExpressionStatement
| 237 => IfStatement
| 238 => DoStatement
| 239 => WhileStatement
| 240 => ForStatement
| 241 => ForInStatement
| 242 => ForOfStatement
| 243 => ContinueStatement
| 244 => BreakStatement
| 245 => ReturnStatement
| 246 => WithStatement
| 247 => SwitchStatement
| 248 => LabeledStatement
| 249 => ThrowStatement
| 250 => TryStatement
| 251 => DebuggerStatement
| 252 => VariableDeclaration
| 253 => VariableDeclarationList
| 254 => FunctionDeclaration
| 255 => ClassDeclaration
| 256 => InterfaceDeclaration
| 257 => TypeAliasDeclaration
| 258 => EnumDeclaration
| 259 => ModuleDeclaration
| 260 => ModuleBlock
| 261 => CaseBlock
| 262 => NamespaceExportDeclaration
| 263 => ImportEqualsDeclaration
| 264 => ImportDeclaration
| 265 => ImportClause
| 266 => NamespaceImport
| 267 => NamedImports
| 268 => ImportSpecifier
| 269 => ExportAssignment
| 270 => ExportDeclaration
| 271 => NamedExports
| 272 => NamespaceExport
| 273 => ExportSpecifier
| 274 => MissingDeclaration
| 275 => ExternalModuleReference
| 276 => JsxElement
| 277 => JsxSelfClosingElement
| 278 => JsxOpeningElement
| 279 => JsxClosingElement
| 280 => JsxFragment
| 281 => JsxOpeningFragment
| 282 => JsxClosingFragment
| 283 => JsxAttribute
| 284 => JsxAttributes
| 285 => JsxSpreadAttribute
| 286 => JsxExpression
| 287 => CaseClause
| 288 => DefaultClause
| 289 => HeritageClause
| 290 => CatchClause
| 291 => PropertyAssignment
| 292 => ShorthandPropertyAssignment
| 293 => SpreadAssignment
| 294 => EnumMember
| 295 => UnparsedPrologue
| 296 => UnparsedPrepend
| 297 => UnparsedText
| 298 => UnparsedInternalText
| 299 => UnparsedSyntheticReference
| 300 => SourceFile
| 301 => Bundle
| 302 => UnparsedSource
| 303 => InputFiles
| 304 => JSDocTypeExpression
| 305 => JSDocNameReference
| 306 => JSDocMemberName
| 307 => JSDocAllType
| 308 => JSDocUnknownType
| 309 => JSDocNullableType
| 310 => JSDocNonNullableType
| 311 => JSDocOptionalType
| 312 => JSDocFunctionType
| 313 => JSDocVariadicType
| 314 => JSDocNamepathType
| 315 => JSDocComment
| 316 => JSDocText
| 317 => JSDocTypeLiteral
| 318 => JSDocSignature
| 319 => JSDocLink
| 320 => JSDocLinkCode
| 321 => JSDocLinkPlain
| 322 => JSDocTag
| 323 => JSDocAugmentsTag
| 324 => JSDocImplementsTag
| 325 => JSDocAuthorTag
| 326 => JSDocDeprecatedTag
| 327 => JSDocClassTag
| 328 => JSDocPublicTag
| 329 => JSDocPrivateTag
| 330 => JSDocProtectedTag
| 331 => JSDocReadonlyTag
| 332 => JSDocOverrideTag
| 333 => JSDocCallbackTag
| 334 => JSDocEnumTag
| 335 => JSDocParameterTag
| 336 => JSDocReturnTag
| 337 => JSDocThisTag
| 338 => JSDocTypeTag
| 339 => JSDocTemplateTag
| 340 => JSDocTypedefTag
| 341 => JSDocSeeTag
| 342 => JSDocPropertyTag
| 343 => SyntaxList
| 344 => NotEmittedStatement
| 345 => PartiallyEmittedExpression
| 346 => CommaListExpression
| 347 => MergeDeclarationMarker
| 348 => EndOfDeclarationMarker
| 349 => SyntheticReferenceExpression
| 350 => Count
| _ => raise(UnknownSyntaxKind)
}
}
let program = Typescript.createProject()
Typescript. // Calling intellisense completion crashes the server. I have mapped it to Ctrl + splace.
After that I have to reload the plugin. Is this expected?
Metadata
Metadata
Assignees
Labels
No labels