JavaScript: fix edge cases in type cast comment detection regex (#5793)
Fix edge cases involving {...} ([record @type](http://usejsdoc.org/tags-type.html)) and newlines in prettier's detection code for type cast comments
This commit is contained in:
1 parent
847a78e8e9
commit
47da0804a9
4 files changed
+122
-1
No files matched your search
@@ -350,6 +350,32 @@ var newArray = /** @type {array} */ (numberOrString).map(x => x);
|
||||
var newArray = /** @type {array} */ ((numberOrString)).map(x => x);
|
||||
var newArray = /** @type {array} */ ((numberOrString).map(x => x));
|
||||
|
||||
|
||||
const data = functionCall(
|
||||
arg1,
|
||||
arg2,
|
||||
/** @type {{height: number, width: number}} */ (arg3));
|
||||
|
||||
// Invalid type casts
|
||||
const v = /** @type {} */ (value);
|
||||
const v = /** @type {}} */ (value);
|
||||
const v = /** @type } */ (value);
|
||||
const v = /** @type { */ (value);
|
||||
const v = /** @type {{} */ (value);
|
||||
|
||||
const style = /** @type {{
|
||||
width: number,
|
||||
height: number,
|
||||
marginTop: number,
|
||||
marginLeft: number,
|
||||
marginRight: number,
|
||||
marginBottom: number,
|
||||
}} */ ({
|
||||
width,
|
||||
height,
|
||||
...margins,
|
||||
});
|
||||
|
||||
=====================================output=====================================
|
||||
// test to make sure comments are attached correctly
|
||||
let inlineComment = /* some comment */ someReallyLongFunctionCall(
|
||||
@@ -374,6 +400,32 @@ var newArray = /** @type {array} */ (numberOrString).map(x => x);
|
||||
var newArray = /** @type {array} */ (numberOrString).map(x => x);
|
||||
var newArray = /** @type {array} */ (numberOrString.map(x => x));
|
||||
|
||||
const data = functionCall(
|
||||
arg1,
|
||||
arg2,
|
||||
/** @type {{height: number, width: number}} */ (arg3)
|
||||
);
|
||||
|
||||
// Invalid type casts
|
||||
const v = /** @type {} */ value;
|
||||
const v = /** @type {}} */ value;
|
||||
const v = /** @type } */ value;
|
||||
const v = /** @type { */ value;
|
||||
const v = /** @type {{} */ value;
|
||||
|
||||
const style = /** @type {{
|
||||
width: number,
|
||||
height: number,
|
||||
marginTop: number,
|
||||
marginLeft: number,
|
||||
marginRight: number,
|
||||
marginBottom: number,
|
||||
}} */ ({
|
||||
width,
|
||||
height,
|
||||
...margins
|
||||
});
|
||||
|
||||
================================================================================
|
||||
`;
|
||||
|
||||
|
||||
@@ -18,3 +18,29 @@ function returnValue() {
|
||||
var newArray = /** @type {array} */ (numberOrString).map(x => x);
|
||||
var newArray = /** @type {array} */ ((numberOrString)).map(x => x);
|
||||
var newArray = /** @type {array} */ ((numberOrString).map(x => x));
|
||||
|
||||
|
||||
const data = functionCall(
|
||||
arg1,
|
||||
arg2,
|
||||
/** @type {{height: number, width: number}} */ (arg3));
|
||||
|
||||
// Invalid type casts
|
||||
const v = /** @type {} */ (value);
|
||||
const v = /** @type {}} */ (value);
|
||||
const v = /** @type } */ (value);
|
||||
const v = /** @type { */ (value);
|
||||
const v = /** @type {{} */ (value);
|
||||
|
||||
const style = /** @type {{
|
||||
width: number,
|
||||
height: number,
|
||||
marginTop: number,
|
||||
marginLeft: number,
|
||||
marginRight: number,
|
||||
marginBottom: number,
|
||||
}} */ ({
|
||||
width,
|
||||
height,
|
||||
...margins,
|
||||
});
|
||||
Reference in new issue
Block a user