@@ -16791,6 +16791,7 @@ var ts;
1679116791 var assignableRelation = ts.createMap();
1679216792 var comparableRelation = ts.createMap();
1679316793 var identityRelation = ts.createMap();
16794+ var enumRelation = ts.createMap();
1679416795 // This is for caching the result of getSymbolDisplayBuilder. Do not access directly.
1679516796 var _displayBuilder;
1679616797 var TypeSystemPropertyName;
@@ -22135,8 +22136,14 @@ var ts;
2213522136 if (source === target) {
2213622137 return true;
2213722138 }
22138- if (source.symbol.name !== target.symbol.name || !(source.symbol.flags & 256 /* RegularEnum */) || !(target.symbol.flags & 256 /* RegularEnum */)) {
22139- return false;
22139+ var id = source.id + "," + target.id;
22140+ if (enumRelation[id] !== undefined) {
22141+ return enumRelation[id];
22142+ }
22143+ if (source.symbol.name !== target.symbol.name ||
22144+ !(source.symbol.flags & 256 /* RegularEnum */) || !(target.symbol.flags & 256 /* RegularEnum */) ||
22145+ (source.flags & 524288 /* Union */) !== (target.flags & 524288 /* Union */)) {
22146+ return enumRelation[id] = false;
2214022147 }
2214122148 var targetEnumType = getTypeOfSymbol(target.symbol);
2214222149 for (var _i = 0, _a = getPropertiesOfType(getTypeOfSymbol(source.symbol)); _i < _a.length; _i++) {
@@ -22147,11 +22154,11 @@ var ts;
2214722154 if (errorReporter) {
2214822155 errorReporter(ts.Diagnostics.Property_0_is_missing_in_type_1, property.name, typeToString(target, /*enclosingDeclaration*/ undefined, 128 /* UseFullyQualifiedType */));
2214922156 }
22150- return false;
22157+ return enumRelation[id] = false;
2215122158 }
2215222159 }
2215322160 }
22154- return true;
22161+ return enumRelation[id] = true;
2215522162 }
2215622163 function isSimpleTypeRelatedTo(source, target, relation, errorReporter) {
2215722164 if (target.flags & 8192 /* Never */)
@@ -22175,10 +22182,19 @@ var ts;
2217522182 if (relation === assignableRelation || relation === comparableRelation) {
2217622183 if (source.flags & 1 /* Any */)
2217722184 return true;
22178- if (source.flags & ( 4 /* Number */ | 64 /* NumberLiteral */) && target.flags & 16 /* Enum */)
22185+ if (( source.flags & 4 /* Number */ | source.flags & 64 /* NumberLiteral */) && target.flags & 272 /* EnumLike */)
2217922186 return true;
22180- if (source.flags & 64 /* NumberLiteral */ && target.flags & 256 /* EnumLiteral */ && source.text === target.text)
22187+ if (source.flags & 256 /* EnumLiteral */ &&
22188+ target.flags & 256 /* EnumLiteral */ &&
22189+ source.text === target.text &&
22190+ isEnumTypeRelatedTo(source.baseType, target.baseType, errorReporter)) {
2218122191 return true;
22192+ }
22193+ if (source.flags & 256 /* EnumLiteral */ &&
22194+ target.flags & 16 /* Enum */ &&
22195+ isEnumTypeRelatedTo(target, source.baseType, errorReporter)) {
22196+ return true;
22197+ }
2218222198 }
2218322199 return false;
2218422200 }
@@ -43950,7 +43966,7 @@ var ts;
4395043966var ts;
4395143967(function (ts) {
4395243968 /** The version of the TypeScript compiler release */
43953- ts.version = "2.0.2 ";
43969+ ts.version = "2.0.3 ";
4395443970 var emptyArray = [];
4395543971 function findConfigFile(searchPath, fileExists) {
4395643972 while (true) {
0 commit comments