Details
Description
Sometimes Boo is not conservative enough on certain defaults (which still makes sense for other/prototyping usages) that can lead to some errors slipping to a release unnoticed in (large) projects.
Strict mode introduces more conservative(safer) defaults and warnings.
Strict mode is disabled by default.
This compiler option is settable through:
- "-strict" with booc
- programatically by setting CompilerParameters.Strict to true
- "strict" argument with nant and msbuild tasks
When strict mode is enabled the following changes are enabled:
- default visibility is private like in C# (change made through
BOO-1091) - methods parameters types and return type of public methods (API) must be explicitely declared [to avoid unnoticed/unwanted binary-compat breakage] (
BOO-1132) - warns if a variable has the same name as a private field of one of its super types (
BOO-1133). - implicit return statement fires a warning (
BOO-703)
TODO:
- implicit downcast fires a warning (
BOO-943) — default mode? or strict mode only?
Issue Links
- depends upon
-
BOO-1091
Possibility to change default visibility settings
-
-
BOO-1132
WARNING: Visible method|property does not declare return|argument type explicitely
-
-
BOO-1133
WARNING: Variable 'X' has the same name as a field of base type 'T'. Did you mean to use the field ?
-
-
BOO-703
Compiler warning on implicit return statement
-
- is related to
-
BOO-1087
Compiler should warn when an implicit callable is used in a boolean context
-
-
BOO-692
Built-in value type conversions
-
- supercedes
-
BOO-1092
Change default field visibility from protected to private
-
-
BOO-943
Implicit downcast in strict mode
-
Activity
| Description |
For a number of Boo users, sometimes Boo is not conservative enough on certain defaults (which makes sense for others) that can make some errors slip through a release unnoticed in (large) projects. Introducing a strict mode would be a nice new feature to introduce and enforce more conservative(safer) defaults if desired. Strict mode is disabled by default. Compiler option would be settable through: - "-strict+" on booc - CompilerParameters.Strict as bool - "strict" argument in nant and msbuild tasks When strict mode is enabled the following changes are enabled: - default visibility is private like in C# (change made through - methods parameters types and return type must be explicitely declared - field naming recommendations are enforced (ie. _-prefix on non-visible fields), this enforces consistency and unnoticed conflict/behavior-change with variables which have same name than a field. - implicit downcast fires a warning ( |
Sometimes Boo is not conservative enough on certain defaults (which still makes sense for other/prototyping usages) that can lead to some errors slipping to a release unnoticed in (large) projects. Introducing a strict mode would be a nice new feature to introduce and enforce more conservative(safer) defaults if desired. Strict mode is disabled by default. This compiler option would be settable through: - "-strict+" on booc - CompilerParameters.Strict as bool - "strict" argument in nant and msbuild tasks When strict mode is enabled the following changes are enabled: - default visibility is private like in C# (change made through - methods parameters types and return type must be explicitely declared - field naming recommendations are enforced (ie. _-prefix on non-visible fields), this enforces consistency and ensure no unnoticed conflict/behavior-change with variables which have same name than a field. - implicit downcast fires a warning ( |
| Description |
Sometimes Boo is not conservative enough on certain defaults (which still makes sense for other/prototyping usages) that can lead to some errors slipping to a release unnoticed in (large) projects. Introducing a strict mode would be a nice new feature to introduce and enforce more conservative(safer) defaults if desired. Strict mode is disabled by default. This compiler option would be settable through: - "-strict+" on booc - CompilerParameters.Strict as bool - "strict" argument in nant and msbuild tasks When strict mode is enabled the following changes are enabled: - default visibility is private like in C# (change made through - methods parameters types and return type must be explicitely declared - field naming recommendations are enforced (ie. _-prefix on non-visible fields), this enforces consistency and ensure no unnoticed conflict/behavior-change with variables which have same name than a field. - implicit downcast fires a warning ( |
Sometimes Boo is not conservative enough on certain defaults (which still makes sense for other/prototyping usages) that can lead to some errors slipping to a release unnoticed in (large) projects. Introducing a strict mode would be a nice new feature to introduce and enforce more conservative(safer) defaults if desired. Strict mode is disabled by default. This compiler option would be settable through: - "-strict+" on booc - CompilerParameters.Strict as bool - "strict" argument in nant and msbuild tasks When strict mode is enabled the following changes are enabled: - default visibility is private like in C# (change made through - methods parameters types and return type must be explicitely declared - field naming recommendations are enforced (ie. _-prefix on non-visible fields), this enforces consistency and ensure no unnoticed conflict/behavior-change with variables which have same name than a field. - implicit downcast fires a warning ( - implicit return statement fires a warning ( |
| Description |
Sometimes Boo is not conservative enough on certain defaults (which still makes sense for other/prototyping usages) that can lead to some errors slipping to a release unnoticed in (large) projects. Introducing a strict mode would be a nice new feature to introduce and enforce more conservative(safer) defaults if desired. Strict mode is disabled by default. This compiler option would be settable through: - "-strict+" on booc - CompilerParameters.Strict as bool - "strict" argument in nant and msbuild tasks When strict mode is enabled the following changes are enabled: - default visibility is private like in C# (change made through - methods parameters types and return type must be explicitely declared - field naming recommendations are enforced (ie. _-prefix on non-visible fields), this enforces consistency and ensure no unnoticed conflict/behavior-change with variables which have same name than a field. - implicit downcast fires a warning ( - implicit return statement fires a warning ( |
Sometimes Boo is not conservative enough on certain defaults (which still makes sense for other/prototyping usages) that can lead to some errors slipping to a release unnoticed in (large) projects. Introducing a strict mode would be a nice new feature to introduce and enforce more conservative(safer) defaults if desired. Strict mode is disabled by default. This compiler option would be settable through: - "-strict+" on booc - CompilerParameters.Strict as bool - "strict" argument in nant and msbuild tasks In effect, it adds a StrictModeCheckingStep into the pipeline. When strict mode is enabled the following changes are enabled: - default visibility is private like in C# (change made through - methods parameters types and return type must be explicitely declared - field naming recommendations are enforced (ie. _-prefix on non-visible fields), this enforces consistency and ensure no unnoticed conflict/behavior-change with variables which have same name than a field. - implicit downcast fires a warning ( - implicit return statement fires a warning ( |
| Status | Open [ 1 ] | In Progress [ 3 ] |
| Fix Version/s | 0.9 [ 13816 ] | |
| Fix Version/s | 0.9.1 [ 14922 ] |
| Description |
Sometimes Boo is not conservative enough on certain defaults (which still makes sense for other/prototyping usages) that can lead to some errors slipping to a release unnoticed in (large) projects. Introducing a strict mode would be a nice new feature to introduce and enforce more conservative(safer) defaults if desired. Strict mode is disabled by default. This compiler option would be settable through: - "-strict+" on booc - CompilerParameters.Strict as bool - "strict" argument in nant and msbuild tasks In effect, it adds a StrictModeCheckingStep into the pipeline. When strict mode is enabled the following changes are enabled: - default visibility is private like in C# (change made through - methods parameters types and return type must be explicitely declared - field naming recommendations are enforced (ie. _-prefix on non-visible fields), this enforces consistency and ensure no unnoticed conflict/behavior-change with variables which have same name than a field. - implicit downcast fires a warning ( - implicit return statement fires a warning ( |
Sometimes Boo is not conservative enough on certain defaults (which still makes sense for other/prototyping usages) that can lead to some errors slipping to a release unnoticed in (large) projects. Introducing a strict mode would be a nice new feature to introduce and enforce more conservative(safer) defaults if desired. Strict mode is disabled by default. This compiler option would be settable through: - "-strict+" on booc - CompilerParameters.Strict as bool - "strict" argument in nant and msbuild tasks In effect, it adds a StrictModeCheckingStep into the pipeline. When strict mode is enabled the following changes are enabled: - default visibility is private like in C# (change made through - methods parameters types and return type of public methods (API) must be explicitely declared [to avoid unnoticed/unwanted binary-compat breakage] - warns if a variable cannot have the same name as a field of its declaring type (or one of its super types). - implicit return statement fires a warning ( - implicit downcast fires a warning ( |
| Fix Version/s | 0.9.1 [ 14922 ] | |
| Fix Version/s | 0.9 [ 13816 ] |
| Description |
Sometimes Boo is not conservative enough on certain defaults (which still makes sense for other/prototyping usages) that can lead to some errors slipping to a release unnoticed in (large) projects. Introducing a strict mode would be a nice new feature to introduce and enforce more conservative(safer) defaults if desired. Strict mode is disabled by default. This compiler option would be settable through: - "-strict+" on booc - CompilerParameters.Strict as bool - "strict" argument in nant and msbuild tasks In effect, it adds a StrictModeCheckingStep into the pipeline. When strict mode is enabled the following changes are enabled: - default visibility is private like in C# (change made through - methods parameters types and return type of public methods (API) must be explicitely declared [to avoid unnoticed/unwanted binary-compat breakage] - warns if a variable cannot have the same name as a field of its declaring type (or one of its super types). - implicit return statement fires a warning ( - implicit downcast fires a warning ( |
Sometimes Boo is not conservative enough on certain defaults (which still makes sense for other/prototyping usages) that can lead to some errors slipping to a release unnoticed in (large) projects. Strict mode introduces more conservative(safer) defaults and warnings. Strict mode is disabled by default. This compiler option is settable through: - "-strict" with booc - programatically by setting CompilerParameters.Strict to true - "strict" argument with nant and msbuild tasks When strict mode is enabled the following changes are enabled: - default visibility is private like in C# (change made through - methods parameters types and return type of public methods (API) must be explicitely declared [to avoid unnoticed/unwanted binary-compat breakage] - warns if a variable has the same name as a field of its declaring type (or one of its super types). - implicit return statement fires a warning ( TODO: - implicit downcast fires a warning ( |
| Description |
Sometimes Boo is not conservative enough on certain defaults (which still makes sense for other/prototyping usages) that can lead to some errors slipping to a release unnoticed in (large) projects. Strict mode introduces more conservative(safer) defaults and warnings. Strict mode is disabled by default. This compiler option is settable through: - "-strict" with booc - programatically by setting CompilerParameters.Strict to true - "strict" argument with nant and msbuild tasks When strict mode is enabled the following changes are enabled: - default visibility is private like in C# (change made through - methods parameters types and return type of public methods (API) must be explicitely declared [to avoid unnoticed/unwanted binary-compat breakage] - warns if a variable has the same name as a field of its declaring type (or one of its super types). - implicit return statement fires a warning ( TODO: - implicit downcast fires a warning ( |
Sometimes Boo is not conservative enough on certain defaults (which still makes sense for other/prototyping usages) that can lead to some errors slipping to a release unnoticed in (large) projects. Strict mode introduces more conservative(safer) defaults and warnings. Strict mode is disabled by default. This compiler option is settable through: - "-strict" with booc - programatically by setting CompilerParameters.Strict to true - "strict" argument with nant and msbuild tasks When strict mode is enabled the following changes are enabled: - default visibility is private like in C# (change made through - methods parameters types and return type of public methods (API) must be explicitely declared [to avoid unnoticed/unwanted binary-compat breakage] ( - warns if a variable has the same name as a field of its declaring type (or one of its super types). - implicit return statement fires a warning ( TODO: - implicit downcast fires a warning ( |
| Description |
Sometimes Boo is not conservative enough on certain defaults (which still makes sense for other/prototyping usages) that can lead to some errors slipping to a release unnoticed in (large) projects. Strict mode introduces more conservative(safer) defaults and warnings. Strict mode is disabled by default. This compiler option is settable through: - "-strict" with booc - programatically by setting CompilerParameters.Strict to true - "strict" argument with nant and msbuild tasks When strict mode is enabled the following changes are enabled: - default visibility is private like in C# (change made through - methods parameters types and return type of public methods (API) must be explicitely declared [to avoid unnoticed/unwanted binary-compat breakage] ( - warns if a variable has the same name as a field of its declaring type (or one of its super types). - implicit return statement fires a warning ( TODO: - implicit downcast fires a warning ( |
Sometimes Boo is not conservative enough on certain defaults (which still makes sense for other/prototyping usages) that can lead to some errors slipping to a release unnoticed in (large) projects. Strict mode introduces more conservative(safer) defaults and warnings. Strict mode is disabled by default. This compiler option is settable through: - "-strict" with booc - programatically by setting CompilerParameters.Strict to true - "strict" argument with nant and msbuild tasks When strict mode is enabled the following changes are enabled: - default visibility is private like in C# (change made through - methods parameters types and return type of public methods (API) must be explicitely declared [to avoid unnoticed/unwanted binary-compat breakage] ( - warns if a variable has the same name as a private field of one of its super types ( - implicit return statement fires a warning ( TODO: - implicit downcast fires a warning ( |
| Resolution | Fixed [ 1 ] | |
| Status | In Progress [ 3 ] | Resolved [ 5 ] |