mirror of
https://github.com/microsoft/TypeScript.git
synced 2026-05-15 12:51:30 -05:00
in noImplicitReturns mode, also disallow "return;"
In --noImplicitReturns mode, if a function specifies a return type, disallow empty "return;" statements. Fixes #5916.
This commit is contained in:
@@ -0,0 +1,34 @@
|
||||
tests/cases/compiler/noImplicitReturnsWithoutReturnExpression.ts(2,5): error TS7030: Not all code paths return a value.
|
||||
tests/cases/compiler/noImplicitReturnsWithoutReturnExpression.ts(22,9): error TS7030: Not all code paths return a value.
|
||||
|
||||
|
||||
==== tests/cases/compiler/noImplicitReturnsWithoutReturnExpression.ts (2 errors) ====
|
||||
function isMissingReturnExpression(): number {
|
||||
return;
|
||||
~~~~~~~
|
||||
!!! error TS7030: Not all code paths return a value.
|
||||
}
|
||||
|
||||
function isMissingReturnExpression2(): any {
|
||||
return;
|
||||
}
|
||||
|
||||
function isMissingReturnExpression3(): number|void {
|
||||
return;
|
||||
}
|
||||
|
||||
function isMissingReturnExpression4(): void {
|
||||
return;
|
||||
}
|
||||
|
||||
function isMissingReturnExpression5(x) {
|
||||
if (x) {
|
||||
return 0;
|
||||
}
|
||||
else {
|
||||
return;
|
||||
~~~~~~~
|
||||
!!! error TS7030: Not all code paths return a value.
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,48 @@
|
||||
//// [noImplicitReturnsWithoutReturnExpression.ts]
|
||||
function isMissingReturnExpression(): number {
|
||||
return;
|
||||
}
|
||||
|
||||
function isMissingReturnExpression2(): any {
|
||||
return;
|
||||
}
|
||||
|
||||
function isMissingReturnExpression3(): number|void {
|
||||
return;
|
||||
}
|
||||
|
||||
function isMissingReturnExpression4(): void {
|
||||
return;
|
||||
}
|
||||
|
||||
function isMissingReturnExpression5(x) {
|
||||
if (x) {
|
||||
return 0;
|
||||
}
|
||||
else {
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//// [noImplicitReturnsWithoutReturnExpression.js]
|
||||
function isMissingReturnExpression() {
|
||||
return;
|
||||
}
|
||||
function isMissingReturnExpression2() {
|
||||
return;
|
||||
}
|
||||
function isMissingReturnExpression3() {
|
||||
return;
|
||||
}
|
||||
function isMissingReturnExpression4() {
|
||||
return;
|
||||
}
|
||||
function isMissingReturnExpression5(x) {
|
||||
if (x) {
|
||||
return 0;
|
||||
}
|
||||
else {
|
||||
return;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,25 @@
|
||||
// @noImplicitReturns: true
|
||||
function isMissingReturnExpression(): number {
|
||||
return;
|
||||
}
|
||||
|
||||
function isMissingReturnExpression2(): any {
|
||||
return;
|
||||
}
|
||||
|
||||
function isMissingReturnExpression3(): number|void {
|
||||
return;
|
||||
}
|
||||
|
||||
function isMissingReturnExpression4(): void {
|
||||
return;
|
||||
}
|
||||
|
||||
function isMissingReturnExpression5(x) {
|
||||
if (x) {
|
||||
return 0;
|
||||
}
|
||||
else {
|
||||
return;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user