brighterscript 1.0.0-alpha.17 → 1.0.0-alpha.18

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (111) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/dist/DiagnosticMessages.d.ts +16 -1
  3. package/dist/DiagnosticMessages.js +15 -0
  4. package/dist/DiagnosticMessages.js.map +1 -1
  5. package/dist/Scope.d.ts +58 -8
  6. package/dist/Scope.js +128 -16
  7. package/dist/Scope.js.map +1 -1
  8. package/dist/astUtils/reflection.d.ts +6 -4
  9. package/dist/astUtils/reflection.js +14 -6
  10. package/dist/astUtils/reflection.js.map +1 -1
  11. package/dist/astUtils/reflection.spec.js +10 -0
  12. package/dist/astUtils/reflection.spec.js.map +1 -1
  13. package/dist/astUtils/visitors.d.ts +4 -1
  14. package/dist/astUtils/visitors.js.map +1 -1
  15. package/dist/files/BrsFile.Class.spec.js +2 -2
  16. package/dist/files/BrsFile.Class.spec.js.map +1 -1
  17. package/dist/files/BrsFile.d.ts +1 -0
  18. package/dist/files/BrsFile.js +65 -39
  19. package/dist/files/BrsFile.js.map +1 -1
  20. package/dist/files/BrsFile.spec.js +16 -3
  21. package/dist/files/BrsFile.spec.js.map +1 -1
  22. package/dist/globalCallables.js +79 -79
  23. package/dist/globalCallables.js.map +1 -1
  24. package/dist/interfaces.d.ts +43 -4
  25. package/dist/parser/Expression.d.ts +8 -3
  26. package/dist/parser/Expression.js +15 -5
  27. package/dist/parser/Expression.js.map +1 -1
  28. package/dist/parser/Parser.Class.spec.js +5 -5
  29. package/dist/parser/Parser.Class.spec.js.map +1 -1
  30. package/dist/parser/Parser.d.ts +2 -5
  31. package/dist/parser/Parser.js +105 -105
  32. package/dist/parser/Parser.js.map +1 -1
  33. package/dist/parser/Parser.spec.js +4 -4
  34. package/dist/parser/Parser.spec.js.map +1 -1
  35. package/dist/parser/SGTypes.d.ts +2 -2
  36. package/dist/parser/SGTypes.js +2 -2
  37. package/dist/parser/SGTypes.js.map +1 -1
  38. package/dist/parser/Statement.d.ts +52 -36
  39. package/dist/parser/Statement.js +109 -76
  40. package/dist/parser/Statement.js.map +1 -1
  41. package/dist/parser/tests/statement/InterfaceStatement.spec.js +181 -0
  42. package/dist/parser/tests/statement/InterfaceStatement.spec.js.map +1 -1
  43. package/dist/parser/tests/statement/TryCatch.spec.js +7 -5
  44. package/dist/parser/tests/statement/TryCatch.spec.js.map +1 -1
  45. package/dist/types/ArrayType.js +4 -1
  46. package/dist/types/ArrayType.js.map +1 -1
  47. package/dist/types/ArrayType.spec.js +3 -1
  48. package/dist/types/ArrayType.spec.js.map +1 -1
  49. package/dist/types/BooleanType.js +2 -1
  50. package/dist/types/BooleanType.js.map +1 -1
  51. package/dist/types/BooleanType.spec.js +3 -1
  52. package/dist/types/BooleanType.spec.js.map +1 -1
  53. package/dist/types/BscType.d.ts +1 -0
  54. package/dist/types/BscType.js +16 -1
  55. package/dist/types/BscType.js.map +1 -1
  56. package/dist/types/CustomType.js +10 -0
  57. package/dist/types/CustomType.js.map +1 -1
  58. package/dist/types/DoubleType.js +2 -1
  59. package/dist/types/DoubleType.js.map +1 -1
  60. package/dist/types/DoubleType.spec.js +3 -1
  61. package/dist/types/DoubleType.spec.js.map +1 -1
  62. package/dist/types/FloatType.js +2 -1
  63. package/dist/types/FloatType.js.map +1 -1
  64. package/dist/types/FloatType.spec.js +2 -0
  65. package/dist/types/FloatType.spec.js.map +1 -1
  66. package/dist/types/FunctionType.d.ts +3 -22
  67. package/dist/types/FunctionType.js +8 -68
  68. package/dist/types/FunctionType.js.map +1 -1
  69. package/dist/types/IntegerType.js +2 -1
  70. package/dist/types/IntegerType.js.map +1 -1
  71. package/dist/types/IntegerType.spec.js +3 -1
  72. package/dist/types/IntegerType.spec.js.map +1 -1
  73. package/dist/types/InterfaceType.d.ts +13 -10
  74. package/dist/types/InterfaceType.js +33 -29
  75. package/dist/types/InterfaceType.js.map +1 -1
  76. package/dist/types/InterfaceType.spec.js +36 -16
  77. package/dist/types/InterfaceType.spec.js.map +1 -1
  78. package/dist/types/InvalidType.js +2 -1
  79. package/dist/types/InvalidType.js.map +1 -1
  80. package/dist/types/InvalidType.spec.js +2 -0
  81. package/dist/types/InvalidType.spec.js.map +1 -1
  82. package/dist/types/LazyType.js +4 -0
  83. package/dist/types/LazyType.js.map +1 -1
  84. package/dist/types/LongIntegerType.js +2 -1
  85. package/dist/types/LongIntegerType.js.map +1 -1
  86. package/dist/types/LongIntegerType.spec.js +2 -0
  87. package/dist/types/LongIntegerType.spec.js.map +1 -1
  88. package/dist/types/StringType.js +2 -1
  89. package/dist/types/StringType.js.map +1 -1
  90. package/dist/types/StringType.spec.js +2 -0
  91. package/dist/types/StringType.spec.js.map +1 -1
  92. package/dist/types/TypedFunctionType.d.ts +28 -0
  93. package/dist/types/TypedFunctionType.js +88 -0
  94. package/dist/types/TypedFunctionType.js.map +1 -0
  95. package/dist/types/{FunctionType.spec.d.ts → TypedFunctionType.spec.d.ts} +0 -0
  96. package/dist/types/TypedFunctionType.spec.js +37 -0
  97. package/dist/types/TypedFunctionType.spec.js.map +1 -0
  98. package/dist/types/helpers.js +7 -2
  99. package/dist/types/helpers.js.map +1 -1
  100. package/dist/util.d.ts +2 -2
  101. package/dist/util.js +5 -5
  102. package/dist/util.js.map +1 -1
  103. package/dist/validators/ClassValidator.d.ts +14 -1
  104. package/dist/validators/ClassValidator.js +127 -80
  105. package/dist/validators/ClassValidator.js.map +1 -1
  106. package/package.json +1 -1
  107. package/dist/types/FunctionType.spec.js +0 -35
  108. package/dist/types/FunctionType.spec.js.map +0 -1
  109. package/dist/types/UniversalFunctionType.d.ts +0 -9
  110. package/dist/types/UniversalFunctionType.js +0 -25
  111. package/dist/types/UniversalFunctionType.js.map +0 -1
@@ -3,6 +3,12 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const testHelpers_spec_1 = require("../../../testHelpers.spec");
4
4
  const util_1 = require("../../../util");
5
5
  const Program_1 = require("../../../Program");
