Comments (7)
It seems to me that a more logical way to write this would be to have a count that both templates would use. In the "dime" variant, the count is of dimes, whereas the "nickel" variant count would refer to nickels. I believe it is not allowed like that, since we don't know at compile time which delegate we would use, so any delegate would need to support all possible parameters.
from closure-templates.
it's a toy example, don't be silly.
all delegates do support all possible parameters. they just ignore some of those parameters. I shouldn't have to declare that I'm ignoring a parameter.
from closure-templates.
Of course it is a toy example, but it does not demonstrate any reason to desire that behavior. These templates are very strict about requiring parameters, and using the required parameters. It blows up at compile time if the required parameter is not there. If you have several options for templates to choose, how can soy decide whether or not the specific parameter is required? In my eyes, it is a bit like overloading methods in Java. In order to overload, it is necessary to match signatures exactly.
from closure-templates.
"It blows up at compile time if the required parameter is not there." - Just for the record, this is simply not true for deltemplates.
shrug, if the team feels that this warning adds value, that's fine. We've already forked our version of closure-templates to remove this warning.
from closure-templates.
Correct, sorry I did not explain my thinking very well on that. My point was that given the strictness of the regular template, keeping in line with that with the deltemplate makes sense.
Now, given that your team feels the warnings are extraneous, and have already disabled them, this starts to make sense. Perhaps it would be beneficial to define a strict mode, in which all of these are enforced, whereas if disabled, it wouldn't try to enforce all these rules. Thanks for that clarification.
from closure-templates.
@nicks This seems like a pretty reasonable change, and it seems unlikely to cause much (any?) breakage in our existing templates. Can you send a PR? (Looks like it's been a while since you merged Medium's fork.)
from closure-templates.
sure, i'll try to put a PR together soon.
from closure-templates.
Related Issues (20)
- Internal Soy Error when compiling Soy headers HOT 2
- comments in parameter lists HOT 2
- Missing documentation / example how to use protobufs in Soy HOT 5
- Google UI HOT 1
- Latest release (release-2022-10-26) has several security issues
- Invalid multimap flag entry. No '=' found: io.noticeable.newspage.soy.functions.ContainsFunction HOT 1
- Dependencies addition of soyutils_usegoog.js makes hard to compile soy files HOT 5
- src/js/soyutils/soyutils_usegoog.js:46:264 ERROR - [JSC_MISSING_MODULE_OR_PROVIDE] Required namespace "safevalues" never defined. HOT 2
- Missing module HOT 4
- src/js/soyutils/soyutils_usegoog.js:46:264 ERROR - [JSC_MISSING_MODULE_OR_PROVIDE] Required namespace "safevalues" never defined. HOT 2
- malware HOT 1
- https://github.com/google/closure-templates/issues/1947#issue-2170271938 HOT 2
- Request to publish older versions to npm
- There is a vulnerability in google-gson 2.7,upgrade recommended HOT 1
- SoyToJsSrcCompiler.jar is out of date HOT 1
- Remove `--deps` from CLI usage message
- What kind of path can be specified in import statements?
- Invalid 'for' command text
- variable soy is undeclared HOT 1
- Ts** are not declared HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from closure-templates.