-
Notifications
You must be signed in to change notification settings - Fork 130
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Browse files
Browse the repository at this point in the history
+ true + false = exhaustive over boolean :) + leverage PrimitiveConversionRoute for Pattern.coversType() + fine-tune combinations of primitive and boxing types + fix one omission in BaseTypeBinding.isExactWidening() + code gen to respect exhaustiveness of switch over primitives + fix code gen for bootstrap in the case of boxing+widening conversion + simplify condition for generating a throwing default + UNBOXING_CONVERSION is exhaustive (trivial case from 14.11.1.1) + implement WIDENING_REFERENCE_AND_UNBOXING_COVERSION and ..._AND_WIDENING_PRIMITIVE_CONVERSION - detect in Pattern.findPrimitiveConversionRoute() - adjust SwitchStatement.typeSwitchSignature() - generate in TypePattern.generateTestingConversion() clarify code gen for BOXING_CONVERSION_AND_WIDENING_REFERENCE_CONVERSION implement NARROWING_AND_UNBOXING_CONVERSION + InstanceOfExpression.generateTypeCheck() + TypePattern.generateTestingConversion() + Fixes for WIDENING_AND_NARROWING_PRIMITIVE_CONVERSION - must be checked before individual narrowing or widening - pattern doesn't cover its type + Implement remaining routes in InstanceOfExpression.generateTypeCheck() + those are unconditionally exact Additional clean-up: * clarify terminology for pairs of types + prefer 'provided' / 'expected' where possible + disentangle Pattern.outerExpressionType out ofExpression.expectedType + also connect to terms runtimeType vs. compileTimeType * + tiny clean-up removing dead code specific correct error message for incompatible case constant + fix bogus expectation in existing tests fixes #2869
- Loading branch information
1 parent
6b7f284
commit 2f5f013
Showing
23 changed files
with
908 additions
and
191 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.