6
+ const chai_1 = require("chai");
7
+ const reflection_1 = require("../../../astUtils/reflection");
8
+ const DiagnosticMessages_1 = require("../../../DiagnosticMessages");
9
+ const Lexer_1 = require("../../../lexer/Lexer");
10
+ const Parser_1 = require("../../Parser");
11
+ const Statement_1 = require("../../Statement");
6
12
  describe('InterfaceStatement', () => {
7
13
  const rootDir = (0, util_1.standardizePath) `${process.cwd()}/.tmp/rootDir`;
8
14
  let program;
@@ -69,5 +75,180 @@ describe('InterfaceStatement', () => {
69
75
  program.validate();
70
76
  (0, testHelpers_spec_1.expectZeroDiagnostics)(program);
71
77
  });
78
+ it('throws exception when used in brightscript scope', () => {
79
+ var _a;
80
+ let { tokens } = Lexer_1.Lexer.scan(`
81
+ interface Iface
82
+ end interface
83
+ `);
84
+ let { diagnostics } = Parser_1.Parser.parse(tokens, { mode: Parser_1.ParseMode.BrightScript });
85
+ (0, chai_1.expect)((_a = diagnostics[0]) === null || _a === void 0 ? void 0 : _a.code).to.equal(DiagnosticMessages_1.DiagnosticMessages.bsFeatureNotSupportedInBrsFiles('').code);
86
+ });
87
+ it('parses empty interface', () => {
88
+ let { tokens } = Lexer_1.Lexer.scan(`
89
+ interface Person
90
+ end interface
91
+ `);
92
+ let { statements, diagnostics } = Parser_1.Parser.parse(tokens, { mode: Parser_1.ParseMode.BrighterScript });
93
+ (0, testHelpers_spec_1.expectZeroDiagnostics)(diagnostics);
94
+ (0, chai_1.expect)(statements[0]).instanceof(Statement_1.InterfaceStatement);
95
+ });
96
+ it('parses interface with fields', () => {
97
+ let { tokens } = Lexer_1.Lexer.scan(`
98
+ interface Iface
99
+ age as integer
100
+ name as string
101
+ end interface
102
+ `);
103
+ let { statements, diagnostics } = Parser_1.Parser.parse(tokens, { mode: Parser_1.ParseMode.BrighterScript });
104
+ (0, testHelpers_spec_1.expectZeroDiagnostics)(diagnostics);
105
+ (0, chai_1.expect)(statements[0]).instanceof(Statement_1.InterfaceStatement);
106
+ });
107
+ it('parses interface with methods', () => {
108
+ let { tokens } = Lexer_1.Lexer.scan(`
109
+ interface Iface
110
+ function getNum() as integer
111
+ function getData() as Object
112
+ end interface
113
+ `);
114
+ let { statements, diagnostics } = Parser_1.Parser.parse(tokens, { mode: Parser_1.ParseMode.BrighterScript });
115
+ (0, testHelpers_spec_1.expectZeroDiagnostics)(diagnostics);
116
+ (0, chai_1.expect)(statements[0]).instanceof(Statement_1.InterfaceStatement);
117
+ });
118
+ it('parses interface with classes as fields', () => {
119
+ let { tokens } = Lexer_1.Lexer.scan(`
120
+ class Klass
121
+ end class
122
+
123
+ interface Iface
124
+ myKlass as Klass
125
+ end interface
126
+ `);
127
+ let { statements, diagnostics } = Parser_1.Parser.parse(tokens, { mode: Parser_1.ParseMode.BrighterScript });
128
+ (0, testHelpers_spec_1.expectZeroDiagnostics)(diagnostics);
129
+ (0, chai_1.expect)(statements[0]).instanceof(Statement_1.ClassStatement);
130
+ (0, chai_1.expect)(statements[1]).instanceof(Statement_1.InterfaceStatement);
131
+ });
132
+ it('parses classes with interfaces as fields', () => {
133
+ let { tokens } = Lexer_1.Lexer.scan(`
134
+ interface Iface
135
+ age as integer
136
+ end interface
137
+
138
+ class Klass
139
+ myFace as Iface
140
+ end class
141
+ `);
142
+ let { statements, diagnostics } = Parser_1.Parser.parse(tokens, { mode: Parser_1.ParseMode.BrighterScript });
143
+ (0, testHelpers_spec_1.expectZeroDiagnostics)(diagnostics);
144
+ (0, chai_1.expect)(statements[0]).instanceof(Statement_1.InterfaceStatement);
145
+ (0, chai_1.expect)(statements[1]).instanceof(Statement_1.ClassStatement);
146
+ });
147
+ it('parses interfaces with inheritance', () => {
148
+ let { tokens } = Lexer_1.Lexer.scan(`
149
+ interface Basic
150
+ varA as string
151
+ end interface
152
+
153
+ interface Advanced extends Basic
154
+ varB as integer
155
+ end interface
156
+
157
+ interface Expert extends Advanced
158
+ varC as float
159
+ end interface
160
+ `);
161
+ let { statements, diagnostics } = Parser_1.Parser.parse(tokens, { mode: Parser_1.ParseMode.BrighterScript });
162
+ (0, testHelpers_spec_1.expectZeroDiagnostics)(diagnostics);
163
+ (0, chai_1.expect)(statements[0]).instanceof(Statement_1.InterfaceStatement);
164
+ (0, chai_1.expect)(statements[1]).instanceof(Statement_1.InterfaceStatement);
165
+ (0, chai_1.expect)(statements[2]).instanceof(Statement_1.InterfaceStatement);
166
+ });
167
+ it('bad property does not invalidate next sibling method', () => {
168
+ let { tokens } = Lexer_1.Lexer.scan(`
169
+ interface Person
170
+ firstName as
171
+ sub say(words as string)
172
+ end interface
173
+ `);
174
+ let { statements } = Parser_1.Parser.parse(tokens, { mode: Parser_1.ParseMode.BrighterScript });
175
+ let iFaceStmt = statements[0];
176
+ (0, chai_1.expect)(iFaceStmt.methods[0]).to.exist;
177
+ (0, chai_1.expect)(iFaceStmt.methods[0].name.text).to.equal('say');
178
+ });
179
+ it('catches interface without name', () => {
180
+ let { tokens } = Lexer_1.Lexer.scan(`
181
+ interface
182
+ end interface
183
+ `);
184
+ let { statements, diagnostics } = Parser_1.Parser.parse(tokens, { mode: Parser_1.ParseMode.BrighterScript });
185
+ (0, testHelpers_spec_1.expectDiagnostics)(diagnostics, [DiagnosticMessages_1.DiagnosticMessages.expectedIdentifierAfterKeyword('interface')]);
186
+ (0, chai_1.expect)(statements[0]).instanceof(Statement_1.InterfaceStatement);
187
+ });
188
+ it('catches malformed interface', () => {
189
+ let { tokens } = Lexer_1.Lexer.scan(`
190
+ interface Person
191
+ `);
192
+ let { statements, diagnostics } = Parser_1.Parser.parse(tokens, { mode: Parser_1.ParseMode.BrighterScript });
193
+ (0, testHelpers_spec_1.expectDiagnostics)(diagnostics, [DiagnosticMessages_1.DiagnosticMessages.couldNotFindMatchingEndKeyword('interface')]);
194
+ (0, chai_1.expect)(statements[0]).instanceof(Statement_1.InterfaceStatement);
195
+ });
196
+ it('parses multiple interfaces in a row', () => {
197
+ let { tokens } = Lexer_1.Lexer.scan(`
198
+ interface IFaceA
199
+ a as string
200
+ sub doA()
201
+ end interface
202
+ interface IFaceB
203
+ b as string
204
+ sub doB()
205
+ end interface
206
+ `);
207
+ let { statements, diagnostics } = Parser_1.Parser.parse(tokens, { mode: Parser_1.ParseMode.BrighterScript });
208
+ (0, testHelpers_spec_1.expectZeroDiagnostics)(diagnostics);
209
+ (0, chai_1.expect)(statements[0]).instanceof(Statement_1.InterfaceStatement);
210
+ (0, chai_1.expect)(statements[1]).instanceof(Statement_1.InterfaceStatement);
211
+ });
212
+ describe('symbol table', () => {
213
+ it('does not add methods to parser symbol table', () => {
214
+ let parser = Parser_1.Parser.parse(`
215
+ interface Animal
216
+ sub eat()
217
+ sub sleep()
218
+ end class
219
+ `, { mode: Parser_1.ParseMode.BrighterScript });
220
+ (0, chai_1.expect)(parser.symbolTable).to.exist;
221
+ (0, chai_1.expect)(parser.symbolTable.getSymbolType('eat')).to.be.undefined;
222
+ (0, chai_1.expect)(parser.symbolTable.getSymbolType('sleep')).to.be.undefined;
223
+ });
224
+ it('adds methods interface statement member symbol table after building', () => {
225
+ let parser = Parser_1.Parser.parse(`
226
+ interface Animal
227
+ sub eat()
228
+ sub sleep()
229
+ end interface
230
+ `, { mode: Parser_1.ParseMode.BrighterScript });
231
+ let ifaceStatement = parser.statements[0];
232
+ ifaceStatement.buildSymbolTable();
233
+ (0, chai_1.expect)(ifaceStatement.memberTable).to.exist;
234
+ (0, chai_1.expect)((0, reflection_1.isTypedFunctionType)(ifaceStatement.memberTable.getSymbolType('eat'))).to.be.true;
235
+ (0, chai_1.expect)((0, reflection_1.isTypedFunctionType)(ifaceStatement.memberTable.getSymbolType('sleep'))).to.be.true;
236
+ });
237
+ it('adds fields to class statement member symbol table after building', () => {
238
+ let parser = Parser_1.Parser.parse(`
239
+ interface Animal
240
+ teethCount as integer
241
+ furType as string
242
+ hasWings as boolean
243
+ end interface
244
+ `, { mode: Parser_1.ParseMode.BrighterScript });
245
+ let ifaceStatement = parser.statements[0];
246
+ ifaceStatement.buildSymbolTable();
247
+ (0, chai_1.expect)(ifaceStatement.memberTable).to.exist;
248
+ (0, chai_1.expect)((0, reflection_1.isIntegerType)(ifaceStatement.memberTable.getSymbolType('teethCount'))).to.be.true;
249
+ (0, chai_1.expect)((0, reflection_1.isStringType)(ifaceStatement.memberTable.getSymbolType('furType'))).to.be.true;
250
+ (0, chai_1.expect)((0, reflection_1.isBooleanType)(ifaceStatement.memberTable.getSymbolType('hasWings'))).to.be.true;
251
+ });
252
+ });
72
253
  });
