Goose  Diff

Differences From Artifact [82649bf23f]:

  • File bs/compile/compiler.cpp — part of check-in [52280a3c5c] at 2021-01-11 20:20:37 on branch trunk — Reorganized symbols visibility a bit to avoid local variables from the enclosing function to be visible inside of function parameter list declarations (which prevented reusing them as parameter names). (user: achavasse size: 5668)

To Artifact [fc2e8e4e82]:

  • File bs/compile/compiler.cpp — part of check-in [4b842721d2] at 2021-08-31 23:10:36 on branch trunk —
    • Added extension points to transform parameter types and function arguments
    • Fixed the incorrect type predicate type checking rule which should just preserve the argument's predicates as is
    • Fixed verification of return intructions that were checking the returned value's predicates, instead of the return type predicates (which happened to work anyway until the above fix)
    (user: achavasse size: 5680)

167
168
169
170
171
172
173
174

175
176
177
178
179
180
167
168
169
170
171
172
173

174
175
176
177
178
179
180







-
+






                    return nullptr;
                }

                cb->emitTerminator( r->currentLocation(), cir::Ret( get< Value >( converted ) ) );
            }
        }

        verify::Func fv( c, cfg );
        verify::Func fv( c, cfg, returnType );
        if( !fv.verify() )
            return nullptr;

        return cfg;
    }
}