diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 026aaad2..5d84e7f4 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -9,12 +9,16 @@ on: jobs: build: + strategy: + matrix: + haxe-version: [latest, 4.3.7, 4.2.5] + fail-fast: false runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - uses: krdlab/setup-haxe@v1 with: - haxe-version: 4.3.4 + haxe-version: ${{ matrix.haxe-version }} - name: Install haxelib dependencies run: | haxelib install hx3compat diff --git a/hscript/Checker.hx b/hscript/Checker.hx index 7ee549da..7be5b746 100644 --- a/hscript/Checker.hx +++ b/hscript/Checker.hx @@ -1052,7 +1052,7 @@ class Checker { switch( e.e ) { case EField(obj, f): if( cf.isMethod ) { - switch( callExpr?.e ) { + switch( callExpr == null ? null : callExpr.e ) { case null: case ECall(ec,params) if( ec == e ): e.e = EField(acc,f); diff --git a/hscript/JsInterp.hx b/hscript/JsInterp.hx index 9161c441..2f91a7d6 100644 --- a/hscript/JsInterp.hx +++ b/hscript/JsInterp.hx @@ -264,6 +264,7 @@ class JsInterp extends Interp { default: error(EInvalidOp(op)); } + return null; case EUnop(op, prefix, e): switch( op ) { case "!": @@ -300,6 +301,7 @@ class JsInterp extends Interp { default: error(EInvalidOp(op)); } + return null; case ECall(e, params): var args = [for( p in params ) exprValue(p)]; switch( Tools.expr(e) ) {