73
254
  //# sourceMappingURL=InterfaceStatement.spec.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"InterfaceStatement.spec.js","sourceRoot":"","sources":["../../../../src/parser/tests/statement/InterfaceStatement.spec.ts"],"names":[],"mappings":";;AAAA,gEAAqF;AACrF,wCAAqD;AACrD,8CAA2C;AAE3C,QAAQ,CAAC,oBAAoB,EAAE,GAAG,EAAE;IAChC,MAAM,OAAO,GAAG,IAAA,sBAAC,EAAA,GAAG,OAAO,CAAC,GAAG,EAAE,eAAe,CAAC;IACjD,IAAI,OAAgB,CAAC;IACrB,UAAU,CAAC,GAAG,EAAE;QACZ,OAAO,GAAG,IAAI,iBAAO,CAAC;YAClB,OAAO,EAAE,OAAO;SACnB,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,MAAM,cAAc,GAAG,IAAA,oCAAiB,EAAC,GAAG,EAAE,CAAC,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;IAEnE,EAAE,CAAC,2CAA2C,EAAE,GAAG,EAAE;QACjD,cAAc,CAAC;;;;;;;;;;SAUd,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;IAC9C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yCAAyC,EAAE,GAAG,EAAE;QAC/C,cAAc,CAAC;;;;;;;;;;SAUd,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;IAC9C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mBAAmB,EAAE,GAAG,EAAE;QACzB,cAAc,CAAC;;;;;SAKd,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;IAC9C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sBAAsB,EAAE,GAAG,EAAE;QAC5B,cAAc,CAAC;;;;;;;;SAQd,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;IAC9C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gDAAgD,EAAE,GAAG,EAAE;QACtD,OAAO,CAAC,OAAO,CAAC,sBAAsB,EAAE;;;;;;;SAOvC,CAAC,CAAC;QACH,OAAO,CAAC,QAAQ,EAAE,CAAC;QACnB,IAAA,wCAAqB,EAAC,OAAO,CAAC,CAAC;IACnC,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"InterfaceStatement.spec.js","sourceRoot":"","sources":["../../../../src/parser/tests/statement/InterfaceStatement.spec.ts"],"names":[],"mappings":";;AAAA,gEAAwG;AACxG,wCAAqD;AACrD,8CAA2C;AAC3C,+BAA8B;AAC9B,6DAA+G;AAC/G,oEAAiE;AACjE,gDAA6C;AAC7C,yCAAiD;AACjD,+CAAqE;AAErE,QAAQ,CAAC,oBAAoB,EAAE,GAAG,EAAE;IAChC,MAAM,OAAO,GAAG,IAAA,sBAAC,EAAA,GAAG,OAAO,CAAC,GAAG,EAAE,eAAe,CAAC;IACjD,IAAI,OAAgB,CAAC;IACrB,UAAU,CAAC,GAAG,EAAE;QACZ,OAAO,GAAG,IAAI,iBAAO,CAAC;YAClB,OAAO,EAAE,OAAO;SACnB,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,MAAM,cAAc,GAAG,IAAA,oCAAiB,EAAC,GAAG,EAAE,CAAC,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;IAEnE,EAAE,CAAC,2CAA2C,EAAE,GAAG,EAAE;QACjD,cAAc,CAAC;;;;;;;;;;SAUd,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;IAC9C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yCAAyC,EAAE,GAAG,EAAE;QAC/C,cAAc,CAAC;;;;;;;;;;SAUd,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;IAC9C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mBAAmB,EAAE,GAAG,EAAE;QACzB,cAAc,CAAC;;;;;SAKd,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;IAC9C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sBAAsB,EAAE,GAAG,EAAE;QAC5B,cAAc,CAAC;;;;;;;;SAQd,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;IAC9C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gDAAgD,EAAE,GAAG,EAAE;QACtD,OAAO,CAAC,OAAO,CAAC,sBAAsB,EAAE;;;;;;;SAOvC,CAAC,CAAC;QACH,OAAO,CAAC,QAAQ,EAAE,CAAC;QACnB,IAAA,wCAAqB,EAAC,OAAO,CAAC,CAAC;IACnC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kDAAkD,EAAE,GAAG,EAAE;;QACxD,IAAI,EAAE,MAAM,EAAE,GAAG,aAAK,CAAC,IAAI,CAAC;;;aAGvB,CAAC,CAAC;QACP,IAAI,EAAE,WAAW,EAAE,GAAG,eAAM,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,kBAAS,CAAC,YAAY,EAAE,CAAC,CAAC;QAC7E,IAAA,aAAM,EAAC,MAAA,WAAW,CAAC,CAAC,CAAC,0CAAE,IAAI,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,uCAAkB,CAAC,+BAA+B,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;IACvG,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wBAAwB,EAAE,GAAG,EAAE;QAC9B,IAAI,EAAE,MAAM,EAAE,GAAG,aAAK,CAAC,IAAI,CAAC;;;aAGvB,CAAC,CAAC;QACP,IAAI,EAAE,UAAU,EAAE,WAAW,EAAE,GAAG,eAAM,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,kBAAS,CAAC,cAAc,EAAE,CAAC,CAAC;QAC3F,IAAA,wCAAqB,EAAC,WAAW,CAAC,CAAC;QACnC,IAAA,aAAM,EAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,8BAAkB,CAAC,CAAC;IACzD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8BAA8B,EAAE,GAAG,EAAE;QACpC,IAAI,EAAE,MAAM,EAAE,GAAG,aAAK,CAAC,IAAI,CAAC;;;;;aAKvB,CAAC,CAAC;QACP,IAAI,EAAE,UAAU,EAAE,WAAW,EAAE,GAAG,eAAM,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,kBAAS,CAAC,cAAc,EAAE,CAAC,CAAC;QAC3F,IAAA,wCAAqB,EAAC,WAAW,CAAC,CAAC;QACnC,IAAA,aAAM,EAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,8BAAkB,CAAC,CAAC;IACzD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+BAA+B,EAAE,GAAG,EAAE;QACrC,IAAI,EAAE,MAAM,EAAE,GAAG,aAAK,CAAC,IAAI,CAAC;;;;;aAKvB,CAAC,CAAC;QACP,IAAI,EAAE,UAAU,EAAE,WAAW,EAAE,GAAG,eAAM,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,kBAAS,CAAC,cAAc,EAAE,CAAC,CAAC;QAC3F,IAAA,wCAAqB,EAAC,WAAW,CAAC,CAAC;QACnC,IAAA,aAAM,EAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,8BAAkB,CAAC,CAAC;IACzD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yCAAyC,EAAE,GAAG,EAAE;QAC/C,IAAI,EAAE,MAAM,EAAE,GAAG,aAAK,CAAC,IAAI,CAAC;;;;;;;aAOvB,CAAC,CAAC;QACP,IAAI,EAAE,UAAU,EAAE,WAAW,EAAE,GAAG,eAAM,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,kBAAS,CAAC,cAAc,EAAE,CAAC,CAAC;QAC3F,IAAA,wCAAqB,EAAC,WAAW,CAAC,CAAC;QACnC,IAAA,aAAM,EAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,0BAAc,CAAC,CAAC;QACjD,IAAA,aAAM,EAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,8BAAkB,CAAC,CAAC;IACzD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0CAA0C,EAAE,GAAG,EAAE;QAChD,IAAI,EAAE,MAAM,EAAE,GAAG,aAAK,CAAC,IAAI,CAAC;;;;;;;;aAQvB,CAAC,CAAC;QACP,IAAI,EAAE,UAAU,EAAE,WAAW,EAAE,GAAG,eAAM,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,kBAAS,CAAC,cAAc,EAAE,CAAC,CAAC;QAC3F,IAAA,wCAAqB,EAAC,WAAW,CAAC,CAAC;QACnC,IAAA,aAAM,EAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,8BAAkB,CAAC,CAAC;QACrD,IAAA,aAAM,EAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,0BAAc,CAAC,CAAC;IACrD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oCAAoC,EAAE,GAAG,EAAE;QAC1C,IAAI,EAAE,MAAM,EAAE,GAAG,aAAK,CAAC,IAAI,CAAC;;;;;;;;;;;;aAYvB,CAAC,CAAC;QACP,IAAI,EAAE,UAAU,EAAE,WAAW,EAAE,GAAG,eAAM,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,kBAAS,CAAC,cAAc,EAAE,CAAC,CAAC;QAC3F,IAAA,wCAAqB,EAAC,WAAW,CAAC,CAAC;QACnC,IAAA,aAAM,EAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,8BAAkB,CAAC,CAAC;QACrD,IAAA,aAAM,EAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,8BAAkB,CAAC,CAAC;QACrD,IAAA,aAAM,EAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,8BAAkB,CAAC,CAAC;IACzD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sDAAsD,EAAE,GAAG,EAAE;QAC5D,IAAI,EAAE,MAAM,EAAE,GAAG,aAAK,CAAC,IAAI,CAAC;;;;;aAKvB,CAAC,CAAC;QACP,IAAI,EAAE,UAAU,EAAE,GAAG,eAAM,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,kBAAS,CAAC,cAAc,EAAE,CAAC,CAAC;QAC9E,IAAI,SAAS,GAAG,UAAU,CAAC,CAAC,CAAuB,CAAC;QACpD,IAAA,aAAM,EAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC;QACtC,IAAA,aAAM,EAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAC3D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gCAAgC,EAAE,GAAG,EAAE;QACtC,IAAI,EAAE,MAAM,EAAE,GAAG,aAAK,CAAC,IAAI,CAAC;;;aAGvB,CAAC,CAAC;QACP,IAAI,EAAE,UAAU,EAAE,WAAW,EAAE,GAAG,eAAM,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,kBAAS,CAAC,cAAc,EAAE,CAAC,CAAC;QAC3F,IAAA,oCAAiB,EAAC,WAAW,EAAE,CAAC,uCAAkB,CAAC,8BAA8B,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;QACjG,IAAA,aAAM,EAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,8BAAkB,CAAC,CAAC;IACzD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6BAA6B,EAAE,GAAG,EAAE;QACnC,IAAI,EAAE,MAAM,EAAE,GAAG,aAAK,CAAC,IAAI,CAAC;;aAEvB,CAAC,CAAC;QACP,IAAI,EAAE,UAAU,EAAE,WAAW,EAAE,GAAG,eAAM,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,kBAAS,CAAC,cAAc,EAAE,CAAC,CAAC;QAC3F,IAAA,oCAAiB,EAAC,WAAW,EAAE,CAAC,uCAAkB,CAAC,8BAA8B,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;QACjG,IAAA,aAAM,EAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,8BAAkB,CAAC,CAAC;IACzD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qCAAqC,EAAE,GAAG,EAAE;QAC3C,IAAI,EAAE,MAAM,EAAE,GAAG,aAAK,CAAC,IAAI,CAAC;;;;;;;;;aASvB,CAAC,CAAC;QACP,IAAI,EAAE,UAAU,EAAE,WAAW,EAAE,GAAG,eAAM,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,kBAAS,CAAC,cAAc,EAAE,CAAC,CAAC;QAC3F,IAAA,wCAAqB,EAAC,WAAW,CAAC,CAAC;QACnC,IAAA,aAAM,EAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,8BAAkB,CAAC,CAAC;QACrD,IAAA,aAAM,EAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,8BAAkB,CAAC,CAAC;IACzD,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,cAAc,EAAE,GAAG,EAAE;QAE1B,EAAE,CAAC,6CAA6C,EAAE,GAAG,EAAE;YACnD,IAAI,MAAM,GAAG,eAAM,CAAC,KAAK,CAAC;;;;;aAKzB,EAAE,EAAE,IAAI,EAAE,kBAAS,CAAC,cAAc,EAAE,CAAC,CAAC;YAEvC,IAAA,aAAM,EAAC,MAAM,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC;YACpC,IAAA,aAAM,EAAC,MAAM,CAAC,WAAW,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,SAAS,CAAC;YAChE,IAAA,aAAM,EAAC,MAAM,CAAC,WAAW,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,SAAS,CAAC;QACtE,CAAC,CAAC,CAAC;QAGH,EAAE,CAAC,qEAAqE,EAAE,GAAG,EAAE;YAC3E,IAAI,MAAM,GAAG,eAAM,CAAC,KAAK,CAAC;;;;;aAKzB,EAAE,EAAE,IAAI,EAAE,kBAAS,CAAC,cAAc,EAAE,CAAC,CAAC;YACvC,IAAI,cAAc,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC,CAAuB,CAAC;YAChE,cAAc,CAAC,gBAAgB,EAAE,CAAC;YAClC,IAAA,aAAM,EAAC,cAAc,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC;YAC5C,IAAA,aAAM,EAAC,IAAA,gCAAmB,EAAC,cAAc,CAAC,WAAW,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;YACxF,IAAA,aAAM,EAAC,IAAA,gCAAmB,EAAC,cAAc,CAAC,WAAW,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;QAC9F,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,mEAAmE,EAAE,GAAG,EAAE;YACzE,IAAI,MAAM,GAAG,eAAM,CAAC,KAAK,CAAC;;;;;;aAMzB,EAAE,EAAE,IAAI,EAAE,kBAAS,CAAC,cAAc,EAAE,CAAC,CAAC;YACvC,IAAI,cAAc,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC,CAAuB,CAAC;YAChE,cAAc,CAAC,gBAAgB,EAAE,CAAC;YAClC,IAAA,aAAM,EAAC,cAAc,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC;YAC5C,IAAA,aAAM,EAAC,IAAA,0BAAa,EAAC,cAAc,CAAC,WAAW,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;YACzF,IAAA,aAAM,EAAC,IAAA,yBAAY,EAAC,cAAc,CAAC,WAAW,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;YACrF,IAAA,aAAM,EAAC,IAAA,0BAAa,EAAC,cAAc,CAAC,WAAW,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;QAC3F,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
