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,82 +3,22 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.FunctionType = void 0;
4
4
  const reflection_1 = require("../astUtils/reflection");
5
5
  const DynamicType_1 = require("./DynamicType");
6
- class FunctionType {
7
- constructor(returnType,
8
- /**
9
- * Determines if this is a sub or not
10
- */
11
- isSub = false, params = [], isNew = false, isVariadic = false) {
12
- this.returnType = returnType;
13
- this.isSub = isSub;
14
- this.params = params;
15
- this.isNew = isNew;
16
- this.isVariadic = isVariadic;
6
+ const TypedFunctionType_1 = require("./TypedFunctionType");
7
+ class FunctionType extends TypedFunctionType_1.TypedFunctionType {
8
+ constructor() {
9
+ super(new DynamicType_1.DynamicType());
10
+ this.isVariadic = true;
17
11
  }
18
12
  setName(name) {
19
- this.name = name;
13
+ // noop
20
14
  return this;
21
15
  }
22
16
  addParameter(paramOrName, type, isOptional) {
23
- if (typeof paramOrName === 'string') {
24
- this.params.push({
25
- name: paramOrName,
26
- type: type !== null && type !== void 0 ? type : new DynamicType_1.DynamicType(),
27
- isOptional: isOptional === true ? true : false,
28
- isRestArgument: false
29
- });
30
- }
31
- else {
32
- this.params.push(paramOrName);
33
- }
17
+ // noop
34
18
  return this;
35
19
  }
36
- isAssignableTo(targetType, context) {
37
- if ((0, reflection_1.isFunctionType)(targetType)) {
38
- if (!targetType.isVariadic) {
39
- //compare all parameters
40
- let len = Math.max(this.params.length, targetType.params.length);
41
- for (let i = 0; i < len; i++) {
42
- let myParam = this.params[i];
43
- let targetParam = targetType.params[i];
44
- if (!myParam || !targetParam || !myParam.type.isAssignableTo(targetParam.type, context)) {
45
- return false;
46
- }
47
- }
48
- }
49
- //compare return type
50
- if (!this.returnType || !targetType.returnType || !this.returnType.isAssignableTo(targetType.returnType, context)) {
51
- return false;
52
- }
53
- //made it here, all params and return type are equivalent
54
- return true;
55
- }
56
- else if ((0, reflection_1.isDynamicType)(targetType)) {
57
- return true;
58
- }
59
- else {
60
- return false;
61
- }
62
- }
63
- isConvertibleTo(targetType, context) {
64
- return this.isAssignableTo(targetType, context);
65
- }
66
- toString(context) {
67
- var _a, _b;
68
- let paramTexts = [];
69
- for (let param of this.params) {
70
- paramTexts.push(`${param.name}${param.isOptional ? '?' : ''} as ${param.type.toString(context)}`);
71
- }
72
- if (this.isNew) {
73
- return `new ${(_a = this.name) !== null && _a !== void 0 ? _a : ''}(${paramTexts.join(', ')})`;
74
- }
75
- return `${this.isSub ? 'sub' : 'function'} ${(_b = this.name) !== null && _b !== void 0 ? _b : ''}(${paramTexts.join(', ')}) as ${this.returnType.toString(context)}`;
76
- }
77
- toTypeString() {
78
- return 'Function';
79
- }
80
20
  equals(targetType, context) {
81
- return ((0, reflection_1.isFunctionType)(targetType)) && this.isAssignableTo(targetType, context);
21
+ return ((0, reflection_1.isFunctionType)(targetType));
82
22
  }
83
23
  }
84
24
  exports.FunctionType = FunctionType;
@@ -1 +1 @@
1
- {"version":3,"file":"FunctionType.js","sourceRoot":"","sources":["../../src/types/FunctionType.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"FunctionType.js","sourceRoot":"","sources":["../../src/types/FunctionType.ts"],"names":[],"mappings":";;;AAAA,uDAAwD;AAGxD,+CAA4C;AAC5C,2DAAwD;AAExD,MAAa,YAAa,SAAQ,qCAAiB;IAE/C;QAEI,KAAK,CAAC,IAAI,yBAAW,EAAE,CAAC,CAAC;QACzB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;IAC3B,CAAC;IAEM,OAAO,CAAC,IAAY;QACvB,OAAO;QACP,OAAO,IAAI,CAAC;IAChB,CAAC;IACM,YAAY,CAAC,WAAmC,EAAE,IAAc,EAAE,UAAoB;QACzF,OAAO;QACP,OAAO,IAAI,CAAC;IAChB,CAAC;IAEM,MAAM,CAAC,UAAmB,EAAE,OAAqB;QACpD,OAAO,CAAC,IAAA,2BAAc,EAAC,UAAU,CAAC,CAAC,CAAC;IACxC,CAAC;CACJ;AApBD,oCAoBC"}
@@ -8,7 +8,8 @@ class IntegerType {
8
8
  }
9
9
  isAssignableTo(targetType) {
10
10
  return ((0, reflection_1.isIntegerType)(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":"IntegerType.js","sourceRoot":"","sources":["../../src/types/IntegerType.ts"],"names":[],"mappings":";;;AAAA,uDAAoH;AAIpH,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,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,SAAS,CAAC;IACtC,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,kCAqCC"}
1
+ {"version":3,"file":"IntegerType.js","sourceRoot":"","sources":["../../src/types/IntegerType.ts"],"names":[],"mappings":";;;AAAA,uDAAkI;AAIlI,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,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,SAAS,CAAC;IACtC,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,kCAsCC"}
@@ -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 IntegerType_1 = require("./IntegerType");
6
+ const ObjectType_1 = require("./ObjectType");
6
7
  describe('IntegerType', () => {
7
- it('is equivalent to other integer types', () => {
8
+ it('is assignable to other proper types', () => {
8
9
  (0, chai_1.expect)(new IntegerType_1.IntegerType().isAssignableTo(new IntegerType_1.IntegerType())).to.be.true;
9
10
  (0, chai_1.expect)(new IntegerType_1.IntegerType().isAssignableTo(new DynamicType_1.DynamicType())).to.be.true;
11
+ (0, chai_1.expect)(new IntegerType_1.IntegerType().isAssignableTo(new ObjectType_1.ObjectType())).to.be.true;
10
12
  });
11
13
  });
12
14
  //# sourceMappingURL=IntegerType.spec.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"IntegerType.spec.js","sourceRoot":"","sources":["../../src/types/IntegerType.spec.ts"],"names":[],"mappings":";;AAAA,+BAA8B;AAE9B,+CAA4C;AAC5C,+CAA4C;AAE5C,QAAQ,CAAC,aAAa,EAAE,GAAG,EAAE;IACzB,EAAE,CAAC,sCAAsC,EAAE,GAAG,EAAE;QAC5C,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":"IntegerType.spec.js","sourceRoot":"","sources":["../../src/types/IntegerType.spec.ts"],"names":[],"mappings":";;AAAA,+BAA8B;AAC9B,+CAA4C;AAC5C,+CAA4C;AAC5C,6CAA0C;AAE1C,QAAQ,CAAC,aAAa,EAAE,GAAG,EAAE;IACzB,EAAE,CAAC,qCAAqC,EAAE,GAAG,EAAE;QAC3C,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"}
@@ -1,14 +1,17 @@
1
- import type { BscType } from './BscType';
2
- export declare class InterfaceType implements BscType {
3
- members: Map<string, BscType>;
4
- constructor(members: Map<string, BscType>);
5
- /**
6
- * The name of the interface. Can be null.
7
- */
1
+ import type { SymbolTable } from '../SymbolTable';
2
+ import type { BscType, SymbolContainer, TypeContext } from './BscType';
3
+ export declare class InterfaceType implements BscType, SymbolContainer {
8
4
  name: string;
9
- isAssignableTo(targetType: BscType): boolean;
10
- isConvertibleTo(targetType: BscType): boolean;
5
+ memberTable: SymbolTable;
6
+ constructor(name: string, memberTable?: SymbolTable);
7
+ isAssignableTo(targetType: BscType, context?: TypeContext): any;
8
+ isConvertibleTo(targetType: BscType): any;
11
9
  toString(): string;
10
+ /**
11
+ * Gets a string representation of the Interface that looks like javascript
12
+ * @returns {string}
13
+ */
14
+ toJsString(): string;
12
15
  toTypeString(): string;
13
- equals(targetType: BscType): boolean;
16
+ equals(targetType: BscType, context?: TypeContext): boolean;
14
17
  }
@@ -2,44 +2,51 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.InterfaceType = void 0;
4
4
  const reflection_1 = require("../astUtils/reflection");
5
+ const BscType_1 = require("./BscType");
5
6
  class InterfaceType {
6
- constructor(members) {
7
- this.members = members;
7
+ constructor(name, memberTable = null) {
8
+ this.name = name;
9
+ this.memberTable = memberTable;
8
10
  }
9
- isAssignableTo(targetType) {
10
- //we must have all of the members of the target type, and they must be equivalent types
11
- if ((0, reflection_1.isInterfaceType)(targetType)) {
12
- for (const [targetMemberName, targetMemberType] of targetType.members) {
13
- //we don't have the target member
14
- if (!this.members.has(targetMemberName)) {
15
- return false;
16
- }
17
- //our member's type is not assignable to the target member type
18
- if (!this.members.get(targetMemberName).isAssignableTo(targetMemberType)) {
19
- return false;
20
- }
21
- }
22
- //we have all of the target member's types. we are assignable!
11
+ isAssignableTo(targetType, context) {
12
+ var _a;
13
+ if ((0, reflection_1.isObjectType)(targetType)) {
23
14
  return true;
24
- //we are always assignable to dynamic or object
25
15
  }
26
- else if ((0, reflection_1.isDynamicType)(targetType) || (0, reflection_1.isObjectType)(targetType)) {
16
+ const ancestorTypes = (_a = context === null || context === void 0 ? void 0 : context.scope) === null || _a === void 0 ? void 0 : _a.getAncestorTypeListByContext(this, context);
17
+ if (ancestorTypes === null || ancestorTypes === void 0 ? void 0 : ancestorTypes.find(ancestorType => targetType.equals(ancestorType, context))) {
27
18
  return true;
28
- //not assignable to any other object types
29
19
  }
30
- else {
31
- return false;
20
+ if (this.memberTable && targetType.memberTable) {
21
+ // both have symbol tables, so check if this interface has all the members of the target
22
+ return (0, BscType_1.checkAssignabilityToInterface)(this, targetType, context);
32
23
  }
24
+ return (this.equals(targetType, context) ||
25
+ (0, reflection_1.isObjectType)(targetType) ||
26
+ (0, reflection_1.isDynamicType)(targetType));
33
27
  }
34
28
  isConvertibleTo(targetType) {
35
29
  return this.isAssignableTo(targetType);
36
30
  }
37
31
  toString() {
32
+ return this.name;
33
+ }
34
+ /**
35
+ * Gets a string representation of the Interface that looks like javascript
36
+ * @returns {string}
37
+ */
38
+ toJsString() {
39
+ var _a;
38
40
  let result = '{';
39
- for (const [key, type] of this.members.entries()) {
40
- result += ' ' + key + ': ' + type.toString() + ';';
41
+ const memberSymbols = (((_a = this.memberTable) === null || _a === void 0 ? void 0 : _a.getAllSymbols()) || []).sort((a, b) => a.name.localeCompare(b.name));
42
+ for (const symbol of memberSymbols) {
43
+ let symbolTypeString = symbol.type.toString();
44
+ if ((0, reflection_1.isInterfaceType)(symbol.type)) {
45
+ symbolTypeString = symbol.type.toJsString();
46
+ }
47
+ result += ' ' + symbol.name + ': ' + symbolTypeString + ';';
41
48
  }
42
- if (this.members.size > 0) {
49
+ if (memberSymbols.length > 0) {
43
50
  result += ' ';
44
51
  }
45
52
  return result + '}';
@@ -47,12 +54,9 @@ class InterfaceType {
47
54
  toTypeString() {
48
55
  return 'object';
49
56
  }
50
- equals(targetType) {
57
+ equals(targetType, context) {
51
58
  if ((0, reflection_1.isInterfaceType)(targetType)) {
52
- if (targetType.members.size !== this.members.size) {
53
- return false;
54
- }
55
- return targetType.isAssignableTo(this);
59
+ return this.isAssignableTo(targetType, context) && targetType.isAssignableTo(this, context);
56
60
  }
57
61
  return false;
58
62
  }
@@ -1 +1 @@
1
- {"version":3,"file":"InterfaceType.js","sourceRoot":"","sources":["../../src/types/InterfaceType.ts"],"names":[],"mappings":";;;AAAA,uDAAsF;AAGtF,MAAa,aAAa;IACtB,YACW,OAA6B;QAA7B,YAAO,GAAP,OAAO,CAAsB;IAGxC,CAAC;IAOM,cAAc,CAAC,UAAmB;QACrC,uFAAuF;QACvF,IAAI,IAAA,4BAAe,EAAC,UAAU,CAAC,EAAE;YAC7B,KAAK,MAAM,CAAC,gBAAgB,EAAE,gBAAgB,CAAC,IAAI,UAAU,CAAC,OAAO,EAAE;gBACnE,iCAAiC;gBACjC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,EAAE;oBACrC,OAAO,KAAK,CAAC;iBAChB;gBACD,+DAA+D;gBAC/D,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,cAAc,CAAC,gBAAgB,CAAC,EAAE;oBACtE,OAAO,KAAK,CAAC;iBAChB;aACJ;YACD,8DAA8D;YAC9D,OAAO,IAAI,CAAC;YAEZ,+CAA+C;SAClD;aAAM,IAAI,IAAA,0BAAa,EAAC,UAAU,CAAC,IAAI,IAAA,yBAAY,EAAC,UAAU,CAAC,EAAE;YAC9D,OAAO,IAAI,CAAC;YAEZ,0CAA0C;SAC7C;aAAM;YACH,OAAO,KAAK,CAAC;SAChB;IACL,CAAC;IAEM,eAAe,CAAC,UAAmB;QACtC,OAAO,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;IAC3C,CAAC;IAEM,QAAQ;QACX,IAAI,MAAM,GAAG,GAAG,CAAC;QACjB,KAAK,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE;YAC9C,MAAM,IAAI,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,CAAC,QAAQ,EAAE,GAAG,GAAG,CAAC;SACtD;QACD,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,GAAG,CAAC,EAAE;YACvB,MAAM,IAAI,GAAG,CAAC;SACjB;QACD,OAAO,MAAM,GAAG,GAAG,CAAC;IACxB,CAAC;IAEM,YAAY;QACf,OAAO,QAAQ,CAAC;IACpB,CAAC;IAEM,MAAM,CAAC,UAAmB;QAC7B,IAAI,IAAA,4BAAe,EAAC,UAAU,CAAC,EAAE;YAC7B,IAAI,UAAU,CAAC,OAAO,CAAC,IAAI,KAAK,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE;gBAC/C,OAAO,KAAK,CAAC;aAChB;YACD,OAAO,UAAU,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;SAC1C;QACD,OAAO,KAAK,CAAC;IACjB,CAAC;CACJ;AAlED,sCAkEC"}
1
+ {"version":3,"file":"InterfaceType.js","sourceRoot":"","sources":["../../src/types/InterfaceType.ts"],"names":[],"mappings":";;;AAAA,uDAAsF;AAGtF,uCAA0D;AAE1D,MAAa,aAAa;IACtB,YACW,IAAY,EAAS,cAA2B,IAAI;QAApD,SAAI,GAAJ,IAAI,CAAQ;QAAS,gBAAW,GAAX,WAAW,CAAoB;IAG/D,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,wFAAwF;YACxF,OAAO,IAAA,uCAA6B,EAAC,IAAI,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;SACnE;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;QACtC,OAAO,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;IAC3C,CAAC;IAEM,QAAQ;QACX,OAAO,IAAI,CAAC,IAAI,CAAC;IACrB,CAAC;IAED;;;OAGG;IACI,UAAU;;QACb,IAAI,MAAM,GAAG,GAAG,CAAC;QACjB,MAAM,aAAa,GAAG,CAAC,CAAA,MAAA,IAAI,CAAC,WAAW,0CAAE,aAAa,EAAE,KAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QAC7G,KAAK,MAAM,MAAM,IAAI,aAAa,EAAE;YAChC,IAAI,gBAAgB,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;YAC9C,IAAI,IAAA,4BAAe,EAAC,MAAM,CAAC,IAAI,CAAC,EAAE;gBAC9B,gBAAgB,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;aAC/C;YACD,MAAM,IAAI,GAAG,GAAG,MAAM,CAAC,IAAI,GAAG,IAAI,GAAG,gBAAgB,GAAG,GAAG,CAAC;SAC/D;QACD,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE;YAC1B,MAAM,IAAI,GAAG,CAAC;SACjB;QACD,OAAO,MAAM,GAAG,GAAG,CAAC;IACxB,CAAC;IAEM,YAAY;QACf,OAAO,QAAQ,CAAC;IACpB,CAAC;IAEM,MAAM,CAAC,UAAmB,EAAE,OAAqB;QAEpD,IAAI,IAAA,4BAAe,EAAC,UAAU,CAAC,EAAE;YAC7B,OAAO,IAAI,CAAC,cAAc,CAAC,UAAU,EAAE,OAAO,CAAC,IAAI,UAAU,CAAC,cAAc,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;SAC/F;QACD,OAAO,KAAK,CAAC;IACjB,CAAC;CAEJ;AAlED,sCAkEC"}
@@ -2,6 +2,8 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const chai_1 = require("chai");
4
4
  const sinon_1 = require("sinon");
5
+ const SymbolTable_1 = require("../SymbolTable");
6
+ const CustomType_1 = require("./CustomType");
5
7
  const DynamicType_1 = require("./DynamicType");
6
8
  const IntegerType_1 = require("./IntegerType");
7
9
  const InterfaceType_1 = require("./InterfaceType");
@@ -10,10 +12,10 @@ const StringType_1 = require("./StringType");
10
12
  describe('InterfaceType', () => {
11
13
  describe('toString', () => {
12
14
  it('returns empty curly braces when no members', () => {
13
- (0, chai_1.expect)(iface({}).toString()).to.eql('{}');
15
+ (0, chai_1.expect)(iface({}).toJsString()).to.eql('{}');
14
16
  });
15
17
  it('includes member types', () => {
16
- (0, chai_1.expect)(iface({ name: new StringType_1.StringType() }).toString()).to.eql('{ name: string; }');
18
+ (0, chai_1.expect)(iface({ name: new StringType_1.StringType() }).toJsString()).to.eql('{ name: string; }');
17
19
  });
18
20
  it('includes nested object types', () => {
19
21
  (0, chai_1.expect)(iface({
@@ -21,7 +23,7 @@ describe('InterfaceType', () => {
21
23
  parent: iface({
22
24
  age: new IntegerType_1.IntegerType()
23
25
  })
24
- }).toString()).to.eql('{ name: string; parent: { age: integer; }; }');
26
+ }).toJsString()).to.eql('{ name: string; parent: { age: integer; }; }');
25
27
  });
26
28
  });
27
29
  describe('isConvertibleTo', () => {
@@ -40,6 +42,9 @@ describe('InterfaceType', () => {
40
42
  it('does not match inequal objects', () => {
41
43
  (0, chai_1.expect)(iface({ name: new StringType_1.StringType() }).equals(iface({ name: new IntegerType_1.IntegerType() }))).to.be.false;
42
44
  });
45
+ it('ignores order', () => {
46
+ (0, chai_1.expect)(iface({ name: new StringType_1.StringType(), age: new IntegerType_1.IntegerType(), data: new CustomType_1.CustomType('data') }).equals(iface({ age: new IntegerType_1.IntegerType(), data: new CustomType_1.CustomType('data'), name: new StringType_1.StringType() }))).to.be.true;
47
+ });
43
48
  });
44
49
  describe('isAssignableTo', () => {
45
50
  it('rejects being assignable to other types', () => {
@@ -71,13 +76,15 @@ describe('InterfaceType', () => {
71
76
  });
72
77
  });
73
78
  it('matches properties in mismatched order', () => {
74
- (0, chai_1.expect)(new InterfaceType_1.InterfaceType(new Map([
75
- ['name', new StringType_1.StringType()],
76
- ['age', new IntegerType_1.IntegerType()]
77
- ])).isAssignableTo(new InterfaceType_1.InterfaceType(new Map([
78
- ['age', new IntegerType_1.IntegerType()],
79
- ['name', new StringType_1.StringType()]
80
- ])))).to.be.true;
79
+ const symbolTable1 = makeSymbolTable({
80
+ name: new StringType_1.StringType(),
81
+ age: new IntegerType_1.IntegerType()
82
+ });
83
+ const symbolTable2 = makeSymbolTable({
84
+ age: new IntegerType_1.IntegerType(),
85
+ name: new StringType_1.StringType()
86
+ });
87
+ (0, chai_1.expect)(new InterfaceType_1.InterfaceType('interfaceOne', symbolTable1).isAssignableTo(new InterfaceType_1.InterfaceType('interfaceTwo', symbolTable2))).to.be.true;
81
88
  });
82
89
  it('rejects with member having mismatched type', () => {
83
90
  expectNotAssignable({
@@ -122,7 +129,7 @@ describe('InterfaceType', () => {
122
129
  })
123
130
  });
124
131
  });
125
- it('accepts with source member having dyanmic prop type', () => {
132
+ it('accepts with source member having dynamic prop type', () => {
126
133
  expectAssignable({
127
134
  parent: iface({
128
135
  name: new StringType_1.StringType(),
@@ -132,7 +139,10 @@ describe('InterfaceType', () => {
132
139
  parent: new DynamicType_1.DynamicType()
133
140
  });
134
141
  });
135
- it('accepts with target member having dyanmic prop type', () => {
142
+ it('accepts with source member having dynamic prop type', () => {
143
+ (0, chai_1.expect)(iface({ name: new StringType_1.StringType() }).isAssignableTo(new ObjectType_1.ObjectType())).to.be.true;
144
+ });
145
+ it('accepts with target member having dynamic prop type', () => {
136
146
  expectAssignable({
137
147
  parent: new DynamicType_1.DynamicType()
138
148
  }, {
@@ -154,21 +164,31 @@ describe('InterfaceType', () => {
154
164
  });
155
165
  });
156
166
  });
157
- function iface(members) {
158
- return new InterfaceType_1.InterfaceType(new Map(Object.entries(members)));
167
+ let ifaceCount = 0;
168
+ function iface(members, name) {
169
+ name = name !== null && name !== void 0 ? name : 'SomeIFace' + ifaceCount;
170
+ ifaceCount++;
171
+ return new InterfaceType_1.InterfaceType(name, makeSymbolTable(members));
172
+ }
173
+ function makeSymbolTable(members) {
174
+ const symbols = new SymbolTable_1.SymbolTable();
175
+ for (const key in members) {
176
+ symbols.addSymbol(key, null, members[key]);
177
+ }
178
+ return symbols;
159
179
  }
160
180
  function expectAssignable(targetMembers, sourceMembers) {
161
181
  const targetIface = iface(targetMembers);
162
182
  const sourceIface = iface(sourceMembers);
163
183
  if (!sourceIface.isAssignableTo(targetIface)) {
164
- sinon_1.assert.fail(`expected type ${targetIface.toString()} to be assignable to type ${sourceIface.toString()}`);
184
+ sinon_1.assert.fail(`expected type ${targetIface.toJsString()} to be assignable to type ${sourceIface.toJsString()}`);
165
185
  }
166
186
  }
167
187
  function expectNotAssignable(targetMembers, sourceMembers) {
168
188
  const targetIface = iface(targetMembers);
169
189
  const sourceIface = iface(sourceMembers);
170
190
  if (sourceIface.isAssignableTo(targetIface)) {
171
- sinon_1.assert.fail(`expected type ${targetIface.toString()} to not be assignable to type ${sourceIface.toString()}`);
191
+ sinon_1.assert.fail(`expected type ${targetIface.toJsString()} to not be assignable to type ${sourceIface.toJsString()}`);
172
192
  }
173
193
  }
174
194
  //# sourceMappingURL=InterfaceType.spec.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"InterfaceType.spec.js","sourceRoot":"","sources":["../../src/types/InterfaceType.spec.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"InterfaceType.spec.js","sourceRoot":"","sources":["../../src/types/InterfaceType.spec.ts"],"names":[],"mappings":";;AAAA,+BAA8B;AAC9B,iCAA+B;AAC/B,gDAA6C;AAE7C,6CAA0C;AAC1C,+CAA4C;AAC5C,+CAA4C;AAC5C,mDAAgD;AAChD,6CAA0C;AAC1C,6CAA0C;AAE1C,QAAQ,CAAC,eAAe,EAAE,GAAG,EAAE;IAC3B,QAAQ,CAAC,UAAU,EAAE,GAAG,EAAE;QACtB,EAAE,CAAC,4CAA4C,EAAE,GAAG,EAAE;YAClD,IAAA,aAAM,EAAC,KAAK,CAAC,EAAE,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAChD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,uBAAuB,EAAE,GAAG,EAAE;YAC7B,IAAA,aAAM,EAAC,KAAK,CAAC,EAAE,IAAI,EAAE,IAAI,uBAAU,EAAE,EAAE,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;QACvF,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,8BAA8B,EAAE,GAAG,EAAE;YACpC,IAAA,aAAM,EACF,KAAK,CAAC;gBACF,IAAI,EAAE,IAAI,uBAAU,EAAE;gBACtB,MAAM,EAAE,KAAK,CAAC;oBACV,GAAG,EAAE,IAAI,yBAAW,EAAE;iBACzB,CAAC;aACL,CACA,CAAC,UAAU,EAAE,CACjB,CAAC,EAAE,CAAC,GAAG,CAAC,8CAA8C,CAAC,CAAC;QAC7D,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,iBAAiB,EAAE,GAAG,EAAE;QAC7B,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;YACb,gBAAgB,CAAC;gBACb,IAAI,EAAE,IAAI,uBAAU,EAAE;aACzB,EAAE;gBACC,IAAI,EAAE,IAAI,uBAAU,EAAE;aACzB,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,QAAQ,EAAE,GAAG,EAAE;QACpB,EAAE,CAAC,uBAAuB,EAAE,GAAG,EAAE;YAC7B,IAAA,aAAM,EACF,KAAK,CAAC,EAAE,IAAI,EAAE,IAAI,uBAAU,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,IAAI,uBAAU,EAAE,EAAE,CAAC,CAAC,CAC9E,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;QACjB,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,gCAAgC,EAAE,GAAG,EAAE;YACtC,IAAA,aAAM,EACF,KAAK,CAAC,EAAE,IAAI,EAAE,IAAI,uBAAU,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,IAAI,yBAAW,EAAE,EAAE,CAAC,CAAC,CAC/E,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;QAClB,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,eAAe,EAAE,GAAG,EAAE;YACrB,IAAA,aAAM,EACF,KAAK,CAAC,EAAE,IAAI,EAAE,IAAI,uBAAU,EAAE,EAAE,GAAG,EAAE,IAAI,yBAAW,EAAE,EAAE,IAAI,EAAE,IAAI,uBAAU,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,IAAI,yBAAW,EAAE,EAAE,IAAI,EAAE,IAAI,uBAAU,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,IAAI,uBAAU,EAAE,EAAE,CAAC,CAAC,CAC1L,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;QACjB,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,gBAAgB,EAAE,GAAG,EAAE;QAC5B,EAAE,CAAC,yCAAyC,EAAE,GAAG,EAAE;YAC/C,IAAA,aAAM,EACF,KAAK,CAAC;gBACF,IAAI,EAAE,IAAI,uBAAU,EAAE;aACzB,CAAC,CAAC,cAAc,CAAC,IAAI,yBAAW,EAAE,CAAC,CACvC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;QAClB,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,0BAA0B,EAAE,GAAG,EAAE;YAChC,gBAAgB,CAAC;gBACb,IAAI,EAAE,IAAI,uBAAU,EAAE;aACzB,EAAE;gBACC,IAAI,EAAE,IAAI,uBAAU,EAAE;aACzB,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,8EAA8E,EAAE,GAAG,EAAE;YACpF,gBAAgB,CAAC;gBACb,IAAI,EAAE,IAAI,uBAAU,EAAE;aACzB,EAAE;gBACC,IAAI,EAAE,IAAI,uBAAU,EAAE;gBACtB,GAAG,EAAE,IAAI,yBAAW,EAAE;aACzB,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,mEAAmE,EAAE,GAAG,EAAE;YACzE,mBAAmB,CAAC;gBAChB,IAAI,EAAE,IAAI,uBAAU,EAAE;gBACtB,GAAG,EAAE,IAAI,yBAAW,EAAE;aACzB,EAAE;gBACC,IAAI,EAAE,IAAI,uBAAU,EAAE;aACzB,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,wCAAwC,EAAE,GAAG,EAAE;YAC9C,MAAM,YAAY,GAAG,eAAe,CAAC;gBACjC,IAAI,EAAE,IAAI,uBAAU,EAAE;gBACtB,GAAG,EAAE,IAAI,yBAAW,EAAE;aACzB,CAAC,CAAC;YACH,MAAM,YAAY,GAAG,eAAe,CAAC;gBACjC,GAAG,EAAE,IAAI,yBAAW,EAAE;gBACtB,IAAI,EAAE,IAAI,uBAAU,EAAE;aACzB,CAAC,CAAC;YAEH,IAAA,aAAM,EACF,IAAI,6BAAa,CAAC,cAAc,EAAE,YAAY,CAAC,CAAC,cAAc,CAAC,IAAI,6BAAa,CAAC,cAAc,EAAE,YAAY,CAAC,CAAC,CAClH,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;QACjB,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,4CAA4C,EAAE,GAAG,EAAE;YAClD,mBAAmB,CAAC;gBAChB,IAAI,EAAE,IAAI,uBAAU,EAAE;aACzB,EAAE;gBACC,IAAI,EAAE,IAAI,yBAAW,EAAE;aAC1B,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,mDAAmD,EAAE,GAAG,EAAE;YACzD,mBAAmB,CAAC;gBAChB,MAAM,EAAE,KAAK,CAAC;oBACV,IAAI,EAAE,IAAI,uBAAU,EAAE;iBACzB,CAAC;aACL,EAAE;gBACC,MAAM,EAAE,KAAK,CAAC;oBACV,IAAI,EAAE,IAAI,yBAAW,EAAE;iBAC1B,CAAC;aACL,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,qDAAqD,EAAE,GAAG,EAAE;YAC3D,mBAAmB,CAAC;gBAChB,MAAM,EAAE,KAAK,CAAC;oBACV,IAAI,EAAE,IAAI,uBAAU,EAAE;oBACtB,GAAG,EAAE,IAAI,yBAAW,EAAE;iBACzB,CAAC;aACL,EAAE;gBACC,MAAM,EAAE,KAAK,CAAC;oBACV,IAAI,EAAE,IAAI,uBAAU,EAAE;iBACzB,CAAC;aACL,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,mDAAmD,EAAE,GAAG,EAAE;YACzD,gBAAgB,CAAC;gBACb,MAAM,EAAE,KAAK,CAAC;oBACV,IAAI,EAAE,IAAI,uBAAU,EAAE;oBACtB,GAAG,EAAE,IAAI,yBAAW,EAAE;iBACzB,CAAC;aACL,EAAE;gBACC,MAAM,EAAE,KAAK,CAAC;oBACV,IAAI,EAAE,IAAI,uBAAU,EAAE;oBACtB,GAAG,EAAE,IAAI,yBAAW,EAAE;iBACzB,CAAC;aACL,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,qDAAqD,EAAE,GAAG,EAAE;YAC3D,gBAAgB,CAAC;gBACb,MAAM,EAAE,KAAK,CAAC;oBACV,IAAI,EAAE,IAAI,uBAAU,EAAE;oBACtB,GAAG,EAAE,IAAI,yBAAW,EAAE;iBACzB,CAAC;aACL,EAAE;gBACC,MAAM,EAAE,IAAI,yBAAW,EAAE;aAC5B,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,qDAAqD,EAAE,GAAG,EAAE;YAC3D,IAAA,aAAM,EAAC,KAAK,CAAC,EAAE,IAAI,EAAE,IAAI,uBAAU,EAAE,EAAE,CAAC,CAAC,cAAc,CAAC,IAAI,uBAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;QAC1F,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,qDAAqD,EAAE,GAAG,EAAE;YAC3D,gBAAgB,CAAC;gBACb,MAAM,EAAE,IAAI,yBAAW,EAAE;aAC5B,EAAE;gBACC,MAAM,EAAE,KAAK,CAAC;oBACV,IAAI,EAAE,IAAI,uBAAU,EAAE;oBACtB,GAAG,EAAE,IAAI,yBAAW,EAAE;iBACzB,CAAC;aACL,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,sDAAsD,EAAE,GAAG,EAAE;YAC5D,gBAAgB,CAAC;gBACb,MAAM,EAAE,IAAI,uBAAU,EAAE;aAC3B,EAAE;gBACC,MAAM,EAAE,KAAK,CAAC;oBACV,IAAI,EAAE,IAAI,uBAAU,EAAE;oBACtB,GAAG,EAAE,IAAI,yBAAW,EAAE;iBACzB,CAAC;aACL,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC;AAEH,IAAI,UAAU,GAAG,CAAC,CAAC;AAEnB,SAAS,KAAK,CAAC,OAAgC,EAAE,IAAa;IAC1D,IAAI,GAAG,IAAI,aAAJ,IAAI,cAAJ,IAAI,GAAI,WAAW,GAAG,UAAU,CAAC;IACxC,UAAU,EAAE,CAAC;IACb,OAAO,IAAI,6BAAa,CAAC,IAAI,EAAE,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC;AAC7D,CAAC;AAED,SAAS,eAAe,CAAC,OAAgC;IACrD,MAAM,OAAO,GAAG,IAAI,yBAAW,EAAE,CAAC;IAElC,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE;QACvB,OAAO,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;KAC9C;IACD,OAAO,OAAO,CAAC;AACnB,CAAC;AAED,SAAS,gBAAgB,CAAC,aAAsC,EAAE,aAAsC;IACpG,MAAM,WAAW,GAAG,KAAK,CAAC,aAAa,CAAC,CAAC;IACzC,MAAM,WAAW,GAAG,KAAK,CAAC,aAAa,CAAC,CAAC;IACzC,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,WAAW,CAAC,EAAE;QAC1C,cAAM,CAAC,IAAI,CAAC,iBAAiB,WAAW,CAAC,UAAU,EAAE,6BAA6B,WAAW,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;KACjH;AACL,CAAC;AAED,SAAS,mBAAmB,CAAC,aAAsC,EAAE,aAAsC;IACvG,MAAM,WAAW,GAAG,KAAK,CAAC,aAAa,CAAC,CAAC;IACzC,MAAM,WAAW,GAAG,KAAK,CAAC,aAAa,CAAC,CAAC;IACzC,IAAI,WAAW,CAAC,cAAc,CAAC,WAAW,CAAC,EAAE;QACzC,cAAM,CAAC,IAAI,CAAC,iBAAiB,WAAW,CAAC,UAAU,EAAE,iCAAiC,WAAW,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;KACrH;AACL,CAAC"}
@@ -8,7 +8,8 @@ class InvalidType {
8
8
  }
9
9
  isAssignableTo(targetType) {
10
10
  return ((0, reflection_1.isInvalidType)(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) || (0, reflection_1.isCustomType)(targetType) || (0, reflection_1.isObjectType)(targetType);
@@ -1 +1 @@
1
- {"version":3,"file":"InvalidType.js","sourceRoot":"","sources":["../../src/types/InvalidType.ts"],"names":[],"mappings":";;;AAAA,uDAAkG;AAGlG,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,IAAI,IAAA,yBAAY,EAAC,UAAU,CAAC,IAAI,IAAA,yBAAY,EAAC,UAAU,CAAC,CAAC;IACnG,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":"InvalidType.js","sourceRoot":"","sources":["../../src/types/InvalidType.ts"],"names":[],"mappings":";;;AAAA,uDAAkG;AAGlG,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,IAAI,IAAA,yBAAY,EAAC,UAAU,CAAC,IAAI,IAAA,yBAAY,EAAC,UAAU,CAAC,CAAC;IACnG,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 DynamicType_1 = require("./DynamicType");
5
5
  const InvalidType_1 = require("./InvalidType");
6
+ const ObjectType_1 = require("./ObjectType");
6
7
  describe('InvalidType', () => {
7
8
  it('is equivalent to invalid types', () => {
8
9
  (0, chai_1.expect)(new InvalidType_1.InvalidType().isAssignableTo(new InvalidType_1.InvalidType())).to.be.true;
9
10
  (0, chai_1.expect)(new InvalidType_1.InvalidType().isAssignableTo(new DynamicType_1.DynamicType())).to.be.true;
11
+ (0, chai_1.expect)(new InvalidType_1.InvalidType().isAssignableTo(new ObjectType_1.ObjectType())).to.be.true;
10
12
  });
11
13
  });
12
14
  //# sourceMappingURL=InvalidType.spec.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"InvalidType.spec.js","sourceRoot":"","sources":["../../src/types/InvalidType.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":"InvalidType.spec.js","sourceRoot":"","sources":["../../src/types/InvalidType.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"}
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.LazyType = void 0;
4
+ const reflection_1 = require("../astUtils/reflection");
4
5
  /**
5
6
  * A type whose actual type is not computed until requested.
6
7
  * This is useful when the parser creates types in the middle of the file that depend on items further down in the file that haven't been parsed yet
@@ -16,6 +17,9 @@ class LazyType {
16
17
  return this.factory(context);
17
18
  }
18
19
  isAssignableTo(targetType, context) {
20
+ if ((0, reflection_1.isObjectType)(targetType)) {
21
+ return true;
22
+ }
19
23
  const foundType = this.getTypeFromContext(context);
20
24
  return foundType === null || foundType === void 0 ? void 0 : foundType.isAssignableTo(targetType, context);
21
25
  }
@@ -1 +1 @@
1
- {"version":3,"file":"LazyType.js","sourceRoot":"","sources":["../../src/types/LazyType.ts"],"names":[],"mappings":";;;AAEA;;;GAGG;AACH,MAAa,QAAQ;IACjB,YACY,OAA2C;QAA3C,YAAO,GAAP,OAAO,CAAoC;IAEvD,CAAC;IAED,IAAW,IAAI;QACX,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC;IAC1B,CAAC;IACM,kBAAkB,CAAC,OAAqB;QAC3C,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IACjC,CAAC;IAEM,cAAc,CAAC,UAAmB,EAAE,OAAqB;QAC5D,MAAM,SAAS,GAAG,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC;QACnD,OAAO,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,cAAc,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IAC1D,CAAC;IAEM,eAAe,CAAC,UAAmB,EAAE,OAAqB;;QAC7D,OAAO,MAAA,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,0CAAE,eAAe,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IAClF,CAAC;IAEM,QAAQ,CAAC,OAAqB;;QACjC,OAAO,MAAA,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,0CAAE,QAAQ,CAAC,OAAO,CAAC,CAAC;IAC/D,CAAC;IAEM,YAAY,CAAC,OAAqB;;QACrC,OAAO,MAAA,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,0CAAE,YAAY,CAAC,OAAO,CAAC,CAAC;IACnE,CAAC;IAEM,MAAM,CAAC,UAAmB,EAAE,OAAqB;;QACpD,OAAO,MAAA,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,0CAAE,MAAM,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IACzE,CAAC;CACJ;AAjCD,4BAiCC"}
1
+ {"version":3,"file":"LazyType.js","sourceRoot":"","sources":["../../src/types/LazyType.ts"],"names":[],"mappings":";;;AAAA,uDAAsD;AAGtD;;;GAGG;AACH,MAAa,QAAQ;IACjB,YACY,OAA2C;QAA3C,YAAO,GAAP,OAAO,CAAoC;IAEvD,CAAC;IAED,IAAW,IAAI;QACX,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC;IAC1B,CAAC;IACM,kBAAkB,CAAC,OAAqB;QAC3C,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IACjC,CAAC;IAEM,cAAc,CAAC,UAAmB,EAAE,OAAqB;QAC5D,IAAI,IAAA,yBAAY,EAAC,UAAU,CAAC,EAAE;YAC1B,OAAO,IAAI,CAAC;SACf;QACD,MAAM,SAAS,GAAG,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC;QACnD,OAAO,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,cAAc,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IAC1D,CAAC;IAEM,eAAe,CAAC,UAAmB,EAAE,OAAqB;;QAC7D,OAAO,MAAA,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,0CAAE,eAAe,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IAClF,CAAC;IAEM,QAAQ,CAAC,OAAqB;;QACjC,OAAO,MAAA,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,0CAAE,QAAQ,CAAC,OAAO,CAAC,CAAC;IAC/D,CAAC;IAEM,YAAY,CAAC,OAAqB;;QACrC,OAAO,MAAA,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,0CAAE,YAAY,CAAC,OAAO,CAAC,CAAC;IACnE,CAAC;IAEM,MAAM,CAAC,UAAmB,EAAE,OAAqB;;QACpD,OAAO,MAAA,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,0CAAE,MAAM,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IACzE,CAAC;CACJ;AApCD,4BAoCC"}
@@ -8,7 +8,8 @@ class LongIntegerType {
8
8
  }
9
9
  isAssignableTo(targetType) {
10
10
  return ((0, reflection_1.isLongIntegerType)(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":"LongIntegerType.js","sourceRoot":"","sources":["../../src/types/LongIntegerType.ts"],"names":[],"mappings":";;;AAAA,uDAAoH;AAIpH,MAAa,eAAe;IACxB,YACW,QAAiB;QAAjB,aAAQ,GAAR,QAAQ,CAAS;IACxB,CAAC;IAEE,cAAc,CAAC,UAAmB;QACrC,OAAO,CACH,IAAA,8BAAiB,EAAC,UAAU,CAAC;YAC7B,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;IAEM,QAAQ;;QACX,OAAO,MAAA,IAAI,CAAC,QAAQ,mCAAI,aAAa,CAAC;IAC1C,CAAC;IAEM,YAAY;QACf,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC;IAC3B,CAAC;IAEM,MAAM,CAAC,UAAmB;QAC7B,OAAO,IAAA,8BAAiB,EAAC,UAAU,CAAC,CAAC;IACzC,CAAC;CACJ;AArCD,0CAqCC"}
1
+ {"version":3,"file":"LongIntegerType.js","sourceRoot":"","sources":["../../src/types/LongIntegerType.ts"],"names":[],"mappings":";;;AAAA,uDAAkI;AAGlI,MAAa,eAAe;IACxB,YACW,QAAiB;QAAjB,aAAQ,GAAR,QAAQ,CAAS;IACxB,CAAC;IAEE,cAAc,CAAC,UAAmB;QACrC,OAAO,CACH,IAAA,8BAAiB,EAAC,UAAU,CAAC;YAC7B,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,aAAa,CAAC;IAC1C,CAAC;IAEM,YAAY;QACf,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC;IAC3B,CAAC;IAEM,MAAM,CAAC,UAAmB;QAC7B,OAAO,IAAA,8BAAiB,EAAC,UAAU,CAAC,CAAC;IACzC,CAAC;CACJ;AAtCD,0CAsCC"}
@@ -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 LongIntegerType_1 = require("./LongIntegerType");
6
+ const ObjectType_1 = require("./ObjectType");
6
7
  describe('LongIntegerType', () => {
7
8
  it('is equivalent to other long integer types', () => {
8
9
  (0, chai_1.expect)(new LongIntegerType_1.LongIntegerType().isAssignableTo(new LongIntegerType_1.LongIntegerType())).to.be.true;
9
10
  (0, chai_1.expect)(new LongIntegerType_1.LongIntegerType().isAssignableTo(new DynamicType_1.DynamicType())).to.be.true;
11
+ (0, chai_1.expect)(new LongIntegerType_1.LongIntegerType().isAssignableTo(new ObjectType_1.ObjectType())).to.be.true;
10
12
  });
11
13
  });
12
14
  //# sourceMappingURL=LongIntegerType.spec.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"LongIntegerType.spec.js","sourceRoot":"","sources":["../../src/types/LongIntegerType.spec.ts"],"names":[],"mappings":";;AAAA,+BAA8B;AAE9B,+CAA4C;AAC5C,uDAAoD;AAEpD,QAAQ,CAAC,iBAAiB,EAAE,GAAG,EAAE;IAC7B,EAAE,CAAC,2CAA2C,EAAE,GAAG,EAAE;QACjD,IAAA,aAAM,EAAC,IAAI,iCAAe,EAAE,CAAC,cAAc,CAAC,IAAI,iCAAe,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;QAC/E,IAAA,aAAM,EAAC,IAAI,iCAAe,EAAE,CAAC,cAAc,CAAC,IAAI,yBAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;IAC/E,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"LongIntegerType.spec.js","sourceRoot":"","sources":["../../src/types/LongIntegerType.spec.ts"],"names":[],"mappings":";;AAAA,+BAA8B;AAC9B,+CAA4C;AAC5C,uDAAoD;AACpD,6CAA0C;AAE1C,QAAQ,CAAC,iBAAiB,EAAE,GAAG,EAAE;IAC7B,EAAE,CAAC,2CAA2C,EAAE,GAAG,EAAE;QACjD,IAAA,aAAM,EAAC,IAAI,iCAAe,EAAE,CAAC,cAAc,CAAC,IAAI,iCAAe,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;QAC/E,IAAA,aAAM,EAAC,IAAI,iCAAe,EAAE,CAAC,cAAc,CAAC,IAAI,yBAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;QAC3E,IAAA,aAAM,EAAC,IAAI,iCAAe,EAAE,CAAC,cAAc,CAAC,IAAI,uBAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;IAC9E,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
@@ -8,7 +8,8 @@ class StringType {
8
8
  }
9
9
  isAssignableTo(targetType) {
10
10
  return ((0, reflection_1.isStringType)(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":"StringType.js","sourceRoot":"","sources":["../../src/types/StringType.ts"],"names":[],"mappings":";;;AAAA,uDAAqE;AAGrE,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,OAAO,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;IAC3C,CAAC;IAEM,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,IAAA,yBAAY,EAAC,UAAU,CAAC,CAAC;IACpC,CAAC;CACJ;AA3BD,gCA2BC"}
1
+ {"version":3,"file":"StringType.js","sourceRoot":"","sources":["../../src/types/StringType.ts"],"names":[],"mappings":";;;AAAA,uDAAmF;AAGnF,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,OAAO,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;IAC3C,CAAC;IAEM,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,IAAA,yBAAY,EAAC,UAAU,CAAC,CAAC;IACpC,CAAC;CACJ;AA5BD,gCA4BC"}
@@ -2,11 +2,13 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const chai_1 = require("chai");
4
4
  const DynamicType_1 = require("./DynamicType");
5
+ const ObjectType_1 = require("./ObjectType");
5
6
  const StringType_1 = require("./StringType");
6
7
  describe('StringType', () => {
7
8
  it('is equivalent to string types', () => {
8
9
  (0, chai_1.expect)(new StringType_1.StringType().isAssignableTo(new StringType_1.StringType())).to.be.true;
9
10
  (0, chai_1.expect)(new StringType_1.StringType().isAssignableTo(new DynamicType_1.DynamicType())).to.be.true;
11
+ (0, chai_1.expect)(new StringType_1.StringType().isAssignableTo(new ObjectType_1.ObjectType())).to.be.true;
10
12
  });
11
13
  });
12
14
  //# sourceMappingURL=StringType.spec.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"StringType.spec.js","sourceRoot":"","sources":["../../src/types/StringType.spec.ts"],"names":[],"mappings":";;AAAA,+BAA8B;AAE9B,+CAA4C;AAC5C,6CAA0C;AAE1C,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":"StringType.spec.js","sourceRoot":"","sources":["../../src/types/StringType.spec.ts"],"names":[],"mappings":";;AAAA,+BAA8B;AAE9B,+CAA4C;AAC5C,6CAA0C;AAC1C,6CAA0C;AAE1C,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;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"}
@@ -0,0 +1,28 @@
1
+ import type { CallableParam } from '../interfaces';
2
+ import type { BscType, TypeContext } from './BscType';
3
+ export declare class TypedFunctionType 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;
21
+ setName(name: string): this;
22
+ 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
+ equals(targetType: BscType, context?: TypeContext): boolean;
28
+ }