TypeScript/tests/baselines/reference/derivedClassSuperCallsInNonConstructorMembers.js
Josh Goldberg 541e553163
Specific diagnostic suggestions for unexpected keyword or identifier (#43005)
Error message improvement for unexpected tokens in the following situations:

* A word was parsed that seems to have a low edit distance from a known common keyword
* A word was parsed that seems to be a known common keyword and a name _without_ a space in-between
* Parsing in a particular type of node (mostly a class property declaration) got a different word or token than expected

___

* Specific diagnostic suggestions for unexpected keywords or identifier

* Don't reach into there, that's not allowed

* Improved error when there is already an initializer

* Specific module error message for invalid template literal strings

* Skip 'unexpected keyword or identifier' diagnostics for declare nodes

* Improve error for function calls in type positions

* Switch class properties to old diagnostic

* Corrected errors in class members and reused existing textToKeywordObj map

* Corrected more baselines from the merge

* Update src/compiler/parser.ts

Co-authored-by: Daniel Rosenwasser <DanielRosenwasser@users.noreply.github.com>

* Mostly addressed feedback

* Clarified function call type message

* Split up and clarified parsing vs error functions

* Swap interface name complaints back, and skip new errors on unknown (invalid) tokens

* Used tokenToString, not a raw semicolon

* Inline getExpressionText helper

* Remove remarks in src/compiler/parser.ts

Co-authored-by: Daniel Rosenwasser <DanielRosenwasser@users.noreply.github.com>
2021-07-14 13:50:55 -07:00

93 lines
2.4 KiB
TypeScript

//// [derivedClassSuperCallsInNonConstructorMembers.ts]
// error to use super calls outside a constructor
class Base {
x: string;
}
class Derived extends Base {
a: super();
b() {
super();
}
get C() {
super();
return 1;
}
set C(v) {
super();
}
static a: super();
static b() {
super();
}
static get C() {
super();
return 1;
}
static set C(v) {
super();
}
}
//// [derivedClassSuperCallsInNonConstructorMembers.js]
// error to use super calls outside a constructor
var __extends = (this && this.__extends) || (function () {
var extendStatics = function (d, b) {
extendStatics = Object.setPrototypeOf ||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
return extendStatics(d, b);
};
return function (d, b) {
if (typeof b !== "function" && b !== null)
throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
extendStatics(d, b);
function __() { this.constructor = d; }
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
};
})();
var Base = /** @class */ (function () {
function Base() {
}
return Base;
}());
var Derived = /** @class */ (function (_super) {
__extends(Derived, _super);
function Derived() {
return _super !== null && _super.apply(this, arguments) || this;
}
;
Derived.prototype.b = function () {
_this = _super.call(this) || this;
};
Object.defineProperty(Derived.prototype, "C", {
get: function () {
_this = _super.call(this) || this;
return 1;
},
set: function (v) {
_this = _super.call(this) || this;
},
enumerable: false,
configurable: true
});
;
Derived.b = function () {
_this = _super.call(this) || this;
};
Object.defineProperty(Derived, "C", {
get: function () {
_this = _super.call(this) || this;
return 1;
},
set: function (v) {
_this = _super.call(this) || this;
},
enumerable: false,
configurable: true
});
return Derived;
}(Base));