@@ -18,12 +18,14 @@ describe('parser try/catch', () => {
18
18
  (0, chai_1.expect)((_a = parser.diagnostics[0]) === null || _a === void 0 ? void 0 : _a.message).not.to.exist;
19
19
  const stmt = parser.references.functionExpressions[0].body.statements[0];
20
20
  (0, chai_1.expect)(stmt).to.be.instanceof(Statement_1.TryCatchStatement);
21
- (0, chai_1.expect)((_b = stmt.tryToken) === null || _b === void 0 ? void 0 : _b.text).to.eql('try');
21
+ (0, chai_1.expect)((_b = stmt.tokens.try) === null || _b === void 0 ? void 0 : _b.text).to.eql('try');
22
22
  (0, chai_1.expect)(stmt.tryBranch).to.exist.and.ownProperty('statements').to.be.lengthOf(1);
23
- (0, chai_1.expect)((_c = stmt.catchToken) === null || _c === void 0 ? void 0 : _c.text).to.eql('catch');
24
- (0, chai_1.expect)(stmt.exceptionVariable.text).to.eql('e');
25
- (0, chai_1.expect)(stmt.catchBranch).to.exist.and.ownProperty('statements').to.be.lengthOf(1);
26
- (0, chai_1.expect)((_d = stmt.endTryToken) === null || _d === void 0 ? void 0 : _d.text).to.eql('end try');
23
+ (0, chai_1.expect)(stmt.catchStatement).to.exist;
24
+ const cstmt = stmt.catchStatement;
25
+ (0, chai_1.expect)((_c = cstmt.tokens.catch) === null || _c === void 0 ? void 0 : _c.text).to.eql('catch');
26
+ (0, chai_1.expect)(cstmt.exceptionVariable.text).to.eql('e');
27
+ (0, chai_1.expect)(cstmt.catchBranch).to.exist.and.ownProperty('statements').to.be.lengthOf(1);
28
+ (0, chai_1.expect)((_d = stmt.tokens.endTry) === null || _d === void 0 ? void 0 : _d.text).to.eql('end try');
27
29
  });
28
30
  it('supports various configurations of try-catch', () => {
29
31
  function expectNoParseErrors(text) {
@@ -1 +1 @@
1
- {"version":3,"file":"TryCatch.spec.js","sourceRoot":"","sources":["../../../../src/parser/tests/statement/TryCatch.spec.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TryCatch.spec.js","sourceRoot":"","sources":["../../../../src/parser/tests/statement/TryCatch.spec.ts"],"names":[],"mappings":"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"}
@@ -9,7 +9,10 @@ class ArrayType {
9
9
  this.innerTypes = this.getUniqueTypesByAssignability(innerTypes);
10
10
  }
11
11
  isAssignableTo(targetType, context) {
12
- if ((0, reflection_1.isArrayType)(targetType)) {
12
+ if ((0, reflection_1.isObjectType)(targetType)) {
13
+ return true;
14
+ }
15
+ else if ((0, reflection_1.isArrayType)(targetType)) {
13
16
  //this array type is assignable to the target IF
14
17
  //1. all of the types in this array are present in the target
15
18
  outer: for (let innerType of this.innerTypes) {
@@ -1 +1 @@
1
- {"version":3,"file":"ArrayType.js","sourceRoot":"","sources":["../../src/types/ArrayType.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ArrayType.js","sourceRoot":"","sources":["../../src/types/ArrayType.ts"],"names":[],"mappings":"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"}
@@ -10,10 +10,12 @@ const IntegerType_1 = require("./IntegerType");
10
10
  const FloatType_1 = require("./FloatType");
11
11
  const Program_1 = require("../Program");
12
12
  const vscode_languageserver_protocol_1 = require("vscode-languageserver-protocol");
13
+ const ObjectType_1 = require("./ObjectType");
13
14
  describe('ArrayType', () => {
14
- it('is equivalent to array types', () => {
15
+ it('is assignable to correct types', () => {
15
16
  (0, chai_1.expect)(new ArrayType_1.ArrayType().isAssignableTo(new ArrayType_1.ArrayType())).to.be.true;
16
17
  (0, chai_1.expect)(new ArrayType_1.ArrayType().isAssignableTo(new DynamicType_1.DynamicType())).to.be.true;
18
+ (0, chai_1.expect)(new ArrayType_1.ArrayType().isAssignableTo(new ObjectType_1.ObjectType())).to.be.true;
17
19
  });
18
20
  it('catches arrays containing different inner types', () => {
19
21
  (0, chai_1.expect)(new ArrayType_1.ArrayType(new BooleanType_1.BooleanType()).isAssignableTo(new ArrayType_1.ArrayType(new BooleanType_1.BooleanType()))).to.be.true;
@@ -1 +1 @@
1
- {"version":3,"file":"ArrayType.spec.js","sourceRoot":"","sources":["../../src/types/ArrayType.spec.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ArrayType.spec.js","sourceRoot":"","sources":["../../src/types/ArrayType.spec.ts"],"names":[],"mappings":"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"}
@@ -8,7 +8,8 @@ class BooleanType {
8
8
  }
9
9
  isAssignableTo(targetType) {
10
10
  return ((0, reflection_1.isBooleanType)(targetType) ||
11
- (0, reflection_1.isDynamicType)(targetType));
11
+ (0, reflection_1.isDynamicType)(targetType) ||
12
+ (0, reflection_1.isObjectType)(targetType));
12
13
  }
13
14
  isConvertibleTo(targetType) {
14
15
  return this.isAssignableTo(targetType);
@@ -1 +1 @@
1
- {"version":3,"file":"BooleanType.js","sourceRoot":"","sources":["../../src/types/BooleanType.ts"],"names":[],"mappings":";;;AAAA,uDAAsE;AAGtE,MAAa,WAAW;IACpB,YACW,QAAiB;QAAjB,aAAQ,GAAR,QAAQ,CAAS;IACxB,CAAC;IAEE,cAAc,CAAC,UAAmB;QACrC,OAAO,CACH,IAAA,0BAAa,EAAC,UAAU,CAAC;YACzB,IAAA,0BAAa,EAAC,UAAU,CAAC,CAC5B,CAAC;IACN,CAAC;IAEM,eAAe,CAAC,UAAmB;QACtC,OAAO,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;IAC3C,CAAC;IAEM,QAAQ;;QACX,OAAO,MAAA,IAAI,CAAC,QAAQ,mCAAI,SAAS,CAAC;IACtC,CAAC;IAEM,YAAY;QACf,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC;IAC3B,CAAC;IAEM,MAAM,CAAC,UAAmB;QAC7B,OAAO,IAAA,0BAAa,EAAC,UAAU,CAAC,CAAC;IACrC,CAAC;CACJ;AA3BD,kCA2BC"}
1
+ {"version":3,"file":"BooleanType.js","sourceRoot":"","sources":["../../src/types/BooleanType.ts"],"names":[],"mappings":";;;AAAA,uDAAoF;AAGpF,MAAa,WAAW;IACpB,YACW,QAAiB;QAAjB,aAAQ,GAAR,QAAQ,CAAS;IACxB,CAAC;IAEE,cAAc,CAAC,UAAmB;QACrC,OAAO,CACH,IAAA,0BAAa,EAAC,UAAU,CAAC;YACzB,IAAA,0BAAa,EAAC,UAAU,CAAC;YACzB,IAAA,yBAAY,EAAC,UAAU,CAAC,CAC3B,CAAC;IACN,CAAC;IAEM,eAAe,CAAC,UAAmB;QACtC,OAAO,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;IAC3C,CAAC;IAEM,QAAQ;;QACX,OAAO,MAAA,IAAI,CAAC,QAAQ,mCAAI,SAAS,CAAC;IACtC,CAAC;IAEM,YAAY;QACf,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC;IAC3B,CAAC;IAEM,MAAM,CAAC,UAAmB;QAC7B,OAAO,IAAA,0BAAa,EAAC,UAAU,CAAC,CAAC;IACrC,CAAC;CACJ;AA5BD,kCA4BC"}
@@ -3,10 +3,12 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const chai_1 = require("chai");
4
4
  const BooleanType_1 = require("./BooleanType");
5
5
  const DynamicType_1 = require("./DynamicType");
6
+ const ObjectType_1 = require("./ObjectType");
6
7
  describe('BooleanType', () => {
7
- it('is equivalent to boolean types', () => {
8
+ it('is assignable to various types', () => {
8
9
  (0, chai_1.expect)(new BooleanType_1.BooleanType().isAssignableTo(new BooleanType_1.BooleanType())).to.be.true;
9
10
  (0, chai_1.expect)(new BooleanType_1.BooleanType().isAssignableTo(new DynamicType_1.DynamicType())).to.be.true;
11
+ (0, chai_1.expect)(new BooleanType_1.BooleanType().isAssignableTo(new ObjectType_1.ObjectType())).to.be.true;
10
12
  });
11
13
  });
12
14
  //# sourceMappingURL=BooleanType.spec.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"BooleanType.spec.js","sourceRoot":"","sources":["../../src/types/BooleanType.spec.ts"],"names":[],"mappings":";;AAAA,+BAA8B;AAE9B,+CAA4C;AAC5C,+CAA4C;AAE5C,QAAQ,CAAC,aAAa,EAAE,GAAG,EAAE;IACzB,EAAE,CAAC,gCAAgC,EAAE,GAAG,EAAE;QACtC,IAAA,aAAM,EAAC,IAAI,yBAAW,EAAE,CAAC,cAAc,CAAC,IAAI,yBAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;QACvE,IAAA,aAAM,EAAC,IAAI,yBAAW,EAAE,CAAC,cAAc,CAAC,IAAI,yBAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;IAC3E,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"BooleanType.spec.js","sourceRoot":"","sources":["../../src/types/BooleanType.spec.ts"],"names":[],"mappings":";;AAAA,+BAA8B;AAC9B,+CAA4C;AAC5C,+CAA4C;AAC5C,6CAA0C;AAE1C,QAAQ,CAAC,aAAa,EAAE,GAAG,EAAE;IACzB,EAAE,CAAC,gCAAgC,EAAE,GAAG,EAAE;QACtC,IAAA,aAAM,EAAC,IAAI,yBAAW,EAAE,CAAC,cAAc,CAAC,IAAI,yBAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;QACvE,IAAA,aAAM,EAAC,IAAI,yBAAW,EAAE,CAAC,cAAc,CAAC,IAAI,yBAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;QACvE,IAAA,aAAM,EAAC,IAAI,yBAAW,EAAE,CAAC,cAAc,CAAC,IAAI,uBAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;IAC1E,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
@@ -19,3 +19,4 @@ export interface TypeContext {
19
19
  position?: Position;
20
20
  }
21
21
  export declare function getTypeFromContext(type: BscType, context?: TypeContext): BscType;
22
+ export declare function checkAssignabilityToInterface(sourceType: BscType, targetType: BscType, context?: TypeContext): any;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getTypeFromContext = void 0;
3
+ exports.checkAssignabilityToInterface = exports.getTypeFromContext = void 0;
4
4
  const reflection_1 = require("../astUtils/reflection");
5
5
  function getTypeFromContext(type, context) {
6
6
  if ((0, reflection_1.isLazyType)(type)) {
@@ -9,4 +9,19 @@ function getTypeFromContext(type, context) {
9
9
  return type;
10
10
  }
11
11
  exports.getTypeFromContext = getTypeFromContext;
12
+ function checkAssignabilityToInterface(sourceType, targetType, context) {
13
+ var _a;
14
+ if (!sourceType.memberTable || !targetType.memberTable || !(0, reflection_1.isInterfaceType)(targetType)) {
15
+ return false;
16
+ }
17
+ let isSuperSet = true;
18
+ const targetSymbols = (_a = targetType.memberTable) === null || _a === void 0 ? void 0 : _a.getAllSymbols();
19
+ for (const targetSymbol of targetSymbols) {
20
+ // TODO TYPES: this ignores union types
21
+ const mySymbolsWithName = sourceType.memberTable.getSymbol(targetSymbol.name);
22
+ isSuperSet = isSuperSet && mySymbolsWithName && mySymbolsWithName.length > 0 && mySymbolsWithName[0].type.isAssignableTo(targetSymbol.type, context);
23
+ }
24
+ return isSuperSet;
25
+ }
26
+ exports.checkAssignabilityToInterface = checkAssignabilityToInterface;
12
27
  //# sourceMappingURL=BscType.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"BscType.js","sourceRoot":"","sources":["../../src/types/BscType.ts"],"names":[],"mappings":";;;AACA,uDAAoD;AAyBpD,SAAgB,kBAAkB,CAAC,IAAa,EAAE,OAAqB;IACnE,IAAI,IAAA,uBAAU,EAAC,IAAI,CAAC,EAAE;QAClB,OAAO,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC;KAC3C;IACD,OAAO,IAAI,CAAC;AAChB,CAAC;AALD,gDAKC"}
1
+ {"version":3,"file":"BscType.js","sourceRoot":"","sources":["../../src/types/BscType.ts"],"names":[],"mappings":";;;AACA,uDAAqE;AAyBrE,SAAgB,kBAAkB,CAAC,IAAa,EAAE,OAAqB;IACnE,IAAI,IAAA,uBAAU,EAAC,IAAI,CAAC,EAAE;QAClB,OAAO,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC;KAC3C;IACD,OAAO,IAAI,CAAC;AAChB,CAAC;AALD,gDAKC;AAED,SAAgB,6BAA6B,CAAC,UAAmB,EAAE,UAAmB,EAAE,OAAqB;;IACzG,IAAI,CAAC,UAAU,CAAC,WAAW,IAAI,CAAC,UAAU,CAAC,WAAW,IAAI,CAAC,IAAA,4BAAe,EAAC,UAAU,CAAC,EAAE;QACpF,OAAO,KAAK,CAAC;KAChB;IACD,IAAI,UAAU,GAAG,IAAI,CAAC;IACtB,MAAM,aAAa,GAAG,MAAA,UAAU,CAAC,WAAW,0CAAE,aAAa,EAAE,CAAC;IAC9D,KAAK,MAAM,YAAY,IAAI,aAAa,EAAE;QACtC,uCAAuC;QAEvC,MAAM,iBAAiB,GAAG,UAAU,CAAC,WAAW,CAAC,SAAS,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;QAC9E,UAAU,GAAG,UAAU,IAAI,iBAAiB,IAAI,iBAAiB,CAAC,MAAM,GAAG,CAAC,IAAI,iBAAiB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;KACxJ;IACD,OAAO,UAAU,CAAC;AACtB,CAAC;AAbD,sEAaC"}
@@ -2,6 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.CustomType = void 0;
4
4
  const reflection_1 = require("../astUtils/reflection");
5
+ const BscType_1 = require("./BscType");
5
6
  class CustomType {
6
7
  constructor(name, memberTable = null) {
7
8
  this.name = name;
@@ -15,10 +16,19 @@ class CustomType {
15
16
  }
16
17
  isAssignableTo(targetType, context) {
17
18
  var _a;
19
+ if ((0, reflection_1.isObjectType)(targetType)) {
20
+ return true;
21
+ }
18
22
  const ancestorTypes = (_a = context === null || context === void 0 ? void 0 : context.scope) === null || _a === void 0 ? void 0 : _a.getAncestorTypeListByContext(this, context);
19
23
  if (ancestorTypes === null || ancestorTypes === void 0 ? void 0 : ancestorTypes.find(ancestorType => targetType.equals(ancestorType, context))) {
20
24
  return true;
21
25
  }
26
+ if (this.memberTable && targetType.memberTable) {
27
+ // both have symbol tables, so check if the target is an interface and has all the members of the target
28
+ if ((0, BscType_1.checkAssignabilityToInterface)(this, targetType, context)) {
29
+ return true;
30
+ }
31
+ }
22
32
  return (this.equals(targetType, context) ||
23
33
  (0, reflection_1.isObjectType)(targetType) ||
24
34
  (0, reflection_1.isDynamicType)(targetType));
@@ -1 +1 @@
1
- {"version":3,"file":"CustomType.js","sourceRoot":"","sources":["../../src/types/CustomType.ts"],"names":[],"mappings":";;;AAAA,uDAAmF;AAInF,MAAa,UAAU;IAEnB,YAAmB,IAAY,EAAS,cAA2B,IAAI;QAApD,SAAI,GAAJ,IAAI,CAAQ;QAAS,gBAAW,GAAX,WAAW,CAAoB;IACvE,CAAC;IAEM,QAAQ;QACX,OAAO,IAAI,CAAC,IAAI,CAAC;IACrB,CAAC;IAEM,YAAY;QACf,OAAO,QAAQ,CAAC;IACpB,CAAC;IAEM,cAAc,CAAC,UAAmB,EAAE,OAAqB;;QAC5D,MAAM,aAAa,GAAG,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,KAAK,0CAAE,4BAA4B,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAClF,IAAI,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC,EAAE;YAC/E,OAAO,IAAI,CAAC;SACf;QACD,OAAO,CACH,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,OAAO,CAAC;YAChC,IAAA,yBAAY,EAAC,UAAU,CAAC;YACxB,IAAA,0BAAa,EAAC,UAAU,CAAC,CAC5B,CAAC;IACN,CAAC;IAEM,eAAe,CAAC,UAAmB,EAAE,OAAqB;QAC7D,OAAO,IAAI,CAAC,cAAc,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IACpD,CAAC;IAEM,MAAM,CAAC,UAAmB,EAAE,OAAqB;QACpD,OAAO,IAAA,yBAAY,EAAC,UAAU,CAAC,IAAI,IAAI,CAAC,QAAQ,EAAE,MAAK,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,QAAQ,EAAE,CAAA,CAAC;IAClF,CAAC;CACJ;AAhCD,gCAgCC"}
1
+ {"version":3,"file":"CustomType.js","sourceRoot":"","sources":["../../src/types/CustomType.ts"],"names":[],"mappings":";;;AAAA,uDAAmF;AAGnF,uCAA0D;AAE1D,MAAa,UAAU;IAEnB,YAAmB,IAAY,EAAS,cAA2B,IAAI;QAApD,SAAI,GAAJ,IAAI,CAAQ;QAAS,gBAAW,GAAX,WAAW,CAAoB;IACvE,CAAC;IAEM,QAAQ;QACX,OAAO,IAAI,CAAC,IAAI,CAAC;IACrB,CAAC;IAEM,YAAY;QACf,OAAO,QAAQ,CAAC;IACpB,CAAC;IAEM,cAAc,CAAC,UAAmB,EAAE,OAAqB;;QAC5D,IAAI,IAAA,yBAAY,EAAC,UAAU,CAAC,EAAE;YAC1B,OAAO,IAAI,CAAC;SACf;QACD,MAAM,aAAa,GAAG,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,KAAK,0CAAE,4BAA4B,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAClF,IAAI,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC,EAAE;YAC/E,OAAO,IAAI,CAAC;SACf;QACD,IAAI,IAAI,CAAC,WAAW,IAAI,UAAU,CAAC,WAAW,EAAE;YAC5C,wGAAwG;YACxG,IAAI,IAAA,uCAA6B,EAAC,IAAI,EAAE,UAAU,EAAE,OAAO,CAAC,EAAE;gBAC1D,OAAO,IAAI,CAAC;aACf;SACJ;QACD,OAAO,CACH,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,OAAO,CAAC;YAChC,IAAA,yBAAY,EAAC,UAAU,CAAC;YACxB,IAAA,0BAAa,EAAC,UAAU,CAAC,CAC5B,CAAC;IACN,CAAC;IAEM,eAAe,CAAC,UAAmB,EAAE,OAAqB;QAC7D,OAAO,IAAI,CAAC,cAAc,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IACpD,CAAC;IAEM,MAAM,CAAC,UAAmB,EAAE,OAAqB;QACpD,OAAO,IAAA,yBAAY,EAAC,UAAU,CAAC,IAAI,IAAI,CAAC,QAAQ,EAAE,MAAK,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,QAAQ,EAAE,CAAA,CAAC;IAClF,CAAC;CACJ;AAzCD,gCAyCC"}
@@ -8,7 +8,8 @@ class DoubleType {
8
8
  }
9
9
  isAssignableTo(targetType) {
10
10
  return ((0, reflection_1.isDoubleType)(targetType) ||
11
- (0, reflection_1.isDynamicType)(targetType));
11
+ (0, reflection_1.isDynamicType)(targetType) ||
12
+ (0, reflection_1.isObjectType)(targetType));
12
13
  }
13
14
  isConvertibleTo(targetType) {
14
15
  if ((0, reflection_1.isDynamicType)(targetType) ||
@@ -1 +1 @@
1
- {"version":3,"file":"DoubleType.js","sourceRoot":"","sources":["../../src/types/DoubleType.ts"],"names":[],"mappings":";;;AAAA,uDAAoH;AAGpH,MAAa,UAAU;IACnB,YACW,QAAiB;QAAjB,aAAQ,GAAR,QAAQ,CAAS;IACxB,CAAC;IAEE,cAAc,CAAC,UAAmB;QACrC,OAAO,CACH,IAAA,yBAAY,EAAC,UAAU,CAAC;YACxB,IAAA,0BAAa,EAAC,UAAU,CAAC,CAC5B,CAAC;IACN,CAAC;IAEM,eAAe,CAAC,UAAmB;QACtC,IACI,IAAA,0BAAa,EAAC,UAAU,CAAC;YACzB,IAAA,0BAAa,EAAC,UAAU,CAAC;YACzB,IAAA,wBAAW,EAAC,UAAU,CAAC;YACvB,IAAA,yBAAY,EAAC,UAAU,CAAC;YACxB,IAAA,8BAAiB,EAAC,UAAU,CAAC,EAC/B;YACE,OAAO,IAAI,CAAC;SACf;aAAM;YACH,OAAO,KAAK,CAAC;SAChB;IACL,CAAC;IACM,QAAQ;;QACX,OAAO,MAAA,IAAI,CAAC,QAAQ,mCAAI,QAAQ,CAAC;IACrC,CAAC;IAEM,YAAY;QACf,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC;IAC3B,CAAC;IAEM,MAAM,CAAC,UAAmB;QAC7B,OAAO,IAAI,CAAC,QAAQ,EAAE,MAAK,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,QAAQ,EAAE,CAAA,CAAC;IACtD,CAAC;CACJ;AApCD,gCAoCC"}
1
+ {"version":3,"file":"DoubleType.js","sourceRoot":"","sources":["../../src/types/DoubleType.ts"],"names":[],"mappings":";;;AAAA,uDAAkI;AAGlI,MAAa,UAAU;IACnB,YACW,QAAiB;QAAjB,aAAQ,GAAR,QAAQ,CAAS;IACxB,CAAC;IAEE,cAAc,CAAC,UAAmB;QACrC,OAAO,CACH,IAAA,yBAAY,EAAC,UAAU,CAAC;YACxB,IAAA,0BAAa,EAAC,UAAU,CAAC;YACzB,IAAA,yBAAY,EAAC,UAAU,CAAC,CAC3B,CAAC;IACN,CAAC;IAEM,eAAe,CAAC,UAAmB;QACtC,IACI,IAAA,0BAAa,EAAC,UAAU,CAAC;YACzB,IAAA,0BAAa,EAAC,UAAU,CAAC;YACzB,IAAA,wBAAW,EAAC,UAAU,CAAC;YACvB,IAAA,yBAAY,EAAC,UAAU,CAAC;YACxB,IAAA,8BAAiB,EAAC,UAAU,CAAC,EAC/B;YACE,OAAO,IAAI,CAAC;SACf;aAAM;YACH,OAAO,KAAK,CAAC;SAChB;IACL,CAAC;IACM,QAAQ;;QACX,OAAO,MAAA,IAAI,CAAC,QAAQ,mCAAI,QAAQ,CAAC;IACrC,CAAC;IAEM,YAAY;QACf,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC;IAC3B,CAAC;IAEM,MAAM,CAAC,UAAmB;QAC7B,OAAO,IAAI,CAAC,QAAQ,EAAE,MAAK,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,QAAQ,EAAE,CAAA,CAAC;IACtD,CAAC;CACJ;AArCD,gCAqCC"}
@@ -3,10 +3,12 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const chai_1 = require("chai");
4
4
  const DoubleType_1 = require("./DoubleType");
5
5
  const DynamicType_1 = require("./DynamicType");
6
+ const ObjectType_1 = require("./ObjectType");
6
7
  describe('DoubleType', () => {
7
- it('is equivalent to double types', () => {
8
+ it('is assignable to correct types', () => {
8
9
  (0, chai_1.expect)(new DoubleType_1.DoubleType().isAssignableTo(new DoubleType_1.DoubleType())).to.be.true;
9
10
  (0, chai_1.expect)(new DoubleType_1.DoubleType().isAssignableTo(new DynamicType_1.DynamicType())).to.be.true;
11
+ (0, chai_1.expect)(new DoubleType_1.DoubleType().isAssignableTo(new ObjectType_1.ObjectType())).to.be.true;
10
12
  });
11
13
  });
12
14
  //# sourceMappingURL=DoubleType.spec.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"DoubleType.spec.js","sourceRoot":"","sources":["../../src/types/DoubleType.spec.ts"],"names":[],"mappings":";;AAAA,+BAA8B;AAE9B,6CAA0C;AAC1C,+CAA4C;AAE5C,QAAQ,CAAC,YAAY,EAAE,GAAG,EAAE;IACxB,EAAE,CAAC,+BAA+B,EAAE,GAAG,EAAE;QACrC,IAAA,aAAM,EAAC,IAAI,uBAAU,EAAE,CAAC,cAAc,CAAC,IAAI,uBAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;QACrE,IAAA,aAAM,EAAC,IAAI,uBAAU,EAAE,CAAC,cAAc,CAAC,IAAI,yBAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;IAC1E,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"DoubleType.spec.js","sourceRoot":"","sources":["../../src/types/DoubleType.spec.ts"],"names":[],"mappings":";;AAAA,+BAA8B;AAC9B,6CAA0C;AAC1C,+CAA4C;AAC5C,6CAA0C;AAE1C,QAAQ,CAAC,YAAY,EAAE,GAAG,EAAE;IACxB,EAAE,CAAC,gCAAgC,EAAE,GAAG,EAAE;QACtC,IAAA,aAAM,EAAC,IAAI,uBAAU,EAAE,CAAC,cAAc,CAAC,IAAI,uBAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;QACrE,IAAA,aAAM,EAAC,IAAI,uBAAU,EAAE,CAAC,cAAc,CAAC,IAAI,yBAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;QACtE,IAAA,aAAM,EAAC,IAAI,uBAAU,EAAE,CAAC,cAAc,CAAC,IAAI,uBAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;IACzE,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
@@ -8,7 +8,8 @@ class FloatType {
8
8
  }
9
9
  isAssignableTo(targetType) {
10
10
  return ((0, reflection_1.isFloatType)(targetType) ||
11
- (0, reflection_1.isDynamicType)(targetType));
11
+ (0, reflection_1.isDynamicType)(targetType) ||
12
+ (0, reflection_1.isObjectType)(targetType));
12
13
  }
13
14
  isConvertibleTo(targetType) {
14
15
  if ((0, reflection_1.isDynamicType)(targetType) ||
@@ -1 +1 @@
1
- {"version":3,"file":"FloatType.js","sourceRoot":"","sources":["../../src/types/FloatType.ts"],"names":[],"mappings":";;;AAAA,uDAAoH;AAGpH,MAAa,SAAS;IAClB,YACW,QAAiB;QAAjB,aAAQ,GAAR,QAAQ,CAAS;IACxB,CAAC;IAEE,cAAc,CAAC,UAAmB;QACrC,OAAO,CACH,IAAA,wBAAW,EAAC,UAAU,CAAC;YACvB,IAAA,0BAAa,EAAC,UAAU,CAAC,CAE5B,CAAC;IACN,CAAC;IAEM,eAAe,CAAC,UAAmB;QACtC,IACI,IAAA,0BAAa,EAAC,UAAU,CAAC;YACzB,IAAA,0BAAa,EAAC,UAAU,CAAC;YACzB,IAAA,wBAAW,EAAC,UAAU,CAAC;YACvB,IAAA,yBAAY,EAAC,UAAU,CAAC;YACxB,IAAA,8BAAiB,EAAC,UAAU,CAAC,EAC/B;YACE,OAAO,IAAI,CAAC;SACf;aAAM;YACH,OAAO,KAAK,CAAC;SAChB;IACL,CAAC;IAEM,QAAQ;;QACX,OAAO,MAAA,IAAI,CAAC,QAAQ,mCAAI,OAAO,CAAC;IACpC,CAAC;IAEM,YAAY;QACf,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC;IAC3B,CAAC;IAEM,MAAM,CAAC,UAAmB;QAC7B,OAAO,IAAI,CAAC,QAAQ,EAAE,MAAK,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,QAAQ,EAAE,CAAA,CAAC;IACtD,CAAC;CACJ;AAtCD,8BAsCC"}
1
+ {"version":3,"file":"FloatType.js","sourceRoot":"","sources":["../../src/types/FloatType.ts"],"names":[],"mappings":";;;AAAA,uDAAkI;AAGlI,MAAa,SAAS;IAClB,YACW,QAAiB;QAAjB,aAAQ,GAAR,QAAQ,CAAS;IACxB,CAAC;IAEE,cAAc,CAAC,UAAmB;QACrC,OAAO,CACH,IAAA,wBAAW,EAAC,UAAU,CAAC;YACvB,IAAA,0BAAa,EAAC,UAAU,CAAC;YACzB,IAAA,yBAAY,EAAC,UAAU,CAAC,CAC3B,CAAC;IACN,CAAC;IAEM,eAAe,CAAC,UAAmB;QACtC,IACI,IAAA,0BAAa,EAAC,UAAU,CAAC;YACzB,IAAA,0BAAa,EAAC,UAAU,CAAC;YACzB,IAAA,wBAAW,EAAC,UAAU,CAAC;YACvB,IAAA,yBAAY,EAAC,UAAU,CAAC;YACxB,IAAA,8BAAiB,EAAC,UAAU,CAAC,EAC/B;YACE,OAAO,IAAI,CAAC;SACf;aAAM;YACH,OAAO,KAAK,CAAC;SAChB;IACL,CAAC;IAEM,QAAQ;;QACX,OAAO,MAAA,IAAI,CAAC,QAAQ,mCAAI,OAAO,CAAC;IACpC,CAAC;IAEM,YAAY;QACf,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC;IAC3B,CAAC;IAEM,MAAM,CAAC,UAAmB;QAC7B,OAAO,IAAI,CAAC,QAAQ,EAAE,MAAK,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,QAAQ,EAAE,CAAA,CAAC;IACtD,CAAC;CACJ;AAtCD,8BAsCC"}
@@ -3,10 +3,12 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const chai_1 = require("chai");
4
4
  const DynamicType_1 = require("./DynamicType");
5
5
  const FloatType_1 = require("./FloatType");
6
+ const ObjectType_1 = require("./ObjectType");
6
7
  describe('FloatType', () => {
7
8
  it('is equivalent to double types', () => {
8
9
  (0, chai_1.expect)(new FloatType_1.FloatType().isAssignableTo(new FloatType_1.FloatType())).to.be.true;
9
10
  (0, chai_1.expect)(new FloatType_1.FloatType().isAssignableTo(new DynamicType_1.DynamicType())).to.be.true;
11
+ (0, chai_1.expect)(new FloatType_1.FloatType().isAssignableTo(new ObjectType_1.ObjectType())).to.be.true;
10
12
  });
11
13
  });
12
14
  //# sourceMappingURL=FloatType.spec.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"FloatType.spec.js","sourceRoot":"","sources":["../../src/types/FloatType.spec.ts"],"names":[],"mappings":";;AAAA,+BAA8B;AAE9B,+CAA4C;AAC5C,2CAAwC;AAExC,QAAQ,CAAC,WAAW,EAAE,GAAG,EAAE;IACvB,EAAE,CAAC,+BAA+B,EAAE,GAAG,EAAE;QACrC,IAAA,aAAM,EAAC,IAAI,qBAAS,EAAE,CAAC,cAAc,CAAC,IAAI,qBAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;QACnE,IAAA,aAAM,EAAC,IAAI,qBAAS,EAAE,CAAC,cAAc,CAAC,IAAI,yBAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;IACzE,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"FloatType.spec.js","sourceRoot":"","sources":["../../src/types/FloatType.spec.ts"],"names":[],"mappings":";;AAAA,+BAA8B;AAC9B,+CAA4C;AAC5C,2CAAwC;AACxC,6CAA0C;AAE1C,QAAQ,CAAC,WAAW,EAAE,GAAG,EAAE;IACvB,EAAE,CAAC,+BAA+B,EAAE,GAAG,EAAE;QACrC,IAAA,aAAM,EAAC,IAAI,qBAAS,EAAE,CAAC,cAAc,CAAC,IAAI,qBAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;QACnE,IAAA,aAAM,EAAC,IAAI,qBAAS,EAAE,CAAC,cAAc,CAAC,IAAI,yBAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;QACrE,IAAA,aAAM,EAAC,IAAI,qBAAS,EAAE,CAAC,cAAc,CAAC,IAAI,uBAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;IACxE,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
@@ -1,28 +1,9 @@
1
1
  import type { CallableParam } from '../interfaces';
2
2
  import type { BscType, TypeContext } from './BscType';
3
- export declare class FunctionType implements BscType {
4
- returnType: BscType;
5
- /**
6
- * Determines if this is a sub or not
7
- */
8
- isSub: boolean;
9
- params: CallableParam[];
10
- isNew: boolean;
11
- isVariadic: boolean;
12
- constructor(returnType: BscType,
13
- /**
14
- * Determines if this is a sub or not
15
- */
16
- isSub?: boolean, params?: CallableParam[], isNew?: boolean, isVariadic?: boolean);
17
- /**
18
- * The name of the function for this type. Can be null
19
- */
20
- name: string;
3
+ import { TypedFunctionType } from './TypedFunctionType';
4
+ export declare class FunctionType extends TypedFunctionType implements BscType {
5
+ constructor();
21
6
  setName(name: string): this;
22
7
  addParameter(paramOrName: CallableParam | string, type?: BscType, isOptional?: boolean): this;
23
- isAssignableTo(targetType: BscType, context?: TypeContext): boolean;
24
- isConvertibleTo(targetType: BscType, context?: TypeContext): boolean;
25
- toString(context?: TypeContext): string;
26
- toTypeString(): string;
27
8
  equals(targetType: BscType, context?: TypeContext): boolean;
28
9
  }